linux/drivers/iio/adc
David Lechner 6cc7e4bf2e iio: adc: ad4695: implement triggered buffer
This implements buffered reads for the ad4695 driver using the typical
triggered buffer implementation, including adding a soft timestamp
channel.

The chip has 4 different modes for doing conversions. The driver is
using the advanced sequencer mode since that is the only mode that
allows individual configuration of all aspects each channel (e.g.
bipolar config currently and oversampling to be added in the future).

Signed-off-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20240813-iio-adc-ad4695-buffered-read-v2-1-9bb19fc1924b@baylibre.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2024-08-17 15:37:37 +01:00
..
ab8500-gpadc.c iio: adc: ab8500-gpadc: Use device_for_each_child_node_scoped() to simplify erorr paths. 2024-04-06 11:29:06 +01:00
ad799x.c iio: adc: ad799x: make use of iio_get_masklength() 2024-07-29 20:31:09 +01:00
ad4000.c iio: adc: Add support for AD4000 2024-08-03 10:53:54 +01:00
ad4130.c iio: adc: ad4130: make use of regmap_clear_bits() 2024-06-25 21:04:44 +01:00
ad4695.c iio: adc: ad4695: implement triggered buffer 2024-08-17 15:37:37 +01:00
ad7091r5.c iio: adc: ad7091r: Add chip_info callback to get conversion result channel 2023-12-26 15:42:24 +00:00
ad7091r8.c iio: adc: ad7091r8: Constify struct regmap_bus 2024-07-29 20:31:10 +01:00
ad7091r-base.c iio: adc: ad7091r-base: Use auto cleanup of locks. 2024-02-17 16:16:11 +00:00
ad7091r-base.h iio: adc: Add support for AD7091R-8 2023-12-26 15:43:33 +00:00
ad7124.c iio: adc: ad7124: set initial ADC mode to idle 2024-08-03 16:05:53 +01:00
ad7173.c iio: adc: ad7173: Fix uninitialized symbol is_current_chan 2024-07-02 19:43:46 +01:00
ad7192.c iio: adc: ad7192: Add clock provider 2024-08-03 10:13:39 +01:00
ad7266.c iio: adc: ad7266: make use of iio_get_masklength() 2024-07-29 20:31:08 +01:00
ad7280a.c iio: adc: ad7280a: simplify with cleanup.h 2024-07-29 20:31:11 +01:00
ad7291.c iio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 09:48:57 +01:00
ad7292.c iio: adc: ad7292: use devm_regulator_get_enable_read_voltage 2024-06-22 10:51:53 +01:00
ad7298.c iio: adc: ad7298: make use of iio_get_masklength() 2024-07-29 20:31:09 +01:00
ad7380.c iio: adc: ad7380: enable sequencer for single-ended parts 2024-08-03 11:33:35 +01:00
ad7476.c iio: adc: ad7476: 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: ad7606: fix oversampling gpio array 2024-07-29 20:31:12 +01:00
ad7606.c iio: adc: ad7606: switch mutexes to guard 2024-07-29 20:31:12 +01:00
ad7606.h iio: adc: ad7606: simplify using devm_regulator_get_enable() 2022-11-23 19:44:00 +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: use device_* to iterate over device child nodes 2024-08-03 12:12:55 +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: ad7793: use devm_regulator_get_enable_read_voltage 2024-06-22 10:52:13 +01: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
ad7944.c iio: adc: ad7944: use devm_spi_optimize_message() 2024-06-30 11:38:13 +01:00
ad7949.c iio: adc: ad7949: Fix error message 2022-07-16 18:50:24 +01:00
ad9467.c iio: adc: ad9467: add digital interface test to debugfs 2024-08-03 14:36:45 +01:00
ad_sigma_delta.c iio: adc: ad_sigma_delta: use new '.masklength' accessors 2024-07-29 20:31:09 +01:00
adi-axi-adc.c iio: adc: adi-axi-adc: implement backend debugfs interface 2024-08-03 14:36:45 +01:00
aspeed_adc.c iio: adc: aspeed: Use of_property_present() 2024-08-03 12:19:03 +01:00
at91_adc.c iio: adc: at91: simplify with cleanup.h 2024-07-29 20:31:11 +01:00
at91-sama5d2_adc.c iio: adc: at91-sama5d2: Convert to platform remove callback returning void 2023-09-23 15:06:52 +01:00
axp20x_adc.c iio: adc: axp20x_adc: make use of regmap_set_bits() 2024-06-25 21:04:44 +01:00
axp288_adc.c iio: adc: axp288_adc: make use of regmap_set_bits() 2024-06-25 21:04:44 +01:00
bcm_iproc_adc.c iio: adc: bcm_iproc_adc: make use of regmap_clear_bits() 2024-06-25 21:04:44 +01:00
berlin2-adc.c iio: adc: berlin2-adc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +01:00
cc10001_adc.c iio: adc: cc10001_adc: make use of iio_for_each_active_channel() 2024-08-03 10:13:39 +01:00
cpcap-adc.c iio: adc: cpcap-adc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:44 +01: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-adc: use new '.masklength' accessors 2024-08-03 10:13:39 +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 iio: adc: exynos_adc: use 'time_left' variable with wait_for_completion_timeout() 2024-04-29 21:06:18 +01:00
fsl-imx25-gcq.c iio: adc: fsl-imx25-gcq: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:44 +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: make use of iio_for_each_active_channel() 2024-08-03 10:13:39 +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 iio: adc: max1118: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +01:00
ingenic-adc.c iio: add missing MODULE_DESCRIPTION() macros 2024-06-13 19:19:23 +01:00
intel_mrfld_adc.c iio: adc: intel_mrfld_adc: make use of regmap_clear_bits() 2024-06-25 21:04:45 +01:00
Kconfig iio: adc: stm32-dfsdm: add scaling support to dfsdm 2024-08-10 11:17:34 +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: ltc2309: Fix endian type passed to be16_to_cpu() 2024-06-28 20:04:18 +01:00
ltc2471.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ltc2485.c iio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 09:48:57 +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: Add support for AD4000 2024-08-03 10:53:54 +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: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +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: simplify with cleanup.h 2024-07-29 20:31:11 +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: max11205: simplify with spi_get_device_match_data() 2024-06-13 19:19:24 +01:00
max11410.c iio: adc: max11410: Use device_for_each_child_node_scoped() 2024-03-25 19:50:09 +00:00
max34408.c iio: adc: Add driver support for MAX34408/9 2023-11-16 19:10:25 +00: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: Simplify device removal logic 2024-02-28 19:26:35 +00:00
mcp3422.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
mcp3564.c iio: adc: mcp3564: use devm_regulator_get_enable_read_voltage() 2024-08-03 10:13:43 +01:00
mcp3911.c iio: adc: mcp3911: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +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_saradc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +01:00
mp2629_adc.c iio: adc: mp2629_adc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +01:00
mt6359-auxadc.c iio: adc: Add support for MediaTek MT6357/8/9 Auxiliary ADC 2024-07-01 19:38:48 +01:00
mt6360-adc.c iio: adc: mt6360-adc: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +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-adc: don't set masklength 2024-04-29 20:53:24 +01:00
nau7802.c iio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 09:48:57 +01:00
npcm_adc.c iio: adc: npcm: Convert to platform remove callback returning void 2023-09-23 15:06:54 +01:00
pac1921.c iio: adc: pac1921: add missing error return in probe() 2024-08-10 11:34:27 +01:00
pac1934.c iio: adc: pac1934: remove unused struct 'samp_rate_mapping' 2024-06-04 19:53:06 +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: drop unused kerneldoc struct pm8xxx_chan_info member 2024-02-28 19:26:38 +00:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Use device_for_each_child_node_scoped() 2024-04-13 10:38:05 +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: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +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: use for_each_available_child_node_scoped() 2024-03-25 19:53:08 +00:00
rn5t618-adc.c iio: adc: rn5t618-adc: make use of regmap_set_bits() 2024-06-25 21:04:45 +01:00
rockchip_saradc.c iio: adc: rockchip_saradc: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +01:00
rtq6056.c iio: adc: rtq6056: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +01:00
rzg2l_adc.c iio: adc: rzg2l_adc: Use device_for_each_child_node_scoped() 2024-03-25 19:50:10 +00:00
sc27xx_adc.c iio: adc: sc27xx_adc: make use of regmap_clear_bits(), regmap_set_bits() 2024-06-25 21:04:45 +01:00
sd_adc_modulator.c iio: add iio backend support to sd modulator 2024-08-10 11:17:34 +01:00
spear_adc.c iio: adc: spear_adc: Make use of device properties 2024-03-25 20:10:11 +00: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: make use of iio_get_masklength() 2024-08-03 10:13:42 +01:00
stm32-dfsdm-adc.c iio: adc: stm32-dfsdm: add scaling support to dfsdm 2024-08-10 11:17:34 +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_am335x_adc.c of: remove internal arguments from of_property_for_each_u32() 2024-07-25 06:53:47 -05: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: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +01:00
ti-adc108s102.c iio: adc: ti-adc108s102: use devm_regulator_get_enable_read_voltage() 2024-06-25 21:04:51 +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: make use of iio_device_claim_direct_scoped() 2024-06-13 19:19:22 +01:00
ti-adc0832.c iio: adc: ti-adc0832: make use of iio_for_each_active_channel() 2024-08-03 10:13:42 +01:00
ti-adc12138.c iio: adc: ti-adc12138: make use of iio_for_each_active_channel() 2024-08-03 10:13:43 +01:00
ti-ads124s08.c iio: adc: ti-ads124s08: make use of iio_for_each_active_channel() 2024-08-03 10:13:43 +01:00
ti-ads131e08.c iio: adc: ti-ads131e08: make use of iio_for_each_active_channel() 2024-08-03 10:13:43 +01:00
ti-ads1015.c iio: adc: ti-ads1015: make use of iio_get_masklength() 2024-08-03 10:13:42 +01:00
ti-ads1100.c iio: Switch i2c drivers back to use .probe() 2023-05-21 18:54:53 +01:00
ti-ads1119.c iio: adc: ti-ads1119: make use of iio_get_masklength() 2024-08-03 10:13:42 +01:00
ti-ads1298.c iio: adc: ti-ads1298: make use of iio_for_each_active_channel() 2024-08-03 10:13:43 +01:00
ti-ads7924.c iio: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-05-27 09:48:57 +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: make use of iio_for_each_active_channel() 2024-08-03 10:13:43 +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: ti-tsc2046: use devm_regulator_get_enable_read_voltage() 2024-08-03 10:13:44 +01:00
twl4030-madc.c iio: adc: twl4030-madc: Make use of device properties 2024-03-25 20:10:13 +00:00
twl6030-gpadc.c iio: adc: twl6030-gpadc: use 'time_left' variable with wait_for_completion_interruptible_timeout() 2024-04-29 21:06:18 +01:00
vf610_adc.c iio: adc: vf610_adc: make use of iio_get_masklength() 2024-08-03 10:13:43 +01:00
viperboard_adc.c iio: remove explicit IIO device parent assignment 2020-06-14 11:49:59 +01:00
xilinx-ams.c IIO: 2nd set of new device support, features and cleanup for 6.11 2024-07-04 11:04:20 +02:00
xilinx-xadc-core.c iio: adc: xilinx-xadc-core: use new '.masklength' accessors 2024-08-03 10:13:43 +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