linux/drivers/iio/adc
Angelo Dureghello f083f8a21c iio: adc: ad7606: fix serial register access
Fix register read/write routine as per datasheet.

When reading multiple consecutive registers, only the first one is read
properly. This is due to missing chip select deassert and assert again
between first and second 16bit transfer, as shown in the datasheet
AD7606C-16, rev 0, figure 110.

Fixes: f2a22e1e17 ("iio: adc: ad7606: Add support for software mode for ad7616")
Reviewed-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
Link: https://patch.msgid.link/20250418-wip-bl-ad7606-fix-reg-access-v3-1-d5eeb440c738@baylibre.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
2025-04-21 11:59:58 +01:00
..
Kconfig iio: ad7380: add support for SPI offload 2025-03-11 19:09:17 +00:00
Makefile iio: adc: ad7191: add AD7191 2025-03-11 19:08:56 +00:00
ab8500-gpadc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
ad799x.c iio: adc: ad799x: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:49 +00:00
ad4000.c iio: adc: ad4000: Stop using iio_device_claim_direct_scoped() 2025-02-17 12:58:55 +00:00
ad4030.c iio: adc: ad4030: fix error pointer dereference in probe() 2025-03-04 14:52:42 +00:00
ad4130.c iio: adc: ad4130: Adapt internal names to match official filter_type ABI 2025-03-11 19:09:16 +00:00
ad4695.c iio: adc: ad4695: simplify getting oversampling_ratio 2025-03-04 13:17:50 +00:00
ad4851.c iio: adc: ad4851: Fix signedness bug in ad4851_calibrate() 2025-03-04 13:17:51 +00:00
ad7091r-base.c iio: adc: Include cleanup.h when using guard() 2025-03-04 13:17:51 +00:00
ad7091r-base.h iio: adc: Fix typos in comments across various files 2024-10-05 12:09:15 +01:00
ad7091r5.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
ad7091r8.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
ad7124.c iio: adc: ad7124: Benefit of dev = indio_dev->dev.parent in ad7124_parse_channel_config() 2025-03-11 19:09:16 +00:00
ad7173.c iio: adc: ad7173: Fix comparison of channel configs 2025-03-11 19:09:16 +00:00
ad7191.c iio: adc: ad7191: add AD7191 2025-03-11 19:08:56 +00:00
ad7192.c IIO: New device support, features and cleanup for the 6.15 cycle. 2025-03-14 07:15:12 +01:00
ad7266.c iio: adc: ad7266: Fix potential timestamp alignment issue. 2025-04-18 16:07:47 +01:00
ad7280a.c iio: adc: ad7280a: use IIO_DIFF_EVENT_CODE macro helper 2024-11-03 20:33:45 +00:00
ad7291.c iio: fix write_event_config signature 2024-11-03 20:33:44 +00:00
ad7292.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7298.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ad7380.c iio: adc: ad7380: fix event threshold shift 2025-04-07 19:32:50 +01:00
ad7476.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ad7606.c iio: adc: ad7606: check for NULL before calling sw_mode_config() 2025-04-07 19:32:49 +01:00
ad7606.h iio: adc: ad7606: add support for writing registers when using backend 2025-02-11 19:56:25 +00:00
ad7606_bus_iface.h iio: adc: adi-axi-adc: add platform children support 2025-02-11 19:56:25 +00:00
ad7606_par.c iio: adc: ad7606: add support for writing registers when using backend 2025-02-11 19:56:25 +00:00
ad7606_spi.c iio: adc: ad7606: fix serial register access 2025-04-21 11:59:58 +01:00
ad7625.c iio: adc: ad7625: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:01:43 +00:00
ad7766.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ad7768-1.c iio: adc: ad7768-1: Fix insufficient alignment of timestamp. 2025-04-18 16:07:38 +01:00
ad7779.c iio: adc: ad7779: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:01:49 +00:00
ad7780.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
ad7791.c iio: adc: ad7791: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:49 +00:00
ad7793.c iio: adc: ad7793: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:49 +00:00
ad7887.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ad7923.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ad7944.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ad7949.c
ad9467.c iio: adc: ad9467: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:01:55 +00:00
ad_sigma_delta.c iio: adc: ad_sigma_delta: Add error checking for ad_sigma_delta_set_channel() 2025-03-11 19:09:16 +00:00
adi-axi-adc.c iio: adc: adi-axi-adc: replace of.h with mod_devicetable.h 2025-03-04 13:17:50 +00:00
aspeed_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
at91-sama5d2_adc.c IIO: New device support, features and cleanup for the 6.15 cycle. 2025-03-14 07:15:12 +01:00
at91_adc.c iio: adc: at91: call input_free_device() on allocated iio_dev 2024-12-07 17:28:39 +00:00
axp20x_adc.c Linux 6.12-rc2 2024-10-12 11:43:29 +01:00
axp288_adc.c iio: adc: Constify struct iio_map 2024-09-30 09:21:02 +01:00
bcm_iproc_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
berlin2-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +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
da9150-gpadc.c iio: adc: Convert to IIO_MAP() 2024-09-30 09:21:02 +01:00
dln2-adc.c iio: adc: dln2: Use aligned_s64 for timestamp 2025-04-18 16:07:29 +01:00
envelope-detector.c
ep93xx_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
exynos_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
fsl-imx25-gcq.c
gehc-pmc-adc.c iio: adc: Add support for the GE HealthCare PMC ADC 2024-10-06 14:00:15 +01:00
hi8435.c iio: fix write_event_config signature 2024-11-03 20:33:44 +00:00
hx711.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
imx7d_adc.c
imx8qxp-adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
imx93_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
ina2xx-adc.c io: adc: ina2xx-adc: Fix sign and use aligned_s64 for timestamp. 2024-12-28 14:28:14 +00:00
ingenic-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
intel_mrfld_adc.c Linux 6.12-rc2 2024-10-12 11:43:29 +01:00
lp8788_adc.c iio: adc: Convert to IIO_MAP() 2024-09-30 09:21:02 +01:00
lpc18xx_adc.c
lpc32xx_adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ltc2309.c
ltc2471.c
ltc2485.c
ltc2496.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ltc2497-core.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
ltc2497.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ltc2497.h module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
max1027.c iio: adc: max1027: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
max1118.c iio: adc: Use aligned_s64 instead of open coding alignment. 2024-12-28 14:28:15 +00:00
max1241.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max1363.c iio: adc: max1363: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:02:06 +00:00
max9611.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
max11100.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
max11205.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
max11410.c iio: adc: max11410: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
max34408.c iio: adc: Include cleanup.h when using guard() 2025-03-04 13:17:51 +00:00
max77541-adc.c
mcp320x.c iio: adc: mcp320x: Drop vendorless compatible strings 2024-09-03 18:49:44 +01:00
mcp3422.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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: Use aligned_s64 instead of open coding alignment. 2024-12-28 14:28:15 +00:00
men_z188_adc.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
meson_saradc.c iio: adc: meson: simplify MESON_SAR_ADC_REG11 register access 2024-12-28 14:28:16 +00:00
mp2629_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
mt6359-auxadc.c
mt6360-adc.c Linux 6.12-rc2 2024-10-12 11:43:29 +01:00
mt6370-adc.c
mt6577_auxadc.c
mxs-lradc-adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
nau7802.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
npcm_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
pac1921.c IIO: New device support, features and cleanup for the 6.15 cycle. 2025-03-14 07:15:12 +01:00
pac1934.c iio: adc: pac1934: Replace strange way of checking type of enumeration 2024-10-28 20:04:11 +00:00
palmas_gpadc.c iio: fix write_event_config signature 2024-11-03 20:33:44 +00:00
qcom-pm8xxx-xoadc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: Tidy up adc5_get_fw_data() error messages 2024-10-05 12:19:01 +01:00
qcom-spmi-iadc.c iio: adc: qcom-spmi-iadc: Fix wakeup source leaks on device unbind 2025-04-12 12:24:00 +01:00
qcom-spmi-rradc.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
qcom-spmi-vadc.c iio: adc: qcom-spmi-vadc: use scoped device_for_each_child_node() 2024-10-05 12:09:14 +01:00
qcom-vadc-common.c
rcar-gyroadc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
rn5t618-adc.c iio: adc: Constify struct iio_map 2024-09-30 09:21:02 +01:00
rockchip_saradc.c iio: adc: rockchip: Fix clock initialization sequence 2025-04-07 19:32:49 +01:00
rtq6056.c iio: adc: rtq6056: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:02:16 +00:00
rzg2l_adc.c iio: adc: rzg2l_adc: Add support for Renesas RZ/G3S 2024-12-11 19:20:47 +00:00
sc27xx_adc.c
sd_adc_modulator.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
sophgo-cv1800b-adc.c iio: adc: sophgo-saradc: Add driver for Sophgo CV1800B SARADC 2024-09-03 20:05:03 +01:00
spear_adc.c
stm32-adc-core.c iio: adc: stm32: Drop unnecessary DT property presence check 2025-02-03 19:15:37 +00:00
stm32-adc-core.h
stm32-adc.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
stm32-dfsdm-adc.c iio: adc: stm32-dfsdm: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:48 +00:00
stm32-dfsdm-core.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
stm32-dfsdm.h
stmpe-adc.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
sun4i-gpadc-iio.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
sun20i-gpadc-iio.c iio: adc: sun20i-gpadc: use scoped device_for_each_child_node() 2024-10-05 12:09:14 +01:00
ti-adc081c.c iio: adc: Use aligned_s64 instead of open coding alignment. 2024-12-28 14:28:15 +00:00
ti-adc084s021.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ti-adc108s102.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ti-adc128s052.c
ti-adc161s626.c iio: adc: ti-adc161s626: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:02:16 +00:00
ti-adc0832.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-adc12138.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads124s08.c iio: adc: ti-ads124s08: Switch to fsleep() 2025-02-03 19:15:38 +00:00
ti-ads131e08.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ti-ads1015.c iio: adc: Use aligned_s64 instead of open coding alignment. 2024-12-28 14:28:15 +00:00
ti-ads1100.c
ti-ads1119.c iio: adc: ti-ads1119: Stop using iio_device_claim_direct_scoped() 2025-02-17 13:02:16 +00:00
ti-ads1298.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ti-ads7138.c iio: adc: Add driver for ADS7128 / ADS7138 2025-02-16 15:52:22 +00:00
ti-ads7924.c iio: adc: ti-ads7924 Drop unnecessary function parameters 2025-03-11 19:09:17 +00:00
ti-ads7950.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads8344.c iio: adc: standardize on formatting for id match tables 2024-09-05 19:27:13 +01:00
ti-ads8688.c iio: adc: ti-ads8688: fix information leak in triggered buffer 2024-12-07 17:23:41 +00:00
ti-lmp92064.c iio: adc: ti-lmp92064: Switch timestamp type from int64_t __aligned(8) to aligned_s64 2024-12-28 14:28:15 +00:00
ti-tlc4541.c iio: adc: Switch to sparse friendly iio_device_claim/release_direct() 2025-03-04 13:17:50 +00:00
ti-tsc2046.c iio: Switch to use hrtimer_setup() 2025-02-18 11:19:05 +01:00
ti_am335x_adc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
twl4030-madc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
twl6030-gpadc.c iio: Switch back to struct platform_driver::remove() 2024-10-10 19:31:50 +01:00
vf610_adc.c iio: adc: Use aligned_s64 instead of open coding alignment. 2024-12-28 14:28:15 +00:00
viperboard_adc.c
xilinx-ams.c iio: fix write_event_config signature 2024-11-03 20:33:44 +00:00
xilinx-xadc-core.c iio: adc: xilinx-xadc-core: use devm_kmemdup_array() 2025-02-24 12:08:52 +02:00
xilinx-xadc-events.c iio: fix write_event_config signature 2024-11-03 20:33:44 +00:00
xilinx-xadc.h iio: fix write_event_config signature 2024-11-03 20:33:44 +00:00