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.

This is the only wiring configuration supported when using SPI offload support.

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

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.

SPI offload supportΒΆ

To be able to achieve the maximum sample rate, the driver can be used with the AXI SPI Engine to provide SPI offload support.

When SPI offload is being used, some attributes will be different.

  • trigger directory is removed.

  • in_voltage0_sampling_frequency attribute is added for setting the sample rate.

  • in_voltage0_sampling_frequency_available attribute is added for querying the max sample rate.

  • timestamp channel is removed.

  • Buffer data format may be different compared to when offload is not used, e.g. the in_voltage0_type attribute.

If the turbo-gpios property is present in the device tree, the driver will turn on TURBO during buffered reads and turn it off otherwise.

Device buffersΒΆ

This driver supports IIO triggered buffers.

See Industrial IIO device buffers for more information.