linux/drivers/iio/adc
Marcelo Schmitt 55aca2ce91 iio: adc: ad7091r: Allow users to configure device events
[ Upstream commit 020e71c7ff ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-01-31 16:20:53 -08:00
..
ab8500-gpadc.c iio: adc: ab8500-gpadc: Convert to platform remove callback returning void 2023-09-23 15:06:52 +01:00
ad799x.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ad4130.c iio: ad4310: Replace devm_clk_register() with devm_clk_hw_register() 2023-09-13 20:13:54 +01:00
ad7091r-base.c iio: adc: ad7091r: Allow users to configure device events 2024-01-31 16:20:53 -08:00
ad7091r-base.h iio: adc: ad7091r: Allow users to configure device events 2024-01-31 16:20:53 -08:00
ad7091r5.c iio: adc: ad7091r: Allow users to configure device events 2024-01-31 16:20:53 -08:00
ad7124.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
ad7192.c IIO: 1st set of new device support, features and cleanup for 6.7 2023-10-20 07:54:15 +02:00
ad7266.c iio: adc: ad7266: Fix alignment for DMA safety 2022-06-14 11:53:12 +01:00
ad7280a.c iio: adc: ad7280a: Fix alignment for DMA safety 2022-06-14 11:53:12 +01:00
ad7291.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ad7292.c iio: adc: ad7292: Add explicit include for of.h 2023-04-06 20:36:26 +02:00
ad7298.c iio: adc: ad7298: Fix alignment for DMA safety 2022-06-14 11:53:12 +01:00
ad7476.c iio: adc: ad7476: simplify using devm_regulator_get_enable() 2022-11-23 19:44:00 +00:00
ad7606.c iio: Rename iio_trigger_poll_chained and add kernel-doc 2023-03-11 12:18:29 +00:00
ad7606.h iio: adc: ad7606: simplify using devm_regulator_get_enable() 2022-11-23 19:44:00 +00:00
ad7606_par.c iio: use devm_platform_get_and_ioremap_resource() 2022-11-23 20:41:23 +00:00
ad7606_spi.c iio:adc:ad76060: Move exports into IIO_AD7606 namespace. 2022-02-18 11:42:26 +00:00
ad7766.c iio: adc: ad7766: Fix alignment for DMA safety 2022-06-14 11:53:12 +01:00
ad7768-1.c iio: adc: ad7768-1: Benefit from devm_clk_get_enabled() to simplify 2022-08-15 22:30:02 +01:00
ad7780.c iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace 2022-02-18 11:42:26 +00:00
ad7791.c iio: adc: ad7791: fix IRQ flags 2023-02-18 17:06:09 +00:00
ad7793.c iio:adc:ad_sigma_delta: Move exports into IIO_AD_SIGMA_DELTA namespace 2022-02-18 11:42:26 +00:00
ad7887.c iio: adc: ad7887: Fix alignment for DMA safety 2022-06-14 11:53:13 +01:00
ad7923.c iio: adc: ad7923: support extended range 2022-09-21 18:42:55 +01:00
ad7949.c iio: adc: ad7949: Fix error message 2022-07-16 18:50:24 +01:00
ad9467.c iio: adc: ad9467: fix scale setting 2024-01-25 15:45:22 -08:00
ad_sigma_delta.c iio: adc: ad_sigma_delta: Fix IRQ issue by setting IRQ_DISABLE_UNLAZY flag 2023-05-20 16:34:52 +01:00
adi-axi-adc.c iio: adc: ad9467: fix scale setting 2024-01-25 15:45:22 -08:00
aspeed_adc.c iio: adc: aspeed: Remove the trim valid dts property. 2022-11-14 20:20:08 +00:00
at91-sama5d2_adc.c iio: adc: at91-sama5d2: Convert to platform remove callback returning void 2023-09-23 15:06:52 +01:00
at91_adc.c iio: adc: at91: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
axp20x_adc.c iio: adc: axp20x: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
axp288_adc.c iio: adc: axp288_adc: do not use internal iio_dev lock 2022-11-23 19:43:57 +00:00
bcm_iproc_adc.c iio: adc: bcm_iproc: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
berlin2-adc.c iio: adc: berlin2-adc: Add missing of_node_put() in error path 2022-12-28 17:20:03 +00:00
cc10001_adc.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
cpcap-adc.c iio: adc: cpcap-adc: remove redundant assignment to variable cal_data_diff 2022-02-07 20:40:39 +00:00
da9150-gpadc.c iio: adc: da9150-gpadc: convert probe to full-device managed 2021-10-19 08:27:34 +01:00
dln2-adc.c iio: adc: dln2: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
envelope-detector.c iio:adc:envelope-detector: Switch from of headers to mod_devicetable.h 2021-12-12 17:13:11 +00:00
ep93xx_adc.c iio: adc: ep93xx: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
exynos_adc.c Char/Misc and other driver changes for 6.7-rc1 2023-11-03 14:51:08 -10:00
fsl-imx25-gcq.c iio: adc: fsl-imx25-gcq: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
hi8435.c iio: adc: hi8435: Fix alignment for DMA safety 2022-06-14 11:53:13 +01:00
hx711.c iio: adc: hx711: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
imx7d_adc.c iio: adc: Remove redundant dev_err_probe() 2023-07-29 12:13:17 +01:00
imx8qxp-adc.c IIO: 1st set of new device support, features and cleanup for 6.7 2023-10-20 07:54:15 +02:00
imx93_adc.c iio: adc: imx93: add four channels for imx93 adc 2023-12-04 09:56:28 +00:00
ina2xx-adc.c Merge 6.5-rc6 into char-misc-next 2023-08-13 22:14:51 +02:00
ingenic-adc.c iio: adc: ingenic-adc: Benefit from devm_clk_get_prepared() to simplify 2022-08-15 22:30:02 +01:00
intel_mrfld_adc.c iio: adc: intel_mrfld_adc: explicitly add proper header files 2022-06-15 22:07:09 +01:00
Kconfig iio: adc: adding support for MCP3564 ADC 2023-09-12 10:42:04 +01:00
lp8788_adc.c iio: adc: lp8788_adc: convert probe to full-device managed 2021-10-19 08:27:34 +01:00
lpc18xx_adc.c iio: adc: lpc18xx: Benefit from devm_clk_get_enabled() to simplify 2022-08-15 22:30:02 +01:00
lpc32xx_adc.c iio: adc: fix the return value handle for platform_get_irq() 2023-07-29 16:23:45 +01:00
ltc2309.c iio: adc: add ltc2309 support 2023-09-12 10:42:04 +01:00
ltc2471.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ltc2485.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ltc2496.c drivers: iio: adc: ltc2497: Rename the LTC2499 iio device 2022-09-21 18:42:54 +01:00
ltc2497-core.c iio: adc: ltc2947-core: do not use internal iio_dev lock 2022-11-23 19:43:58 +00:00
ltc2497.c iio: adc: ltc2497: Simplify probe() 2023-09-12 10:42:04 +01:00
ltc2497.h iio: adc: ltc2947-core: do not use internal iio_dev lock 2022-11-23 19:43:58 +00:00
Makefile iio: adc: adding support for MCP3564 ADC 2023-09-12 10:42:04 +01:00
max1027.c iio: adc: max1027: unlock on error path in max1027_read_single_value() 2022-07-19 09:30:05 +01:00
max1118.c iio: adc: max1118: Fix alignment for DMA safety 2022-06-14 11:53:13 +01:00
max1241.c iio: adc: max1241: simplify using devm_regulator_get_enable() 2022-11-23 19:44:01 +00:00
max1363.c iio: adc: max1363: Use i2c_get_match_data() 2023-09-11 20:12:42 +01:00
max9611.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
max11100.c iio: adc: max11100: Fix alignment for DMA safety 2022-06-14 11:53:13 +01:00
max11205.c iio: adc: add max11205 adc driver 2022-09-05 18:08:34 +01:00
max11410.c 1st set of IIO new device support, features and cleanups for the 6.4 cycle. 2023-04-12 09:45:34 +02:00
max77541-adc.c iio: adc: max77541: Add ADI MAX77541 ADC Support 2023-06-28 15:18:11 +01:00
mcp320x.c iio: adc: mcp320x: Fix alignment for DMA safety 2022-06-14 11:53:14 +01:00
mcp3422.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
mcp3564.c iio: adc: MCP3564: fix hardware identification logic 2023-12-04 13:54:10 +00:00
mcp3911.c iio: adc: mcp3911: add support for the whole MCP39xx family 2023-09-11 20:12:40 +01:00
men_z188_adc.c iio: adc: men_z188_adc: Remove redundant initialization owner in men_z188_driver 2023-08-05 17:43:17 +01:00
meson_saradc.c iio: adc: meson: add separate config for axg SoC family 2023-12-04 10:36:07 +00:00
mp2629_adc.c iio: adc: mp2629: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
mt6360-adc.c iio: adc: mt6360: Drop an incorrect __maybe_unused marking. 2022-08-15 22:30:02 +01:00
mt6370-adc.c iio: adc: mt6370: Fix ibus and ibat scaling value of some specific vendor ID chips 2023-05-13 17:54:56 +01:00
mt6577_auxadc.c iio: adc: mt6577_auxadc: Fix kernel panic on suspend 2023-10-11 15:54:40 +01:00
mxs-lradc-adc.c iio: adc: mxs-lradc: Convert to platform remove callback returning void 2023-09-23 15:06:53 +01:00
nau7802.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
npcm_adc.c iio: adc: npcm: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
palmas_gpadc.c iio: adc: palmas_gpadc: Drop duplicated the in comment. 2023-09-23 18:38:18 +01:00
qcom-pm8xxx-xoadc.c iio: adc: qcom-pm8xxx-xoadc: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Add ADC5_GPIO2_100K_PU 2023-07-20 19:21:30 +01:00
qcom-spmi-iadc.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
qcom-spmi-rradc.c iio: adc: qcom-spmi-rradc: Fix spelling mistake "coherrency" -> "coherency" 2022-07-01 11:19:08 +01:00
qcom-spmi-vadc.c iio: adc: qcom-spmi-vadc: Propagate fw node label to userspace 2023-05-13 18:28:10 +01:00
qcom-vadc-common.c iio: adc: qcom-vadc-common: add reverse scaling for PMIC5 Gen2 ADC_TM 2022-05-19 12:11:51 +02:00
rcar-gyroadc.c iio: adc: rcar-gyroadc: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
rn5t618-adc.c iio: adc: rn5t618: Re-use generic struct u16_fract 2022-01-30 12:21:25 +00:00
rockchip_saradc.c iio: adc: Remove redundant dev_err_probe() 2023-07-29 12:13:17 +01:00
rtq6056.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
rzg2l_adc.c IIO new device support, features and minor fixes for 5.20 2022-07-14 15:04:49 +02:00
sc27xx_adc.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
sd_adc_modulator.c iio:adc:sd_adc_modulator: Drop of_match_ptr and tweak includes 2020-07-07 20:24:09 +01:00
spear_adc.c iio: adc: spear_adc: Use dev_err_probe() 2023-09-11 20:12:40 +01:00
stm32-adc-core.c iio: Use device_get_match_data() 2023-10-14 17:18:36 +01:00
stm32-adc-core.h iio: adc: stm32-adc: smart calibration support 2022-11-23 20:56:13 +00:00
stm32-adc.c iio: adc: stm32-adc: Replace deprecated strncpy() with strscpy() 2023-10-05 15:01:08 +01:00
stm32-dfsdm-adc.c iio: adc: stm32-dfsdm-adc: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm-core: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
stm32-dfsdm.h iio: adc: stm32-dfsdm: add id registers support 2023-01-08 13:11:03 +00:00
stmpe-adc.c iio: adc: Explicitly include correct DT includes 2023-07-23 13:38:13 +01:00
sun4i-gpadc-iio.c iio: adc: sun4i-gpadc-iio: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
sun20i-gpadc-iio.c iio: adc: Add Allwinner D1/T113s/R329/T507 SoCs GPADC 2023-07-20 19:21:29 +01:00
ti-adc081c.c iio: adc: ti-adc081c: Simplify probe() 2023-09-12 10:42:04 +01:00
ti-adc084s021.c iio: adc: ti-adc084s021: Fix alignment for DMA safety 2022-06-14 11:53:14 +01:00
ti-adc108s102.c iio: adc: ti-adc108s102: Fix alignment for DMA safety 2022-06-14 11:53:14 +01:00
ti-adc128s052.c iio: adc: ti-adc128s052: Sort headers 2023-01-08 12:12:10 +00:00
ti-adc161s626.c iio: adc: ti-adc161s626: Fix alignment for DMA safety 2022-06-14 11:53:14 +01:00
ti-adc0832.c iio: adc: ti-adc0832: Fix alignment for DMA safety 2022-06-14 11:53:14 +01:00
ti-adc12138.c iio: adc: ti-adc12138: Fix alignment for DMA safety 2022-06-14 11:53:14 +01:00
ti-ads124s08.c iio: adc: ti-ads124s08: Drop unused parameter to ads124s_read() 2022-07-18 18:43:42 +01:00
ti-ads131e08.c iio: adc: ti-ads131e08: Silence no spi_device_id warnings 2022-11-23 19:43:57 +00:00
ti-ads1015.c iio: adc: ti-ads1015: Simplify probe() 2023-09-12 10:42:04 +01:00
ti-ads1100.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ti-ads7924.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ti-ads7950.c iio: adc: ti-ads7950: Set can_sleep flag for GPIO chip 2023-03-18 16:39:35 +00:00
ti-ads8344.c iio: adc: ti-ads8344: Fix alignment for DMA safety 2022-06-14 11:53:15 +01:00
ti-ads8688.c iio: adc: ti-ads8688: Fix alignment for DMA safety 2022-06-14 11:53:15 +01:00
ti-lmp92064.c iio: adc: ti-lmp92064: add buffering support 2023-07-20 19:21:30 +01:00
ti-tlc4541.c iio: adc: ti-tlc4541: Fix alignment for DMA safety 2022-06-14 11:53:15 +01:00
ti-tsc2046.c iio: adc: tsc2046: silent spi_device_id warning 2022-09-04 14:55:03 +01:00
ti_am335x_adc.c iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma() 2023-12-04 09:31:51 +00:00
twl4030-madc.c iio: adc: twl4030-madc: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
twl6030-gpadc.c iio: Use device_get_match_data() 2023-10-14 17:18:36 +01:00
vf610_adc.c iio: adc: vf610_adc: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
viperboard_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
xilinx-ams.c iio: adc: Use devm_krealloc_array 2023-05-30 21:07:15 +01:00
xilinx-xadc-core.c iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale 2023-10-13 19:10:39 +01:00
xilinx-xadc-events.c iio: xilinx-xadc: Add basic support for Ultrascale System Monitor 2021-01-09 14:25:24 +00:00
xilinx-xadc.h iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale 2023-10-13 19:10:39 +01:00