linux_dsm_epyc7002/include/linux/iio
Jonathan Cameron 5123960007 iio:core: add a callback to allow drivers to provide _available attributes
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

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 <jic23@kernel.org>
[forward ported, added some docs and fixed buffer overflows /peda]
Acked-by: Daniel Baluta <daniel.baluta@intel.com>
Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2016-11-13 11:40:25 +00:00
..
accel iio: accel: kxcjk1013 3-axis accelerometer driver 2014-06-14 17:10:21 +01:00
adc staging: iio: ad7192: implement IIO_CHAN_INFO_SAMP_FREQ 2016-10-11 19:39:38 +01:00
common iio: st_sensors: harden interrupt handling 2016-07-02 20:40:15 +01:00
dac iio: dac: mcp4725: support voltage reference selection 2016-10-23 19:34:23 +01:00
frequency iio: frequency: adf4350: cast value to unsigned to make code checkers happy 2013-06-04 18:36:52 +01:00
gyro itg3200: fix incorrect ifdef comment 2013-03-18 10:59:42 +01:00
imu iio:adis: Add support for manual self-test flag clear 2016-04-16 13:42:43 +01:00
magnetometer iio:ak8975: add mounting matrix support 2016-04-23 22:14:34 +01:00
buffer-dma.h iio: Add generic DMA buffer infrastructure 2015-10-25 13:54:34 +00:00
buffer-dmaengine.h iio: Add a DMAengine framework based buffer 2015-10-25 13:55:32 +00:00
buffer.h iio: buffer: add missing descriptions in iio_buffer_access_funcs 2016-04-03 10:27:49 +01:00
configfs.h iio:configfs: Introduce iio/configfs.h to provide a location for the configfs_subsystem 2015-12-05 16:25:30 +00:00
consumer.h iio: inkern: add iio_read_channel_offset helper 2016-09-27 20:33:02 +01:00
driver.h iio: Simplify iio_map_array_unregister API 2013-02-02 12:02:20 +00:00
events.h iio: Export userspace IIO headers 2015-02-14 17:05:03 +00:00
iio.h iio:core: add a callback to allow drivers to provide _available attributes 2016-11-13 11:40:25 +00:00
kfifo_buf.h iio: kfifo: Add resource management devm_iio_kfifo_allocate/free 2014-12-26 11:39:57 +00:00
machine.h staging:iio:in kernel users: Add a data field for channel specific info. 2012-11-10 10:17:27 +00:00
sw_device.h iio: Add support for creating IIO devices via configfs 2016-05-04 11:43:54 +01:00
sw_trigger.h iio: sw-trigger: Fix config group initialization 2016-08-15 15:39:09 +01:00
sysfs.h include: linux: iio: add IIO_ATTR_{RO, WO, RW} and IIO_DEVICE_ATTR_{RO, WO, RW} macros 2016-10-01 14:43:59 +01:00
trigger_consumer.h iio:trigger_consumer.h: Add missing includes and forward declarations 2012-08-27 18:57:59 +01:00
trigger.h iio:trigger: Add helper function to verify that a trigger belongs to the same device 2016-09-27 20:32:55 +01:00
triggered_buffer.h iio: add resource managed triggered buffer init helpers 2016-09-04 15:42:46 +01:00
triggered_event.h iio: Support triggered events 2015-08-27 20:47:09 +01:00
types.h iio:core: add a callback to allow drivers to provide _available attributes 2016-11-13 11:40:25 +00:00