Re: [PATCH] staging:iio:ad7606: fix voltage scales

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux