[PATCH 7/8] iio: adc: rzt2h: Use scan type for ADC scale
From: Prabhakar
Date: Tue Sep 29 2026 - 08:49:05 EST
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
Prepare the driver for RZ/V2H(P) support, where the ADC supports both
12-bit and 8-bit conversion resolutions.
Use the current IIO scan type to determine the ADC resolution when
reporting the scale instead of assuming a fixed 12-bit resolution.
Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
---
drivers/iio/adc/rzt2h_adc.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/iio/adc/rzt2h_adc.c b/drivers/iio/adc/rzt2h_adc.c
index 26028856b175..953736b5475a 100644
--- a/drivers/iio/adc/rzt2h_adc.c
+++ b/drivers/iio/adc/rzt2h_adc.c
@@ -59,6 +59,8 @@
RZT2H_ADC_DMA_PERIOD_SAMPLES)
#define RZT2H_ADC_STOP_CYCLES 2
+#define RZT2H_ADC_VREF_MV 1800
+
#define RZT2H_ADC_FEATURE_CALIBRATION BIT(0)
#define RZT2H_ADC_FEATURE_SAMPLE_STATE BIT(1)
@@ -529,10 +531,18 @@ static int rzt2h_adc_read_raw(struct iio_dev *indio_dev,
return rzt2h_adc_read_single(adc, chan->channel, val);
}
- case IIO_CHAN_INFO_SCALE:
- *val = 1800;
- *val2 = 12;
+ case IIO_CHAN_INFO_SCALE: {
+ const struct iio_scan_type *scan_type;
+
+ scan_type = iio_get_current_scan_type(indio_dev, chan);
+ if (IS_ERR(scan_type))
+ return PTR_ERR(scan_type);
+
+ *val = RZT2H_ADC_VREF_MV;
+ *val2 = scan_type->realbits;
+
return IIO_VAL_FRACTIONAL_LOG2;
+ }
case IIO_CHAN_INFO_SAMP_FREQ:
*val = adc->chip_info->sst_to_freq(adc, adc->sst[chan->channel]);
return IIO_VAL_INT;
--
2.55.0