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:

Supported features

SPI wiring modes

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

CS mode, 3-wire, without busy indicator

                                     +-------------+
                +--------------------| 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

                                    +-------------+
+-----------------------------------| 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.

Chain mode, without busy indicator

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

To select this mode in the device tree, set the adi,spi-mode property to "chain", add the spi-cs-high flag, add the #daisy-chained-devices property, and omit 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

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.

In “chain” mode, additional chips will appear as additional voltage input channels, e.g. in_voltage1_raw.

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.

In “chain” mode, additional chips will appear as additional voltage input channels, e.g. in_voltage2-voltage3_raw.

Device buffers

This driver supports IIO triggered buffers.

See Industrial IIO device buffers for more information.