On Thu, 2018-09-13 at 10:39 +0300, Alexandru Ardelean wrote: > Fixes commit 17be2a2905a6ec9aa27cd59521495e2f490d2af0 ("staging: iio: > ad7606: replace range/range_available with corresponding scale"). > > The AD7606 devices don't have a 2.5V voltage range, they have 5V & 10V > voltage range, which is selectable via the `gpio_range` descriptor. > > The scales also seem to have been miscomputed, because when they were > applied to the raw values, the results differ from the expected values. > After checking the ADC transfer function in the datasheet, these were > re-computed. > > Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> > --- > drivers/staging/iio/adc/ad7606.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/iio/adc/ad7606.c > b/drivers/staging/iio/adc/ad7606.c > index c5fe3003075b..8f0eebf7316d 100644 > --- a/drivers/staging/iio/adc/ad7606.c > +++ b/drivers/staging/iio/adc/ad7606.c > @@ -26,9 +26,11 @@ > > #include "ad7606.h" > > -/* Scales are computed as 2.5/2**16 and 5/2**16 respectively */ > +/* Scales are computed as 5000/2**16 and 10000/2**16 respectively, Will send a V2. My computation of 32768 [which is mentioned in the datasheet] is also wrong. So, this comment is wrong. > + * so that when applied to the raw values they provide mV values > + */ > static const unsigned int scale_avail[2][2] = { > - {0, 38147}, {0, 76294} > + {0, 152588}, {0, 305176} > }; > > static int ad7606_reset(struct ad7606_state *st)