On Fri, 29 Sep 2023 12:53:00 -0500 David Lechner <dlechner@xxxxxxxxxxxx> wrote: > On Fri, Sep 29, 2023 at 12:25 PM David Lechner <dlechner@xxxxxxxxxxxx> wrote: > > > > The AD2S1210 resolver has a hysteresis feature that can be used to > > prevent flicker in the LSB of the position register. This can be either > > enabled or disabled. Disabling hysteresis is useful for increasing > > precision by oversampling. > > > > Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx> > > --- > > ... > > > +static int ad2s1210_read_avail(struct iio_dev *indio_dev, > > + struct iio_chan_spec const *chan, > > + const int **vals, int *type, > > + int *length, long mask) > > +{ > > + static const int hysteresis_available[] = { 0, 1 }; > > This is basically an enable/disable. Should the 1 value be changed to the > appropriate radians value since this is hysteresis on the position > (angle) channel? Good point. However it should be in the _raw units. The text is slightly more explicit on this for the variant of hysteresis applied to threshold events as it's added or substracted from a threshold (and thresholds are in _raw readings unless only _processed is available). Does that make 0, 1 correct as we are talking about LSB only? Jonathan > > > + > > + switch (mask) { > > + case IIO_CHAN_INFO_HYSTERESIS: > > + switch (chan->type) { > > + case IIO_ANGL: > > + *vals = hysteresis_available; > > + *type = IIO_VAL_INT; > > + *length = ARRAY_SIZE(hysteresis_available); > > + return IIO_AVAIL_LIST; > > + default: > > + return -EINVAL; > > + } > > + default: > > + return -EINVAL; > > + } > > +} > >