linux/drivers/iio/adc
Akinobu Mita a9e9c7153e iio: adc: add max1117/max1118/max1119 ADC driver
This adds max1117/max1118/max1119 8-bit, dual-channel ADC driver.

This new driver uses the zero length spi_transfers with the cs_change
flag set and/or the non-zero delay_usecs.

1. The zero length transfer with the spi_transfer.cs_change set is
required in order to select CH1.  The chip select line must be brought
high and low again without transfer.

2. The zero length transfer with the spi_transfer.delay_usecs > 0 is
required for waiting the conversion to be complete.  The conversion
begins with the falling edge of the chip select.  During the conversion
process, SCLK is ignored.

These two usages are unusual.  But the spi controller drivers that use
a default implementation of transfer_one_message() are likely to work.
(I've tested this adc driver with spi-omap2-mcspi and spi-xilinx)

On the other hand, some spi controller drivers that have their own
transfer_one_message() may not work.  But at least for the zero length
transfer with delay_usecs > 0, I'm proposing a new testcase for the
spi-loopback-test that can test whether the delay_usecs setting has
taken effect.

Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Jonathan Cameron <jic23@kernel.org>
Cc: Hartmut Knaack <knaack.h@gmx.de>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2017-04-14 15:09:06 +01:00
..
ad799x.c iio: adc: ad799x: constify attribute_group structures 2017-03-29 22:12:41 +01:00
ad7266.c iio: devm_regulator_get_optional never returns NULL 2016-09-05 21:09:38 +01:00
ad7291.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ad7298.c iio: adc: ad7298: use iio helper function to guarantee direct mode 2016-07-24 19:58:42 +01:00
ad7476.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ad7766.c iio:adc: ad7766: testing the wrong variable in probe 2016-11-12 14:35:21 +00:00
ad7791.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ad7793.c iio: adc: ad7793: use iio helper function to guarantee direct mode 2016-07-24 19:58:41 +01:00
ad7887.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ad7923.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ad_sigma_delta.c
aspeed_adc.c iio: Aspeed ADC 2017-04-01 11:53:20 +01:00
at91_adc.c iio: adc: at91: add suspend and resume callback 2016-11-05 16:33:00 +00:00
at91-sama5d2_adc.c Merge 4.6-rc7 into staging-next 2016-05-09 13:20:04 +02:00
axp288_adc.c iio: adc: axp288: Drop bogus AXP288_ADC_TS_PIN_CTRL register modifications 2017-01-10 19:54:57 +00:00
bcm_iproc_adc.c iio: Add driver for Broadcom iproc-static-adc 2016-07-03 11:32:30 +01:00
berlin2-adc.c
cc10001_adc.c iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
cpcap-adc.c iio: adc: cpcap: Add minimal support for CPCAP PMIC ADC 2017-03-30 19:25:23 +01:00
da9150-gpadc.c
envelope-detector.c iio: envelope-detector: ADC driver based on a DAC and a comparator 2016-11-13 13:07:17 +00:00
exynos_adc.c iio: adc: Remove unnecessary cast on void pointer 2017-04-02 09:46:25 +01:00
fsl-imx25-gcq.c iio: adc: imx25-gcq: Fix module autoload 2017-01-10 19:54:56 +00:00
hi8435.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
hx711.c iio: adc: hx711: constify attribute_group structures 2017-04-01 11:39:04 +01:00
imx7d_adc.c iio: adc: Remove unnecessary cast on void pointer 2017-04-02 09:46:25 +01:00
ina2xx-adc.c iio: adc: ina2xx: Add OF device ID table 2017-03-19 10:47:53 +00:00
Kconfig iio: adc: add max1117/max1118/max1119 ADC driver 2017-04-14 15:09:06 +01:00
lp8788_adc.c
lpc18xx_adc.c iio: adc: add NXP LPC18xx ADC driver 2016-03-12 18:11:48 +00:00
lpc32xx_adc.c staging:iio:adc:lpc32xx Move out of staging. 2017-02-11 11:19:25 +00:00
ltc2485.c iio: adc: ltc2485: add support for Linear Technology LTC2485 ADC 2016-08-29 16:57:40 +01:00
ltc2497.c iio:adc: Driver for Linear Technology LTC2497 ADC 2017-04-02 10:56:59 +01:00
Makefile iio: adc: add max1117/max1118/max1119 ADC driver 2017-04-14 15:09:06 +01:00
max1027.c iio: adc: Remove unnecessary cast on void pointer 2017-04-02 09:46:25 +01:00
max1118.c iio: adc: add max1117/max1118/max1119 ADC driver 2017-04-14 15:09:06 +01:00
max1363.c iio: adc: max1363: constify attribute_group structures 2017-03-29 22:10:58 +01:00
max9611.c iio: adc: Add Maxim max9611 ADC driver 2017-04-08 17:26:06 +01:00
max11100.c iio: adc: replace comma with a semicolon 2017-03-30 19:11:27 +01:00
mcp320x.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
mcp3422.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
men_z188_adc.c iio: adc: men_z188_adc: constify iio_info structures 2016-09-18 11:58:31 +01:00
meson_saradc.c iio: adc: meson-saradc: add calibration 2017-03-25 14:55:03 +00:00
mt6577_auxadc.c iio: adc: mt2701: Add Mediatek auxadc driver for mt2701. 2016-08-21 19:54:30 +01:00
mxs-lradc.c iio: mxs-lradc: disable only masked channels in mxs_lradc_hw_stop 2016-05-04 10:44:28 +01:00
nau7802.c iio: adc: Use complete() instead of complete_all() 2016-08-15 18:01:27 +01:00
palmas_gpadc.c iio: adc: palmas_gpadc: retrieve a valid iio_dev in suspend/resume 2017-01-21 14:26:03 +00:00
qcom-pm8xxx-xoadc.c iio: adc: add a driver for Qualcomm PM8xxx HK/XOADC 2017-04-08 17:42:26 +01:00
qcom-spmi-iadc.c
qcom-spmi-vadc.c iio: adc: break out common code from SPMI VADC 2017-04-08 17:40:49 +01:00
qcom-vadc-common.c iio: adc: break out common code from SPMI VADC 2017-04-08 17:40:49 +01:00
qcom-vadc-common.h iio: adc: break out common code from SPMI VADC 2017-04-08 17:40:49 +01:00
rcar-gyroadc.c iio: adc: handle unknow of_device_id data 2017-02-05 09:30:15 +00:00
rockchip_saradc.c iio: adc: Remove unnecessary cast on void pointer 2017-04-02 09:46:25 +01:00
spear_adc.c staging:iio:adc:spear Move out of staging. 2017-02-11 11:17:33 +00:00
stm32-adc-core.c iio: adc: stm32: add optional dma support 2017-01-29 12:49:17 +00:00
stm32-adc-core.h iio: adc: stm32: add optional dma support 2017-01-29 12:49:17 +00:00
stm32-adc.c iio: adc: stm32: add dt option to set resolution 2017-04-03 20:46:01 +01:00
stx104.c iio: stx104: Set parent device 2017-02-19 11:53:05 +00:00
sun4i-gpadc-iio.c iio: adc: sun4i-gpadc-iio: add support for A33 thermal sensor 2017-04-08 17:35:47 +01:00
ti_am335x_adc.c iio: adc: ti_am335x_adc: fix fifo overrun recovery 2017-03-15 19:47:23 +00:00
ti-adc081c.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ti-adc128s052.c iio: adc: add missing of_node references to iio_dev 2016-07-03 13:40:08 +01:00
ti-adc161s626.c iio: adc: ti-adc161s626: add regulator support 2016-09-27 20:33:03 +01:00
ti-adc0832.c iio: ti-adc0832: add triggered buffer support 2016-10-23 19:34:25 +01:00
ti-adc12138.c iio: adc: add ADC12130/ADC12132/ADC12138 ADC driver 2016-08-31 18:10:36 +01:00
ti-ads1015.c iio: adc: ti-ads1015: Add OF device ID table 2017-03-19 10:56:58 +00:00
ti-ads7950.c iio: adc: ti-ads7950: Change regulator matching string to "vref" 2017-01-15 13:56:08 +00:00
ti-ads8688.c iio: devm_regulator_get_optional never returns NULL 2016-09-05 21:09:38 +01:00
ti-tlc4541.c iio: adc: tlc4541: add support for TI tlc4541 adc 2017-01-22 13:21:28 +00:00
twl4030-madc.c
twl6030-gpadc.c
vf610_adc.c iio: adc: Remove unnecessary cast on void pointer 2017-04-02 09:46:25 +01:00
viperboard_adc.c
xilinx-xadc-core.c iio: adc: xilinx: Fix error handling 2017-02-25 16:39:32 +00:00
xilinx-xadc-events.c iio:core: timestamping clock selection support 2016-06-30 19:41:38 +01:00
xilinx-xadc.h