linux/drivers/iio
Marcelo Schmitt 020e71c7ff iio: adc: ad7091r: Allow users to configure device events
AD7091R-5 devices are supported by the ad7091r-5 driver together with
the ad7091r-base driver. Those drivers declared iio events for notifying
user space when ADC readings fall bellow the thresholds of low limit
registers or above the values set in high limit registers.
However, to configure iio events and their thresholds, a set of callback
functions must be implemented and those were not present until now.
The consequence of trying to configure ad7091r-5 events without the
proper callback functions was a null pointer dereference in the kernel
because the pointers to the callback functions were not set.

Implement event configuration callbacks allowing users to read/write
event thresholds and enable/disable event generation.

Since the event spec structs are generic to AD7091R devices, also move
those from the ad7091r-5 driver the base driver so they can be reused
when support for ad7091r-2/-4/-8 be added.

Fixes: ca69300173 ("iio: adc: Add support for AD7091R5 ADC")
Suggested-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com>
Link: https://lore.kernel.org/r/59552d3548dabd56adc3107b7b4869afee2b0c3c.1703013352.git.marcelo.schmitt1@gmail.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2023-12-26 15:39:15 +00:00
..
accel iio: accel: bmi088: update comments and Kconfig 2023-12-17 14:22:21 +00:00
adc iio: adc: ad7091r: Allow users to configure device events 2023-12-26 15:39:15 +00:00
addac IIO: 1st set of new device support, features and cleanup for 6.7 2023-10-20 07:54:15 +02:00
afe iio: afe: rescale: Accept only offset channels 2023-10-17 20:25:32 +01:00
amplifiers iio: amplifiers: hmc425a: add support for ADRF5740 Attenuator 2023-11-26 16:36:53 +00:00
buffer iio: buffer-dma: split iio_dma_buffer_fileio_free() function 2023-12-21 11:30:59 +00:00
cdc iio: cdc: ad7150: relax return value check for IRQ get 2023-08-01 18:55:55 +01:00
chemical iio: chemical: add support for Aosong AGS02MA 2023-12-17 14:44:35 +00:00
common iio: cros_ec: fix an use-after-free in cros_ec_sensors_push_data() 2023-10-05 18:06:45 +01:00
dac iio: dac: driver for MCP4821 2023-12-21 17:04:42 +00:00
dummy Bitmap patches for 5.19-rc1 2022-06-04 14:04:27 -07:00
filter drivers: iio: filter: admv8818: add bypass mode 2023-08-08 09:51:06 +01:00
frequency iio: frequency: admv1014: Switch to device_property_match_property_string() 2023-11-16 19:10:26 +00:00
gyro iio: gyro: hid-sensor-gyro-3d: Convert to platform remove callback returning void 2023-09-23 15:06:55 +01:00
health iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
humidity iio: humidity: Add driver for ti HDC302x humidity sensors 2023-12-11 19:38:36 +00:00
imu iio: imu: bmi323: Make the local structures static 2023-11-26 18:04:58 +00:00
light iio: light: driver for Lite-On ltr390 2023-12-11 19:16:35 +00:00
magnetometer iio: magnetometer: tmag5273: Switch to device_property_match_property_string() 2023-11-16 19:10:26 +00:00
multiplexer iio: multiplexer: Switch to use dev_err_probe() helper 2022-11-23 19:43:57 +00:00
orientation iio: orientation: hid-sensor-rotation: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
position iio: position: hid-sensor-custom-intel-hinge: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
potentiometer iio: potentiometer: ad5110: Use i2c_get_match_data() 2023-09-12 10:42:03 +01:00
potentiostat iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
pressure iio: pressure: driver for Honeywell HSC/SSC series 2023-12-11 19:16:35 +00:00
proximity iio: proximity: irsd200: Drop unused include 2023-12-04 13:24:42 +00:00
resolver iio: resolver: ad2s1210: add reset gpio support 2023-11-16 19:10:25 +00:00
temperature iio: temperature: mlx90635 MLX90635 IR Temperature sensor 2023-12-11 19:16:34 +00:00
test iio: test: Mark file local structure arrays static. 2022-08-15 22:30:01 +01:00
trigger iio: trigger: stm32-timer: Convert to platform remove callback returning void 2023-09-23 15:06:56 +01:00
iio_core_trigger.h
iio_core.h iio: Remove unused declarations 2023-09-12 10:42:03 +01:00
industrialio-buffer.c iio: buffer: Use IIO_SEPARATE instead of a hard-coded 0 2023-12-21 10:48:29 +00:00
industrialio-configfs.c
industrialio-core.c iio: core: introduce trough info element for minimum values 2023-12-11 19:37:10 +00:00
industrialio-event.c iio: event: add optional event label support 2023-10-11 15:54:41 +01:00
industrialio-gts-helper.c iio: gts-helpers: fix integration time units 2023-05-13 17:54:57 +01:00
industrialio-sw-device.c iio: Don't use bare "unsigned" 2022-07-01 11:19:08 +01:00
industrialio-sw-trigger.c iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails 2022-11-12 17:53:35 +00:00
industrialio-trigger.c iio: Make return value check for set_trigger_state() consistent 2023-07-20 19:21:30 +01:00
industrialio-triggered-event.c
inkern.c iio: inkern: Add a helper to query an available minimum raw value 2023-07-09 22:48:17 +01:00
Kconfig iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
Makefile iio: light: Add gain-time-scale helpers 2023-04-10 12:26:34 +01:00
TODO iio: core: move 'mlock' to 'struct iio_dev_opaque' 2022-11-23 19:44:00 +00:00