Re: [PATCH v3 6/7] iio: adc: palmas: add support for iio threshold events

Patrik Dahlström
2023-04-08T11:31:49Z

On Fri, Apr 07, 2023 at 06:19:47PM +0100, Jonathan Cameron wrote:
> On Wed, 5 Apr 2023 23:22:32 +0200
> Patrik Dahlström <risca@dalakolonin.se> wrote:
>
> > The palmas gpadc block has support for monitoring up to 2 ADC channels
> > and issue an interrupt if they reach past a set threshold. This change
> > hooks into the IIO events system and exposes to userspace the ability to
> > configure these threshold values for each channel, but only allow up to
> > 2 such thresholds to be enabled at any given time. Trying to enable a
> > third channel will result in an error.
> >
> > Userspace is expected to input calibrated, as opposed to raw, values as
> > threshold. However, it is not enough to do the opposite of what is done
> > when converting the other way around. To account for tolerances in the
> > ADC, the calculated raw threshold should be adjusted based on the ADC
> > specifications for the device. These specifications include the integral
> > nonlinearity (INL), offset, and gain error. To adjust the high
> > threshold, use the following equation:
> >
> > (calibrated value + INL) * Gain error + offset = maximum value [1]
> >
> > Likewise, use the following equation for the low threshold:
> >
> > (calibrated value - INL) * Gain error - offset = minimum value
> >
> > The gain error is a combination of gain error, as listed in the
> > datasheet, and gain error drift due to temperature and supply. The exact
> > values for these specifications vary between palmas devices. This patch
> > sets the values found in TWL6035, TWL6037 datasheet.
> >
> > [1] TI Application Report, SLIA087A, Guide to Using the GPADC in
> > TPS65903x, TPS65917-Q1, TPS65919-Q1, and TPS65916 Devices.
> >
> > Signed-off-by: Patrik Dahlström <risca@dalakolonin.se>
> Hi Patrik,
>
> A few really trivial formatting things inline. If we don't end up
> with a v4 for other reasons I can tidy this stuff up whilst applying.

I'll send in a v4 later today :)

>
> Jonathan
>
>