Document wiring configurations for the AD4000 series of ADCs.
Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com>
---
Documentation/iio/ad4000.rst | 131 +++++++++++++++++++++++++++++++++++
Documentation/iio/index.rst | 1 +
MAINTAINERS | 1 +
3 files changed, 133 insertions(+)
create mode 100644 Documentation/iio/ad4000.rst
diff --git a/Documentation/iio/ad4000.rst b/Documentation/iio/ad4000.rst
new file mode 100644
index 000000000000..de8fd3ae6e62
--- /dev/null
+++ b/Documentation/iio/ad4000.rst
@@ -0,0 +1,131 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+=============
+AD4000 driver
+=============
+
+Device driver for Analog Devices Inc. AD4000 series of ADCs.
+
+Supported devices
+=================
+
+* `AD4000 <https://www.analog.com/AD4000>`_
+* `AD4001 <https://www.analog.com/AD4001>`_
+* `AD4002 <https://www.analog.com/AD4002>`_
+* `AD4003 <https://www.analog.com/AD4003>`_
+* `AD4004 <https://www.analog.com/AD4004>`_
+* `AD4005 <https://www.analog.com/AD4005>`_
+* `AD4006 <https://www.analog.com/AD4006>`_
+* `AD4007 <https://www.analog.com/AD4007>`_
+* `AD4008 <https://www.analog.com/AD4008>`_
+* `AD4010 <https://www.analog.com/AD4010>`_
+* `AD4011 <https://www.analog.com/AD4011>`_
+* `AD4020 <https://www.analog.com/AD4020>`_
+* `AD4021 <https://www.analog.com/AD4021>`_
+* `AD4022 <https://www.analog.com/AD4022>`_
+* `ADAQ4001 <https://www.analog.com/ADAQ4001>`_
+* `ADAQ4003 <https://www.analog.com/ADAQ4003>`_
+
+Wiring connections
+------------------
+
+Devices of the AD4000 series can be connected to the SPI host controller in a
+few different modes.
+
+CS mode, 3-wire turbo mode
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Datasheet "3-wire" mode is what most resembles standard SPI connection which,
+for these devices, comprises of connecting the controller CS line to device CNV
+pin and other SPI lines as usual. This configuration is (misleadingly) called
+"CS Mode, 3-Wire Turbo Mode" connection in datasheets.
+NOTE: The datasheet definition of 3-wire mode for the AD4000 series is NOT the
+same of standard spi-3wire mode.
+This is the only connection mode that allows configuration register access but
+it requires the SPI controller to support the ``SPI_MOSI_IDLE_HIGH`` feature.
+
+Omit the ``adi,sdi-pin`` property in device tree to select this mode.
+
+::
+
+ +-------------+
+ + ----------------------------------| SDO |
+ | | |
+ | +-------------------| CS |
+ | v | |
+ | +--------------------+ | HOST |
+ | | CNV | | |
+ +--->| SDI AD4000 SDO |-------->| SDI |
+ | SCK | | |
+ +--------------------+ | |
+ ^ | |
+ +--------------------| SCLK |
+ +-------------+
+
+CS mode, 3-wire, without busy indicator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Another wiring configuration supported as "3-wire" mode has the SDI pin
+hard-wired to digital input/output interface supply (VIO). In this setup, the
+controller is not required to support ``SPI_MOSI_IDLE_HIGH`` but register access
+is not possible. This connection mode saves one wire and works with any SPI
+controller.
+
+Set the ``adi,sdi-pin`` device tree property to ``"high"`` to select this mode.
+
+::
+
+ +-------------+
+ +--------------------| CS |
+ v | |
+ VIO +--------------------+ | HOST |
+ | | CNV | | |
+ +--->| SDI AD4000 SDO |-------->| SDI |
+ | SCK | | |
+ +--------------------+ | |
+ ^ | |
+ +--------------------| SCLK |
+ +-------------+
+
+Alternatively, a GPIO may be connected to the device CNV pin. This is similar to
+the previous wiring configuration but saves the use of a CS line.
+
+::
+
+ +-------------+
+ +--------------------| GPIO |
+ v | |
+ VIO +--------------------+ | HOST |
+ | | CNV | | |
+ +--->| SDI AD4000 SDO |-------->| SDI |
+ | SCK | | |
+ +--------------------+ | |
+ ^ | |
+ +--------------------| SCLK |
+ +-------------+
+
+CS mode, 4-wire without busy indicator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In datasheet "4-wire" mode, the controller CS line is connected to the ADC SDI
+pin and a GPIO is connected to the ADC CNV pin. This connection mode may better
+suit scenarios where multiple ADCs can share one CNV trigger.
+
+Set ``adi,sdi-pin`` to ``"cs"`` to select this mode.
+
+
+::
+
+ +-------------+
+ + ----------------------------------| CS |
+ | | |
+ | +-------------------| GPIO |
+ | v | |
+ | +--------------------+ | HOST |
+ | | CNV | | |
+ +--->| SDI AD4000 SDO |-------->| SDI |
+ | SCK | | |
+ +--------------------+ | |
+ ^ | |
+ +--------------------| SCLK |
+ +-------------+
diff --git a/Documentation/iio/index.rst b/Documentation/iio/index.rst
index 4c13bfa2865c..5df157a44923 100644
--- a/Documentation/iio/index.rst
+++ b/Documentation/iio/index.rst
@@ -17,6 +17,7 @@ Industrial I/O Kernel Drivers
.. toctree::
:maxdepth: 1
+ ad4000
ad7944
adis16475
adis16480
diff --git a/MAINTAINERS b/MAINTAINERS
index f4ffedada8ea..a03b3db9157c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1205,6 +1205,7 @@ L: linux-iio@vger.kernel.org
S: Supported
W: https://ez.analog.com/linux-software-drivers
F: Documentation/devicetree/bindings/iio/adc/adi,ad4000.yaml
+F: Documentation/iio/ad4000.rst
F: drivers/iio/adc/ad4000.c
ANALOG DEVICES INC AD4130 DRIVER
--
2.43.0
On 6/25/24 4:55 PM, Marcelo Schmitt wrote: > Document wiring configurations for the AD4000 series of ADCs. > > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com> > --- > Documentation/iio/ad4000.rst | 131 +++++++++++++++++++++++++++++++++++ > Documentation/iio/index.rst | 1 + > MAINTAINERS | 1 + > 3 files changed, 133 insertions(+) > create mode 100644 Documentation/iio/ad4000.rst > > diff --git a/Documentation/iio/ad4000.rst b/Documentation/iio/ad4000.rst > new file mode 100644 > index 000000000000..de8fd3ae6e62 > --- /dev/null > +++ b/Documentation/iio/ad4000.rst > @@ -0,0 +1,131 @@ > +.. SPDX-License-Identifier: GPL-2.0-only > + > +============= > +AD4000 driver > +============= > + > +Device driver for Analog Devices Inc. AD4000 series of ADCs. > + > +Supported devices > +================= > + > +* `AD4000 <https://www.analog.com/AD4000>`_ > +* `AD4001 <https://www.analog.com/AD4001>`_ > +* `AD4002 <https://www.analog.com/AD4002>`_ > +* `AD4003 <https://www.analog.com/AD4003>`_ > +* `AD4004 <https://www.analog.com/AD4004>`_ > +* `AD4005 <https://www.analog.com/AD4005>`_ > +* `AD4006 <https://www.analog.com/AD4006>`_ > +* `AD4007 <https://www.analog.com/AD4007>`_ > +* `AD4008 <https://www.analog.com/AD4008>`_ > +* `AD4010 <https://www.analog.com/AD4010>`_ > +* `AD4011 <https://www.analog.com/AD4011>`_ > +* `AD4020 <https://www.analog.com/AD4020>`_ > +* `AD4021 <https://www.analog.com/AD4021>`_ > +* `AD4022 <https://www.analog.com/AD4022>`_ > +* `ADAQ4001 <https://www.analog.com/ADAQ4001>`_ > +* `ADAQ4003 <https://www.analog.com/ADAQ4003>`_ > + > +Wiring connections > +------------------ > + > +Devices of the AD4000 series can be connected to the SPI host controller in a > +few different modes. > + > +CS mode, 3-wire turbo mode > +^^^^^^^^^^^^^^^^^^^^^^^^^^ The datasheet also has the same diagram in _Figure 55. CS Mode, 4-Wire Turbo Mode Connection Diagram_. So maybe we should call this "register support mode" or something like that instead of mentioning 3 or 4-wire? > + > +Datasheet "3-wire" mode is what most resembles standard SPI connection which, > +for these devices, comprises of connecting the controller CS line to device CNV > +pin and other SPI lines as usual. This configuration is (misleadingly) called > +"CS Mode, 3-Wire Turbo Mode" connection in datasheets. > +NOTE: The datasheet definition of 3-wire mode for the AD4000 series is NOT the > +same of standard spi-3wire mode. > +This is the only connection mode that allows configuration register access but > +it requires the SPI controller to support the ``SPI_MOSI_IDLE_HIGH`` feature. > + > +Omit the ``adi,sdi-pin`` property in device tree to select this mode. > + > +:: > + > + +-------------+ > + + ----------------------------------| SDO | > + | | | > + | +-------------------| CS | > + | v | | > + | +--------------------+ | HOST | > + | | CNV | | | > + +--->| SDI AD4000 SDO |-------->| SDI | > + | SCK | | | > + +--------------------+ | | > + ^ | | > + +--------------------| SCLK | > + +-------------+ > + I think the rest of the explanations are good.
On 06/26, David Lechner wrote: > On 6/25/24 4:55 PM, Marcelo Schmitt wrote: > > Document wiring configurations for the AD4000 series of ADCs. > > > > Signed-off-by: Marcelo Schmitt <marcelo.schmitt@analog.com> > > --- > > Documentation/iio/ad4000.rst | 131 +++++++++++++++++++++++++++++++++++ > > Documentation/iio/index.rst | 1 + > > MAINTAINERS | 1 + ... > > +Wiring connections > > +------------------ > > + > > +Devices of the AD4000 series can be connected to the SPI host controller in a > > +few different modes. > > + > > +CS mode, 3-wire turbo mode > > +^^^^^^^^^^^^^^^^^^^^^^^^^^ > > The datasheet also has the same diagram in _Figure 55. CS Mode, 4-Wire Turbo Mode > Connection Diagram_. So maybe we should call this "register support mode" or > something like that instead of mentioning 3 or 4-wire? > Humm, ADAQ4003 datasheet has the same figure for CS Mode, 4-wire turbo mode and CS mode, 4-wire with busy indicator although other datasheets have MOSI to SDI in 4-wire turbo as you said. The register read/write functionality sections say CNV must be brought low to access the configuration register. I'll leave it as it is for now as I have not tested reg access with CNV high. We can update this in the future if find out reg access to work in 4-wire mode. > > + > > +Datasheet "3-wire" mode is what most resembles standard SPI connection which, > > +for these devices, comprises of connecting the controller CS line to device CNV > > +pin and other SPI lines as usual. This configuration is (misleadingly) called > > +"CS Mode, 3-Wire Turbo Mode" connection in datasheets. > > +NOTE: The datasheet definition of 3-wire mode for the AD4000 series is NOT the > > +same of standard spi-3wire mode. > > +This is the only connection mode that allows configuration register access but > > +it requires the SPI controller to support the ``SPI_MOSI_IDLE_HIGH`` feature. > > + > > +Omit the ``adi,sdi-pin`` property in device tree to select this mode. > > + > > +:: > > + > > + +-------------+ > > + + ----------------------------------| SDO | > > + | | | > > + | +-------------------| CS | > > + | v | | > > + | +--------------------+ | HOST | > > + | | CNV | | | > > + +--->| SDI AD4000 SDO |-------->| SDI | > > + | SCK | | | > > + +--------------------+ | | > > + ^ | | > > + +--------------------| SCLK | > > + +-------------+ > > + > > I think the rest of the explanations are good. >
© 2016 - 2025 Red Hat, Inc.