1.. SPDX-License-Identifier: GPL-2.0-only 2 3============= 4AD7944 driver 5============= 6 7ADC driver for Analog Devices Inc. AD7944 and similar devices. The module name 8is ``ad7944``. 9 10 11Supported devices 12================= 13 14The following chips are supported by this driver: 15 16* `AD7944 <https://www.analog.com/AD7944>`_ 17* `AD7985 <https://www.analog.com/AD7985>`_ 18* `AD7986 <https://www.analog.com/AD7986>`_ 19 20 21Supported features 22================== 23 24SPI wiring modes 25---------------- 26 27The driver currently supports three of the many possible SPI wiring configurations. 28 29CS mode, 3-wire, without busy indicator 30^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 31 32.. code-block:: 33 34 +-------------+ 35 +--------------------| CS | 36 v | | 37 VIO +--------------------+ | HOST | 38 | | CNV | | | 39 +--->| SDI AD7944 SDO |-------->| SDI | 40 | SCK | | | 41 +--------------------+ | | 42 ^ | | 43 +--------------------| SCLK | 44 +-------------+ 45 46To select this mode in the device tree, set the ``adi,spi-mode`` property to 47``"single"`` and omit the ``cnv-gpios`` property. 48 49CS mode, 4-wire, without busy indicator 50^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 51 52.. code-block:: 53 54 +-------------+ 55 +-----------------------------------| CS | 56 | | | 57 | +--------------------| GPIO | 58 | v | | 59 | +--------------------+ | HOST | 60 | | CNV | | | 61 +--->| SDI AD7944 SDO |-------->| SDI | 62 | SCK | | | 63 +--------------------+ | | 64 ^ | | 65 +--------------------| SCLK | 66 +-------------+ 67 68To select this mode in the device tree, omit the ``adi,spi-mode`` property and 69provide the ``cnv-gpios`` property. 70 71Chain mode, without busy indicator 72^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 73 74.. code-block:: 75 76 +-------------+ 77 +-------------------------+--------------------| CS | 78 v v | | 79 +--------------------+ +--------------------+ | HOST | 80 | CNV | | CNV | | | 81 +--->| SDI AD7944 SDO |--->| SDI AD7944 SDO |-------->| SDI | 82 | | SCK | | SCK | | | 83 GND +--------------------+ +--------------------+ | | 84 ^ ^ | | 85 +-------------------------+--------------------| SCLK | 86 +-------------+ 87 88To select this mode in the device tree, set the ``adi,spi-mode`` property to 89``"chain"``, add the ``spi-cs-high`` flag, add the ``#daisy-chained-devices`` 90property, and omit the ``cnv-gpios`` property. 91 92Reference voltage 93----------------- 94 95All 3 possible reference voltage sources are supported: 96 97- Internal reference 98- External 1.2V reference and internal buffer 99- External reference 100 101The source is determined by the device tree. If ``ref-supply`` is present, then 102the external reference is used. If ``refin-supply`` is present, then the internal 103buffer is used. If neither is present, then the internal reference is used. 104 105Unimplemented features 106---------------------- 107 108- ``BUSY`` indication 109- ``TURBO`` mode 110 111 112Device attributes 113================= 114 115There are two types of ADCs in this family, pseudo-differential and fully 116differential. The channel name is different depending on the type of ADC. 117 118Pseudo-differential ADCs 119------------------------ 120 121AD7944 and AD7985 are pseudo-differential ADCs and have the following attributes: 122 123+---------------------------------------+--------------------------------------------------------------+ 124| Attribute | Description | 125+=======================================+==============================================================+ 126| ``in_voltage0_raw`` | Raw ADC voltage value (*IN+* referenced to ground sense). | 127+---------------------------------------+--------------------------------------------------------------+ 128| ``in_voltage0_scale`` | Scale factor to convert raw value to mV. | 129+---------------------------------------+--------------------------------------------------------------+ 130 131In "chain" mode, additional chips will appear as additional voltage input 132channels, e.g. ``in_voltage1_raw``. 133 134Fully-differential ADCs 135----------------------- 136 137AD7986 is a fully-differential ADC and has the following attributes: 138 139+---------------------------------------+--------------------------------------------------------------+ 140| Attribute | Description | 141+=======================================+==============================================================+ 142| ``in_voltage0-voltage1_raw`` | Raw ADC voltage value (*IN+* - *IN-*). | 143+---------------------------------------+--------------------------------------------------------------+ 144| ``in_voltage0-voltage1_scale`` | Scale factor to convert raw value to mV. | 145+---------------------------------------+--------------------------------------------------------------+ 146 147In "chain" mode, additional chips will appear as additional voltage input 148channels, e.g. ``in_voltage2-voltage3_raw``. 149 150 151Device buffers 152============== 153 154This driver supports IIO triggered buffers. 155 156See :doc:`iio_devbuf` for more information. 157