Dear Marek,
On 07/05/2013 01:37 PM, Marek Vasut wrote:
Dear Hector Palacios,
The LRADC virtual channels have an 18 bit field to store the sum of up
to 2^5 accumulated samples. The read_raw function however only operates
over a single sample (12 bit resolution).
In order to use this field for scaling operations, we need it to be the
exact resolution value of the LRADC.
How would this work once the accumulation is supported?
As I see it, when you read a channel the driver should give you the 12-bit value
either of one single sample or of N samples. If you are measuring an accumulation of N
samples, the driver should divide the sum (the 18bit value) by N before returning the
value to userland.
Signed-off-by: Hector Palacios <hector.palacios@xxxxxxxx>
---
drivers/staging/iio/adc/mxs-lradc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/staging/iio/adc/mxs-lradc.c
b/drivers/staging/iio/adc/mxs-lradc.c index 163c638..d65a594 100644
--- a/drivers/staging/iio/adc/mxs-lradc.c
+++ b/drivers/staging/iio/adc/mxs-lradc.c
@@ -822,7 +822,7 @@ static const struct iio_buffer_setup_ops
mxs_lradc_buffer_ops = { .channel = (idx),
\
.scan_type = { \
.sign = 'u', \
- .realbits = 18, \
+ .realbits = 12, \
.storagebits = 32, \
}, \
}
Best regards,
Marek Vasut
Best regards,
--
Hector Palacios
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html