On Mon, Oct 24, 2016 at 1:39 AM, Peter Rosin <p...@axentia.se> wrote:
> From: Jonathan Cameron <ji...@kernel.org>
>
> A large number of attributes can only take a limited range of values.
> Currently in IIO this is handled by directly registering additional
> *_available attributes thus providing this information to userspace.
>
> It is desirable to provide this information via the core for much the same
> reason this was done for the actual channel information attributes in the
> first place.  If it isn't there, then it can only really be accessed from
> userspace.  Other in kernel IIO consumers have no access to what valid
> parameters are.
>
> Two forms are currently supported:
> * list of values in one particular IIO_VAL_* format.
>         e.g. 1.300000 1.500000 1.730000
> * range specification with a step size:
>         e.g. [1.000000 0.500000 2.500000]
>         equivalent to 1.000000 1.5000000 2.000000 2.500000

Is there any driver using this format? :)

>
> An addition set of masks are used to allow different sharing rules for the
> *_available attributes generated.
>
> This allows for example:
>
> in_accel_x_offset
> in_accel_y_offset
> in_accel_offset_available.
>
> We could have gone with having a specification for each and every
> info_mask element but that would have meant changing the existing userspace
> ABI.  This approach does not.
>
> Signed-off-by: Jonathan Cameron <ji...@kernel.org>
> [forward ported, added some docs and fixed buffer overflows /peda]
> Signed-off-by: Peter Rosin <p...@axentia.se>

The patch looks good to me at a first glance.

Reply via email to