linux/drivers/iio/adc
Nuno Sa fd1957c706 iio: adc: ad9467: fix reset gpio handling
[ Upstream commit 76f028539c ]

The reset gpio was being handled with inverted polarity. This means that
as far as gpiolib is concerned we were actually leaving the pin asserted
(in theory, this would mean reset). However, inverting the polarity in
devicetree made things work. Fix it by doing it the proper way and how
gpiolib expects it to be done.

While at it, moved the handling to it's own function and dropped
'reset_gpio' from the 'struct ad9467_state' as we only need it during
probe. On top of that, refactored things so that we now request the gpio
asserted (i.e in reset) and then de-assert it. Also note that we now use
gpiod_set_value_cansleep() instead of gpiod_direction_output() as we
already request the pin as output.

Fixes: ad67971202 ("iio: adc: ad9467: add support AD9467 ADC")
Reviewed-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Nuno Sa <nuno.sa@analog.com>
Link: https://lore.kernel.org/r/20231207-iio-backend-prep-v2-1-a4a33bc4d70e@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 14:52:51 -08:00
..
ab8500-gpadc.c First set of IIO and counter fixes for the 5.12 cycle 2021-03-15 16:34:39 +01:00
ad799x.c iio:adc: Drop false comment about lack of timestamp control 2021-04-07 08:36:38 +01:00
ad7091r5.c
ad7091r-base.c iio: adc: ad7091r: Pass iio_dev to event handler 2024-01-25 14:52:49 -08:00
ad7091r-base.h
ad7124.c iio: adc: ad7124: Remove shift from scan_type 2022-06-14 18:36:03 +02:00
ad7192.c iio: adc: ad7192: Correct reference voltage 2023-10-25 11:58:58 +02:00
ad7266.c
ad7291.c iio: adc: ad7291: convert to device tree 2020-09-29 17:27:05 +01:00
ad7292.c iio: ad7292: Prevent regulator double disable 2022-09-08 12:28:04 +02:00
ad7298.c iio: adc: ad7298: Enable on Intel Galileo Gen 1 2021-05-17 13:49:05 +01:00
ad7476.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ad7606_par.c
ad7606_spi.c
ad7606.c iio: core: move @id from struct iio_dev to struct iio_dev_opaque 2021-05-17 13:49:13 +01:00
ad7606.h
ad7766.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ad7768-1.c iio: ad7768-1: Call iio_trigger_notify_done() on error 2021-12-14 10:57:21 +01:00
ad7780.c iio: adc: ad7780: Fix IRQ flag 2021-09-14 12:02:12 +01:00
ad7791.c iio: adc: ad7791: fix IRQ flags 2023-04-13 16:48:23 +02:00
ad7793.c iio: adc: ad7793: Fix IRQ flag 2021-09-14 12:02:12 +01:00
ad7887.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ad7923.c iio: adc: ad7923: fix channel readings for some variants 2022-10-26 12:34:19 +02:00
ad7949.c iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask 2021-02-12 19:04:32 +00:00
ad9467.c iio: adc: ad9467: fix reset gpio handling 2024-01-25 14:52:51 -08:00
ad_sigma_delta.c iio: adc: ad_sigma_delta: Fix IRQ issue by setting IRQ_DISABLE_UNLAZY flag 2023-06-09 10:32:28 +02:00
adi-axi-adc.c iio: adc: adi-axi-adc: Fix refcount leak in adi_axi_adc_attach_client 2022-06-29 09:03:29 +02:00
aspeed_adc.c iio: adc: aspeed: set driver data when adc probe. 2021-09-14 12:02:11 +01:00
at91_adc.c iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger() 2022-11-26 09:24:46 +01:00
at91-sama5d2_adc.c iio: core: Hide read accesses to iio_dev->currentmode 2023-10-25 11:58:58 +02:00
axp20x_adc.c iio: adc: axp20x_adc: fix charging current reporting on AXP22x 2021-12-14 10:57:21 +01:00
axp288_adc.c iio: adc: axp288: Override TS pin bias current for some models 2022-06-29 09:03:29 +02:00
bcm_iproc_adc.c iio:adc:bcm_iproc: Drop of_match_ptr protection and switch to mod_devicetable.h 2020-09-03 19:40:45 +01:00
berlin2-adc.c iio: adc: berlin2-adc: Add missing of_node_put() in error path 2023-02-09 11:26:42 +01:00
cc10001_adc.c
cpcap-adc.c iio: adc: cpcap-adc: kernel-doc fix - that should be _ in structure name 2021-03-25 19:13:51 +00:00
da9150-gpadc.c
dln2-adc.c iio: dln2: Check return value of devm_iio_trigger_register() 2021-12-14 10:57:21 +01:00
envelope-detector.c iio: adc: envelope-detector: Simplify with dev_err_probe() 2020-09-03 19:40:49 +01:00
ep93xx_adc.c iio: ep93xx: Prepare clock before using it 2021-08-08 14:57:19 +01:00
exynos_adc.c iio: exynos-adc: request second interupt only when touchscreen mode is used 2023-11-08 17:26:40 +01:00
fsl-imx25-gcq.c iio: adc: fsl-imx25-gcq: adjust irq check to match docs and simplify code 2021-08-08 14:52:23 +01:00
hi8435.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
hx711.c iio: adc: hx711: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-06-14 11:42:41 +01:00
imx7d_adc.c
ina2xx-adc.c iio: adc: ina2xx: avoid NULL pointer dereference on OF device match 2023-08-16 18:21:59 +02:00
ingenic-adc.c iio/adc: ingenic: add JZ4760B support to the sadc driver 2021-07-31 18:14:53 +01:00
intel_mrfld_adc.c
Kconfig iio: stx104: Move to addac subdirectory 2023-08-26 14:23:27 +02:00
lp8788_adc.c
lpc18xx_adc.c
lpc32xx_adc.c iio:adc:lpc32xx: Drop of_match_ptr protection 2020-07-07 20:24:08 +01:00
ltc2471.c
ltc2485.c
ltc2496.c iio:adc:ltc2496: Drop of_match_ptr and use mod_devicetable.h 2020-07-07 20:24:08 +01:00
ltc2497-core.c iio: adc: ltc2497: Simplify with dev_err_probe() 2020-09-03 19:40:49 +01:00
ltc2497.c iio: ltc2497: Fix reading conversion results 2022-10-26 12:34:19 +02:00
ltc2497.h
Makefile iio: stx104: Move to addac subdirectory 2023-08-26 14:23:27 +02:00
max1027.c iio: adc: max1027: Fix the number of max1X31 channels 2021-09-14 12:02:10 +01:00
max1118.c iio: adc: max1118: Avoid jumping back and forth between spi and iio structures 2021-06-03 18:24:14 +01:00
max1241.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
max1363.c iio: adc: max1363: Fix kerneldoc attribute formatting for 'lock' 2020-07-20 09:03:27 +01:00
max9611.c iio: adc: max9611: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-20 09:03:27 +01:00
max11100.c iio: adc: max11100: Use devm_ functions for rest of probe() 2021-06-03 18:24:14 +01:00
mcp320x.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
mcp3422.c iio: adc: mcp3422: fix locking on error path 2020-09-01 16:08:07 +02:00
mcp3911.c iio: adc: mcp3911: use correct formula for AD conversion 2022-09-08 12:28:04 +02:00
men_z188_adc.c iio: adc: men_z188_adc: Fix a resource leak in an error handling path 2022-03-02 11:48:03 +01:00
meson_saradc.c meson saradc: fix clock divider mask length 2023-07-23 13:47:54 +02:00
mp2629_adc.c iio: adc: mp2629: fix potential array out of bound access 2022-11-26 09:24:46 +01:00
mt6360-adc.c iio: adc: mt6360: Drop duplicate setting of iio_dev.dev.parent 2021-05-17 13:49:12 +01:00
mt6577_auxadc.c iio: mtk-auxadc: fix case IIO_CHAN_INFO_PROCESSED 2021-09-26 12:30:09 +01:00
mxs-lradc-adc.c iio: adc: mxs-lradc: fix the order of two cleanup operations 2023-06-09 10:32:27 +02:00
nau7802.c iio:adc:nau7802: Use IRQF_NO_AUTOEN instead of request then disable 2021-04-07 08:36:39 +01:00
npcm_adc.c iio: adc: npcm_adc: Replace indio_dev->mlock with own device lock 2021-03-25 19:13:49 +00:00
palmas_gpadc.c iio: adc: palmas_gpadc: fix NULL dereference on rmmod 2023-05-11 23:00:15 +09:00
qcom-pm8xxx-xoadc.c iio: adc: move qcom-vadc-common.h to include dir 2021-01-16 18:20:56 +00:00
qcom-spmi-adc5.c iio: adc: qcom-spmi-adc5: use of_device_get_match_data 2021-01-16 18:23:36 +00:00
qcom-spmi-iadc.c
qcom-spmi-vadc.c First set of IIO and counter fixes for the 5.12 cycle 2021-03-15 16:34:39 +01:00
qcom-vadc-common.c thermal: qcom: add support for adc-tm5 PMIC thermal monitor 2021-02-15 21:28:53 +01:00
rcar-gyroadc.c iio: adc: rcar-gyroadc: Use pm_runtime_resume_and_get() and check in probe() 2021-05-17 13:54:26 +01:00
rn5t618-adc.c iio: adc: rn5t618: Add iio map 2021-08-13 18:38:17 +02:00
rockchip_saradc.c iio: adc: rockchip_saradc: add voltage notifier so get referenced voltage once at probe 2021-08-15 16:58:37 +01:00
rzg2l_adc.c iio: adc: rzg2l_adc: add missing fwnode_handle_put() in rzg2l_adc_parse_properties() 2022-06-29 09:03:29 +02:00
sc27xx_adc.c iio: adc: sc27xx: Fine tune the scale calibration values 2022-06-14 18:36:05 +02: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: Replace indio_dev->mlock with own device lock 2021-03-25 19:13:49 +00:00
stm32-adc-core.c iio: adc: stm32: Fix ADCs iteration in irq handler 2022-06-29 09:03:29 +02:00
stm32-adc-core.h
stm32-adc.c iio: adc: stm32: Fix IRQs on STM32F4 by removing custom spurious IRQs message 2022-06-29 09:03:29 +02:00
stm32-dfsdm-adc.c iio: adc: stm32-dfsdm: fill module aliases 2023-02-09 11:26:40 +01:00
stm32-dfsdm-core.c iio: adc: stm32-dfsdm: Use pm_runtime_resume_and_get() to replace open coding. 2021-05-17 13:54:26 +01:00
stm32-dfsdm.h ASoC: stm32: dfsdm: add actual resolution trace 2020-10-08 20:44:41 +01:00
stmpe-adc.c iio: adc: stmpe-adc: Fix wait_for_completion_timeout return value check 2022-06-14 18:36:05 +02:00
sun4i-gpadc-iio.c iio:adc:sun4i-gpadc: Use new IRQF_NO_AUTOEN flag instead of request then disable 2021-04-07 08:36:39 +01:00
ti_am335x_adc.c iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma() 2024-01-05 15:13:32 +01:00
ti-adc081c.c iio: adc: ti-adc081c: Partial revert of removal of ACPI IDs 2022-01-27 11:02:57 +01:00
ti-adc084s021.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ti-adc108s102.c iio: adc: ti-adc108s102: Use devm managed functions for all of probe() 2021-06-03 18:24:14 +01:00
ti-adc128s052.c iio: adc128s052: add proper .data members in adc128_of_match table 2022-12-31 13:14:47 +01:00
ti-adc161s626.c iio: adc: ti-adc161s626: Use devm managed functions for all of probe. 2021-06-03 18:24:14 +01:00
ti-adc0832.c iio: adc: ti-adc0832: Use devm managed functions for all of probe() 2021-06-03 18:24:14 +01:00
ti-adc12138.c iio:adc:ti-adc12138 Fix alignment issue with timestamp 2020-09-21 20:01:51 +01:00
ti-ads124s08.c iio: adc: remove unused private data assigned with spi_set_drvdata() 2021-06-13 17:00:17 +01:00
ti-ads131e08.c iio: adc: ti-ads131e08: add missing fwnode_handle_put() in ads131e08_alloc_channels() 2022-06-29 09:03:29 +02:00
ti-ads1015.c iio: adc: ads1015: Balance runtime pm + pm_runtime_resume_and_get() 2021-06-16 14:53:13 +01:00
ti-ads7950.c iio: adc: ti-ads7950: Set can_sleep flag for GPIO chip 2023-04-13 16:48:21 +02:00
ti-ads8344.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
ti-ads8688.c iio: adc: ti-ads8688: Fix alignment of buffer in iio_push_to_buffers_with_timestamp() 2021-06-14 11:42:41 +01:00
ti-tlc4541.c Replace HTTP links with HTTPS ones: drivers/iio 2020-07-13 15:05:59 +01:00
ti-tsc2046.c iio: adc: tsc2046: fix memory corruption by preventing array overflow 2022-03-02 11:48:03 +01:00
twl4030-madc.c iio: adc: twl4030-madc: Fix misnamed struct attribute 2020-07-20 09:03:14 +01:00
twl6030-gpadc.c iio:adc:twl6030: Enable measurement of VAC 2023-02-09 11:26:47 +01:00
vf610_adc.c iio: adc: vf610: Fix buffer alignment in iio_push_to_buffers_with_timestamp() 2021-05-17 13:54:29 +01:00
viperboard_adc.c
xilinx-xadc-core.c iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale 2023-11-08 17:26:40 +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-11-08 17:26:40 +01:00