xref: /linux/Documentation/iio/ad4000.rst (revision b8fc42dc065742bc68df6a61a2aff8cbe364fa17)
1.. SPDX-License-Identifier: GPL-2.0-only
2
3=============
4AD4000 driver
5=============
6
7Device driver for Analog Devices Inc. AD4000 series of ADCs.
8
9Supported devices
10=================
11
12* `AD4000 <https://www.analog.com/AD4000>`_
13* `AD4001 <https://www.analog.com/AD4001>`_
14* `AD4002 <https://www.analog.com/AD4002>`_
15* `AD4003 <https://www.analog.com/AD4003>`_
16* `AD4004 <https://www.analog.com/AD4004>`_
17* `AD4005 <https://www.analog.com/AD4005>`_
18* `AD4006 <https://www.analog.com/AD4006>`_
19* `AD4007 <https://www.analog.com/AD4007>`_
20* `AD4008 <https://www.analog.com/AD4008>`_
21* `AD4010 <https://www.analog.com/AD4010>`_
22* `AD4011 <https://www.analog.com/AD4011>`_
23* `AD4020 <https://www.analog.com/AD4020>`_
24* `AD4021 <https://www.analog.com/AD4021>`_
25* `AD4022 <https://www.analog.com/AD4022>`_
26* `ADAQ4001 <https://www.analog.com/ADAQ4001>`_
27* `ADAQ4003 <https://www.analog.com/ADAQ4003>`_
28
29Wiring connections
30------------------
31
32Devices of the AD4000 series can be connected to the SPI host controller in a
33few different modes.
34
35CS mode, 3-wire turbo mode
36^^^^^^^^^^^^^^^^^^^^^^^^^^
37
38Datasheet "3-wire" mode is what most resembles standard SPI connection which,
39for these devices, comprises of connecting the controller CS line to device CNV
40pin and other SPI lines as usual. This configuration is (misleadingly) called
41"CS Mode, 3-Wire Turbo Mode" connection in datasheets.
42NOTE: The datasheet definition of 3-wire mode for the AD4000 series is NOT the
43same of standard spi-3wire mode.
44This is the only connection mode that allows configuration register access but
45it requires the SPI controller to support the ``SPI_MOSI_IDLE_HIGH`` feature.
46
47Omit the ``adi,sdi-pin`` property in device tree to select this mode.
48
49::
50
51                                         +-------------+
52     + ----------------------------------| SDO         |
53     |                                   |             |
54     |               +-------------------| CS          |
55     |               v                   |             |
56     |    +--------------------+         |     HOST    |
57     |    |        CNV         |         |             |
58     +--->| SDI   AD4000   SDO |-------->| SDI         |
59          |        SCK         |         |             |
60          +--------------------+         |             |
61                    ^                    |             |
62                    +--------------------| SCLK        |
63                                         +-------------+
64
65CS mode, 3-wire, without busy indicator
66^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
67
68Another wiring configuration supported as "3-wire" mode has the SDI pin
69hard-wired to digital input/output interface supply (VIO). In this setup, the
70controller is not required to support ``SPI_MOSI_IDLE_HIGH`` but register access
71is not possible. This connection mode saves one wire and works with any SPI
72controller.
73
74Set the ``adi,sdi-pin`` device tree property to ``"high"`` to select this mode.
75
76::
77
78                                         +-------------+
79                    +--------------------| CS          |
80                    v                    |             |
81    VIO   +--------------------+         |     HOST    |
82     |    |        CNV         |         |             |
83     +--->| SDI   AD4000   SDO |-------->| SDI         |
84          |        SCK         |         |             |
85          +--------------------+         |             |
86                    ^                    |             |
87                    +--------------------| SCLK        |
88                                         +-------------+
89
90Alternatively, a GPIO may be connected to the device CNV pin. This is similar to
91the previous wiring configuration but saves the use of a CS line.
92
93::
94
95                                         +-------------+
96                    +--------------------| GPIO        |
97                    v                    |             |
98    VIO   +--------------------+         |     HOST    |
99     |    |        CNV         |         |             |
100     +--->| SDI   AD4000   SDO |-------->| SDI         |
101          |        SCK         |         |             |
102          +--------------------+         |             |
103                    ^                    |             |
104                    +--------------------| SCLK        |
105                                         +-------------+
106
107CS mode, 4-wire without busy indicator
108^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
109
110In datasheet "4-wire" mode, the controller CS line is connected to the ADC SDI
111pin and a GPIO is connected to the ADC CNV pin. This connection mode may better
112suit scenarios where multiple ADCs can share one CNV trigger.
113
114Set ``adi,sdi-pin`` to ``"cs"`` to select this mode.
115
116
117::
118
119                                         +-------------+
120     + ----------------------------------| CS          |
121     |                                   |             |
122     |               +-------------------| GPIO        |
123     |               v                   |             |
124     |    +--------------------+         |     HOST    |
125     |    |        CNV         |         |             |
126     +--->| SDI   AD4000   SDO |-------->| SDI         |
127          |        SCK         |         |             |
128          +--------------------+         |             |
129                    ^                    |             |
130                    +--------------------| SCLK        |
131                                         +-------------+
132