linux/drivers/iio/adc
Lars-Peter Clausen bdc8cda1d0 iio:adc: Add Xilinx XADC driver
The Xilinx XADC is a ADC that can be found in the series 7 FPGAs from Xilinx.
The XADC has a DRP interface for communication. Currently two different
frontends for the DRP interface exist. One that is only available on the ZYNQ
family as a hardmacro in the SoC portion of the ZYNQ. The other one is available
on all series 7 platforms and is a softmacro with a AXI interface. This driver
supports both interfaces and internally has a small abstraction layer that hides
the specifics of these interfaces from the main driver logic.

The ADC has a couple of internal channels which are used for voltage and
temperature monitoring of the FPGA as well as one primary and up to 16 channels
auxiliary channels for measuring external voltages. The external auxiliary
channels can either be directly connected each to one physical pin on the FPGA
or they can make use of an external multiplexer which is responsible for
multiplexing the external signals onto one pair of physical pins.

The voltage and temperature monitoring channels also have an event capability
which allows to generate a interrupt when their value falls below or raises
above a set threshold.

Buffered sampling mode is supported by the driver, but only for AXI-XADC since
the ZYNQ XADC interface does not have capabilities for supporting buffer mode
(no end-of-conversion interrupt). If buffered mode is supported the driver will
register two triggers. One "xadc-samplerate" trigger which will generate samples
with the configured samplerate. And one "xadc-convst" trigger which will
generate one sample each time the CONVST (conversion start) signal is asserted.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
2014-03-01 21:04:29 +00:00
..
ad7266.c iio:ad7266: Mark transfer buffer as __be16 2013-12-03 20:22:27 +00:00
ad7298.c iio:ad7298: Use iio_push_to_buffers_with_timestamp() 2013-09-21 19:23:52 +01:00
ad7476.c iio:ad7476: Report scale as fractional value 2013-10-01 16:19:12 +01:00
ad7791.c iio:ad7791: Report scale as fractional value 2013-10-01 16:19:12 +01:00
ad7793.c iio: adc: ad7793: Use devm_* APIs 2013-08-03 18:40:39 +01:00
ad7887.c iio:adc:ad7887 Fix channel reported endianness from cpu to big endian 2013-12-17 20:37:14 +00:00
ad7923.c iio:ad7923: Use iio_push_to_buffers_with_timestamp() 2013-09-21 19:23:53 +01:00
ad_sigma_delta.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
at91_adc.c iio: at91: fix error return code in at91_adc_probe() 2013-11-02 12:07:54 +00:00
exynos_adc.c iio: exynos_adc: Use devm_iio_device_alloc 2013-08-03 18:40:42 +01:00
Kconfig iio:adc: Add Xilinx XADC driver 2014-03-01 21:04:29 +00:00
lp8788_adc.c iio: adc: lp8788_adc: Use devm_* APIs 2013-08-03 18:40:40 +01:00
Makefile iio:adc: Add Xilinx XADC driver 2014-03-01 21:04:29 +00:00
max1363.c iio:max1363 fix typos of int_vref_mv 2014-02-18 08:44:11 +00:00
mcp320x.c iio: adc: mcp320x: Use devm_* APIs 2013-08-03 18:40:41 +01:00
mcp3422.c Merge v3.13-rc2 into staging-next 2013-12-02 16:39:07 -08:00
nau7802.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
ti_am335x_adc.c First set of new drivers and cleanups for IIO in the 3.15 cycle. 2014-02-11 14:12:12 -08:00
ti-adc081c.c iio: adc: ti-adc081c: Include linux/of.h header 2013-10-18 20:05:56 +01:00
twl6030-gpadc.c First set of new drivers and cleanups for IIO in the 3.15 cycle. 2014-02-11 14:12:12 -08:00
vf610_adc.c iio:adc:imx: add Freescale Vybrid vf610 adc driver 2014-02-15 10:29:11 +00:00
viperboard_adc.c iio: adc: viperboard: Drop platform_set_drvdata call 2014-02-03 19:27:59 +00:00
xilinx-xadc-core.c iio:adc: Add Xilinx XADC driver 2014-03-01 21:04:29 +00:00
xilinx-xadc-events.c iio:adc: Add Xilinx XADC driver 2014-03-01 21:04:29 +00:00
xilinx-xadc.h iio:adc: Add Xilinx XADC driver 2014-03-01 21:04:29 +00:00