Re: [PATCH] staging: iio: ad7780: Add gain & filter gpio support

From: Giuliano Belinassi
Date: Mon Nov 26 2018 - 14:24:30 EST


Hi, thank you for the review

> On Thu, 22 Nov 2018 11:01:00 +0000
> "Popa, Stefan Serban" <StefanSerban.Popa@xxxxxxxxxx> wrote:
> > I think that instead of setting the gain directly, we should use
> > the IIO_CHAN_INFO_SCALE attribute. At page 12 of the ad7780 datasheet there
> > is a formula from which the output code can be calculated:
> > Code = 2^(N â 1)
> > Ã [(AIN Ã Gain /VREF) + 1]. So, by setting the scale from user space, the
> > driver can calculate the correct gain by using the formula above. Also, it
> > would be useful to introduce scale available.
> > Furthermore, there is a new
> > ad7124 adc driver which does this exact thing. Take a look here: https://gi
> > thub.com/analogdevicesinc/linux/blob/master/drivers/iio/adc/ad7124.c#L337.

We have some questions about the code you provided to us:
1-) What is exactly the inputs for the write_raw function?
2-) Could you give more details about the math around lines 346-348?
Is it correct to assume that the multiplication at line 346 won't
overflow? (vref is an uint)

And regarding our code:
1-) The val in our write_raw function should be, in case of GAIN, a
number that best approximate the actual gain value of 1 or 128? For
instance, if the user inputs 126, we should default to 128?
2-) In the case of FILTER, is it the same? Is the user sending the
value in mHz (milihertz)?

Thank you