Re: [PATCH v2 11/17] iio: core: Introduce _inputoffset for differential channels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 19 Jun 2022 19:58:33 +0100
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:

> From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> 
> Address an ABI gap for device where the offset of both lines in a
> differential pair may be controlled so as to allow a wider range of
> inputs, but without having any direct effect of the differential
> measurement.
> 
> _offset cannot be used as to remain in line with existing usage,
> userspace would be expected to apply it as (_raw + _offset) * scale
> whereas _inputoffset is not.
> Similarly calibbias is expected to tweak the measurement seen, not
> the adjust the two lines of the differential pair.
> 
> Needed for in_capacitanceX-capacitanceY_inputoffset for the
> AD7746 CDC driver.
> 
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
> 
> ---
> I''m not entirely happy with the naming on this one, so if anyone
> has a better idea I'm definitely open to it!
> ---
>  Documentation/ABI/testing/sysfs-bus-iio | 13 +++++++++++++
>  drivers/iio/industrialio-core.c         |  1 +
>  include/linux/iio/types.h               |  1 +
>  3 files changed, 15 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index d3a0c0ef8948..132eb4e849f9 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -204,6 +204,19 @@ Description:
>  		is required is a consistent labeling.  Units after application
>  		of scale and offset are nanofarads.
>  
> +What:		/sys/.../iio:deviceX/in_capacitableY-capacitanceZ_inputoffset

capacitable?  What was I drinking that day...  Will fix.

> +KernelVersion:	5.19
> +Contact:	linux-iio@xxxxxxxxxxxxxxx
> +Description:
> +		For differential channels, this an offset that is applied
> +		equally to both inputs. As the reading is of the difference
> +		between the two inputs this should not be applied to the _raw
> +		reading by userspace (unlike _offset) and unlike calibbias
> +		it does not affect the differential value measured because
> +		the effect of _inputoffset cancels out across the two inputs
> +		that make up the differential pair. It is expressed with
> +		the same scaling as _raw.
> +
>  What:		/sys/bus/iio/devices/iio:deviceX/in_temp_raw
>  What:		/sys/bus/iio/devices/iio:deviceX/in_tempX_raw
>  What:		/sys/bus/iio/devices/iio:deviceX/in_temp_x_raw
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 6b401f63805f..ad1c2354502d 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -168,6 +168,7 @@ static const char * const iio_chan_info_postfix[] = {
>  	[IIO_CHAN_INFO_OVERSAMPLING_RATIO] = "oversampling_ratio",
>  	[IIO_CHAN_INFO_THERMOCOUPLE_TYPE] = "thermocouple_type",
>  	[IIO_CHAN_INFO_CALIBAMBIENT] = "calibambient",
> +	[IIO_CHAN_INFO_INPUTOFFSET] = "inputoffset",
>  };
>  /**
>   * iio_device_id() - query the unique ID for the device
> diff --git a/include/linux/iio/types.h b/include/linux/iio/types.h
> index a7aa91f3a8dc..c7f79a251a14 100644
> --- a/include/linux/iio/types.h
> +++ b/include/linux/iio/types.h
> @@ -63,6 +63,7 @@ enum iio_chan_info_enum {
>  	IIO_CHAN_INFO_OVERSAMPLING_RATIO,
>  	IIO_CHAN_INFO_THERMOCOUPLE_TYPE,
>  	IIO_CHAN_INFO_CALIBAMBIENT,
> +	IIO_CHAN_INFO_INPUTOFFSET,
>  };
>  
>  #endif /* _IIO_TYPES_H_ */




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux