Message ID | 20230612122926.107333-5-herve.codina@bootlin.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add support for IIO devices in ASoC | expand |
On Mon, Jun 12, 2023 at 3:30 PM Herve Codina <herve.codina@bootlin.com> wrote: > > The raw values notes mention 'ADC counts' and are not fully accurate. > > Reword the notes in order to remove the 'ADC counts' and describe the > conversion needed between a raw value and a value in the standard units. Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> > Signed-off-by: Herve Codina <herve.codina@bootlin.com> > Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > include/linux/iio/consumer.h | 25 +++++++++++++++---------- > 1 file changed, 15 insertions(+), 10 deletions(-) > > diff --git a/include/linux/iio/consumer.h b/include/linux/iio/consumer.h > index 6802596b017c..f536820b9cf2 100644 > --- a/include/linux/iio/consumer.h > +++ b/include/linux/iio/consumer.h > @@ -201,8 +201,9 @@ struct iio_dev > * @chan: The channel being queried. > * @val: Value read back. > * > - * Note raw reads from iio channels are in adc counts and hence > - * scale will need to be applied if standard units required. > + * Note, if standard units are required, raw reads from iio channels > + * need the offset (default 0) and scale (default 1) to be applied > + * as (raw + offset) * scale. > */ > int iio_read_channel_raw(struct iio_channel *chan, > int *val); > @@ -212,8 +213,9 @@ int iio_read_channel_raw(struct iio_channel *chan, > * @chan: The channel being queried. > * @val: Value read back. > * > - * Note raw reads from iio channels are in adc counts and hence > - * scale will need to be applied if standard units required. > + * Note, if standard units are required, raw reads from iio channels > + * need the offset (default 0) and scale (default 1) to be applied > + * as (raw + offset) * scale. > * > * In opposit to the normal iio_read_channel_raw this function > * returns the average of multiple reads. > @@ -281,8 +283,9 @@ int iio_read_channel_attribute(struct iio_channel *chan, int *val, > * @chan: The channel being queried. > * @val: Value being written. > * > - * Note raw writes to iio channels are in dac counts and hence > - * scale will need to be applied if standard units required. > + * Note that for raw writes to iio channels, if the value provided is > + * in standard units, the affect of the scale and offset must be removed > + * as (value / scale) - offset. > */ > int iio_write_channel_raw(struct iio_channel *chan, int val); > > @@ -292,8 +295,9 @@ int iio_write_channel_raw(struct iio_channel *chan, int val); > * @chan: The channel being queried. > * @val: Value read back. > * > - * Note raw reads from iio channels are in adc counts and hence > - * scale will need to be applied if standard units are required. > + * Note, if standard units are required, raw reads from iio channels > + * need the offset (default 0) and scale (default 1) to be applied > + * as (raw + offset) * scale. > */ > int iio_read_max_channel_raw(struct iio_channel *chan, int *val); > > @@ -308,8 +312,9 @@ int iio_read_max_channel_raw(struct iio_channel *chan, int *val); > * For ranges, three vals are always returned; min, step and max. > * For lists, all the possible values are enumerated. > * > - * Note raw available values from iio channels are in adc counts and > - * hence scale will need to be applied if standard units are required. > + * Note, if standard units are required, raw available values from iio > + * channels need the offset (default 0) and scale (default 1) to be applied > + * as (raw + offset) * scale. > */ > int iio_read_avail_channel_raw(struct iio_channel *chan, > const int **vals, int *length); > -- > 2.40.1 >
diff --git a/include/linux/iio/consumer.h b/include/linux/iio/consumer.h index 6802596b017c..f536820b9cf2 100644 --- a/include/linux/iio/consumer.h +++ b/include/linux/iio/consumer.h @@ -201,8 +201,9 @@ struct iio_dev * @chan: The channel being queried. * @val: Value read back. * - * Note raw reads from iio channels are in adc counts and hence - * scale will need to be applied if standard units required. + * Note, if standard units are required, raw reads from iio channels + * need the offset (default 0) and scale (default 1) to be applied + * as (raw + offset) * scale. */ int iio_read_channel_raw(struct iio_channel *chan, int *val); @@ -212,8 +213,9 @@ int iio_read_channel_raw(struct iio_channel *chan, * @chan: The channel being queried. * @val: Value read back. * - * Note raw reads from iio channels are in adc counts and hence - * scale will need to be applied if standard units required. + * Note, if standard units are required, raw reads from iio channels + * need the offset (default 0) and scale (default 1) to be applied + * as (raw + offset) * scale. * * In opposit to the normal iio_read_channel_raw this function * returns the average of multiple reads. @@ -281,8 +283,9 @@ int iio_read_channel_attribute(struct iio_channel *chan, int *val, * @chan: The channel being queried. * @val: Value being written. * - * Note raw writes to iio channels are in dac counts and hence - * scale will need to be applied if standard units required. + * Note that for raw writes to iio channels, if the value provided is + * in standard units, the affect of the scale and offset must be removed + * as (value / scale) - offset. */ int iio_write_channel_raw(struct iio_channel *chan, int val); @@ -292,8 +295,9 @@ int iio_write_channel_raw(struct iio_channel *chan, int val); * @chan: The channel being queried. * @val: Value read back. * - * Note raw reads from iio channels are in adc counts and hence - * scale will need to be applied if standard units are required. + * Note, if standard units are required, raw reads from iio channels + * need the offset (default 0) and scale (default 1) to be applied + * as (raw + offset) * scale. */ int iio_read_max_channel_raw(struct iio_channel *chan, int *val); @@ -308,8 +312,9 @@ int iio_read_max_channel_raw(struct iio_channel *chan, int *val); * For ranges, three vals are always returned; min, step and max. * For lists, all the possible values are enumerated. * - * Note raw available values from iio channels are in adc counts and - * hence scale will need to be applied if standard units are required. + * Note, if standard units are required, raw available values from iio + * channels need the offset (default 0) and scale (default 1) to be applied + * as (raw + offset) * scale. */ int iio_read_avail_channel_raw(struct iio_channel *chan, const int **vals, int *length);