linux/drivers/iio
Mihail Chindris 9eeee3b0bf iio: Add output buffer support
Currently IIO only supports buffer mode for capture devices like ADCs. Add
support for buffered mode for output devices like DACs.

The output buffer implementation is analogous to the input buffer
implementation. Instead of using read() to get data from the buffer write()
is used to copy data into the buffer.

poll() with POLLOUT will wakeup if there is space available.

Drivers can remove data from a buffer using iio_pop_from_buffer(), the
function can e.g. called from a trigger handler to write the data to
hardware.

A buffer can only be either a output buffer or an input, but not both. So,
for a device that has an ADC and DAC path, this will mean 2 IIO buffers
(one for each direction).

The direction of the buffer is decided by the new direction field of the
iio_buffer struct and should be set after allocating and before registering
it.

Co-developed-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Co-developed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Signed-off-by: Mihail Chindris <mihail.chindris@analog.com>
Link: https://lore.kernel.org/r/20211007080035.2531-2-mihail.chindris@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2021-10-19 08:30:44 +01:00
..
accel iio: accel: fxls8962af: add wake on event 2021-10-19 08:27:32 +01:00
adc iio: adc: ad799x: Implement selecting external reference voltage input on AD7991, AD7995 and AD7999. 2021-10-19 08:30:43 +01:00
afe iio: afe: iio-rescale: Support processed channels 2021-06-03 18:24:13 +01:00
amplifiers
buffer iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
cdc iio:cdc:ad7150: Fix use of uninitialized ret 2021-04-07 08:36:39 +01:00
chemical drivers: iio: chemical: Add support for Sensirion SCD4x CO2 sensor 2021-10-19 08:30:44 +01:00
common iio: st_sensors: Make use of the helper function dev_err_probe() 2021-10-19 08:30:44 +01:00
dac iio: dac: ti-dac7311: Make use of the helper function dev_err_probe() 2021-10-19 08:30:44 +01:00
dummy iio: dummy: Fix build error when CONFIG_IIO_TRIGGERED_BUFFER is not set 2021-06-13 17:00:17 +01:00
frequency iio: frequency: adf4350: disable reg and clk on error in adf4350_probe() 2021-06-13 17:00:17 +01:00
gyro iio: gyro: mpu3050: Fix alignment and size issues with buffers. 2021-10-19 08:29:22 +01:00
health iio: health: afe4404: Make use of the helper function dev_err_probe() 2021-10-19 08:30:44 +01:00
humidity iio: humidity: hdc100x: Add margin to the conversion time 2021-07-24 18:13:02 +01:00
imu iio: st_lsm9ds0: Make use of the helper function dev_err_probe() 2021-10-19 08:30:44 +01:00
light iio: light: noa1305: Make use of the helper function dev_err_probe() 2021-10-19 08:30:44 +01:00
magnetometer iio: magnetometer: ak8975: add AK09116 support 2021-09-14 12:00:33 +01:00
multiplexer
orientation iio: hid-sensors: bind IIO channels alloc to device object 2021-07-13 18:21:53 +01:00
position iio: hid-sensors: Update header includes 2021-06-16 14:53:13 +01:00
potentiometer iio: potentiometer: Add driver support for AD5110 2021-08-15 15:38:16 +01:00
potentiostat iio: potentiostat: lmp91000: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:30 +01:00
pressure iio: st_sensors: remove reference to parent device object on st_sensor_data 2021-09-14 12:00:32 +01:00
proximity iio: sx9310: Support ACPI property 2021-07-31 15:15:28 +01:00
resolver
temperature iio: temperature: Add MAX31865 RTD Support 2021-09-14 12:00:33 +01:00
test iio: Remove a cast in iio-test-format which is no longer required 2021-06-23 16:38:24 -06:00
trigger iio: trigger: stm32-timer: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-05-17 13:49:05 +01:00
iio_core_trigger.h iio: core-trigger: make iio_device_register_trigger_consumer() an int return 2021-03-11 20:47:02 +00:00
iio_core.h iio: Add output buffer support 2021-10-19 08:30:44 +01:00
industrialio-buffer.c iio: Add output buffer support 2021-10-19 08:30:44 +01:00
industrialio-configfs.c
industrialio-core.c iio: Add output buffer support 2021-10-19 08:30:44 +01:00
industrialio-event.c iio:event: Add timeout event info type 2021-04-07 08:36:36 +01:00
industrialio-sw-device.c
industrialio-sw-trigger.c
industrialio-trigger.c iio: core: move @trig_readonly from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
industrialio-triggered-event.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
inkern.c iio: inkern: introduce devm_iio_map_array_register() short-hand function 2021-10-19 08:27:34 +01:00
Kconfig iio:cdc:ad7150: Move driver out of staging. 2021-04-07 08:36:37 +01:00
Makefile iio:cdc:ad7150: Move driver out of staging. 2021-04-07 08:36:37 +01:00
TODO