summaryrefslogtreecommitdiffstats
path: root/Documentation/iio/ad7944.rst
blob: f418ab1288ae357cd8f3ac75bc24b10c394c5fd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
.. SPDX-License-Identifier: GPL-2.0-only

=============
AD7944 driver
=============

ADC driver for Analog Devices Inc. AD7944 and similar devices. The module name
is ``ad7944``.


Supported devices
=================

The following chips are supported by this driver:

* `AD7944 <https://www.analog.com/AD7944>`_
* `AD7985 <https://www.analog.com/AD7985>`_
* `AD7986 <https://www.analog.com/AD7986>`_


Supported features
==================

SPI wiring modes
----------------

The driver currently supports two of the many possible SPI wiring configurations.

CS mode, 3-wire, without busy indicator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block::

                                         +-------------+
                    +--------------------| CS          |
                    v                    |             |
    VIO   +--------------------+         |     HOST    |
     |    |        CNV         |         |             |
     +--->| SDI   AD7944   SDO |-------->| SDI         |
          |        SCK         |         |             |
          +--------------------+         |             |
                    ^                    |             |
                    +--------------------| SCLK        |
                                         +-------------+

To select this mode in the device tree, set the ``adi,spi-mode`` property to
``"single"`` and omit the ``cnv-gpios`` property.

CS mode, 4-wire, without busy indicator
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block::

                                         +-------------+
     +-----------------------------------| CS          |
     |                                   |             |
     |              +--------------------| GPIO        |
     |              v                    |             |
     |    +--------------------+         |     HOST    |
     |    |        CNV         |         |             |
     +--->| SDI   AD7944   SDO |-------->| SDI         |
          |        SCK         |         |             |
          +--------------------+         |             |
                    ^                    |             |
                    +--------------------| SCLK        |
                                         +-------------+

To select this mode in the device tree, omit the ``adi,spi-mode`` property and
provide the ``cnv-gpios`` property.

Reference voltage
-----------------

All 3 possible reference voltage sources are supported:

- Internal reference
- External 1.2V reference and internal buffer
- External reference

The source is determined by the device tree. If ``ref-supply`` is present, then
the external reference is used. If ``refin-supply`` is present, then the internal
buffer is used. If neither is present, then the internal reference is used.

Unimplemented features
----------------------

- ``BUSY`` indication
- ``TURBO`` mode
- Daisy chain mode


Device attributes
=================

There are two types of ADCs in this family, pseudo-differential and fully
differential. The channel name is different depending on the type of ADC.

Pseudo-differential ADCs
------------------------

AD7944 and AD7985 are pseudo-differential ADCs and have the following attributes:

+---------------------------------------+--------------------------------------------------------------+
| Attribute                             | Description                                                  |
+=======================================+==============================================================+
| ``in_voltage0_raw``                   | Raw ADC voltage value (*IN+* referenced to ground sense).    |
+---------------------------------------+--------------------------------------------------------------+
| ``in_voltage0_scale``                 | Scale factor to convert raw value to mV.                     |
+---------------------------------------+--------------------------------------------------------------+

Fully-differential ADCs
-----------------------

AD7986 is a fully-differential ADC and has the following attributes:

+---------------------------------------+--------------------------------------------------------------+
| Attribute                             | Description                                                  |
+=======================================+==============================================================+
| ``in_voltage0-voltage1_raw``          | Raw ADC voltage value (*IN+* - *IN-*).                       |
+---------------------------------------+--------------------------------------------------------------+
| ``in_voltage0-voltage1_scale``        | Scale factor to convert raw value to mV.                     |
+---------------------------------------+--------------------------------------------------------------+


Device buffers
==============

This driver supports IIO triggered buffers.

See :doc:`iio_devbuf` for more information.