| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- .. SPDX-License-Identifier: GPL-2.0-only
- =============
- AD4030 driver
- =============
- ADC driver for Analog Devices Inc. AD4030 and similar devices. The module name
- is ``ad4030``.
- Supported devices
- =================
- The following chips are supported by this driver:
- * `AD4030-24 <https://www.analog.com/AD4030-24>`_
- * `AD4032-24 <https://www.analog.com/AD4032-24>`_
- * `AD4630-16 <https://www.analog.com/AD4630-16>`_
- * `AD4630-24 <https://www.analog.com/AD4630-24>`_
- * `AD4632-16 <https://www.analog.com/AD4632-16>`_
- * `AD4632-24 <https://www.analog.com/AD4632-24>`_
- IIO channels
- ============
- Each "hardware" channel as described in the datasheet is split in 2 IIO
- channels:
- - One channel for the differential data
- - One channel for the common byte.
- The possible IIO channels depending on the numbers of "hardware" channel are:
- +------------------------------------+------------------------------------+
- | 1 channel ADC | 2 channels ADC |
- +====================================+====================================+
- | - voltage0-voltage1 (differential) | - voltage0-voltage1 (differential) |
- | - voltage2 (common-mode) | - voltage2-voltage3 (differential) |
- | | - voltage4 (common-mode) |
- | | - voltage5 (common-mode) |
- +------------------------------------+------------------------------------+
- Labels
- ------
- For ease of use, the IIO channels provide a label. For a differential channel,
- the label is ``differentialN`` where ``N`` is the "hardware" channel id. For a
- common-mode channel, the label is ``common-modeN`` where ``N`` is the
- "hardware" channel id.
- The possible labels are:
- +-----------------+-----------------+
- | 1 channel ADC | 2 channels ADC |
- +=================+=================+
- | - differential0 | - differential0 |
- | - common-mode0 | - differential1 |
- | | - common-mode0 |
- | | - common-mode1 |
- +-----------------+-----------------+
- Supported features
- ==================
- SPI wiring modes
- ----------------
- The driver currently supports the following SPI wiring configurations:
- One lane mode
- ^^^^^^^^^^^^^
- In this mode, each channel has its own SDO line to send the conversion results.
- At the moment this mode can only be used on AD4030 which has one channel so only
- one SDO line is used.
- .. code-block::
- +-------------+ +-------------+
- | ADC | | HOST |
- | | | |
- | CNV |<--------| CNV |
- | CS |<--------| CS |
- | SDI |<--------| SDO |
- | SDO0 |-------->| SDI |
- | SCLK |<--------| SCLK |
- +-------------+ +-------------+
- Interleaved mode
- ^^^^^^^^^^^^^^^^
- In this mode, both channels conversion results are bit interleaved one SDO line.
- As such the wiring is the same as `One lane mode`_.
- SPI Clock mode
- --------------
- Only the SPI clocking mode is supported.
- Output modes
- ------------
- There are more exposed IIO channels than channels as describe in the devices
- datasheet. This is due to the `Differential data + common-mode`_ encoding
- 2 types of information in one conversion result. As such a "device" channel
- provides 2 IIO channels, one for the differential data and one for the common
- byte.
- Differential data
- ^^^^^^^^^^^^^^^^^
- This mode is selected when:
- - Only differential channels are enabled in a buffered read
- - Oversampling attribute is set to 1
- Differential data + common-mode
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- This mode is selected when:
- - Differential and common-mode channels are enabled in a buffered read
- - Oversampling attribute is set to 1
- For the 24-bits chips, this mode is also available with 16-bits differential
- data but is not selectable yet.
- Averaged differential data
- ^^^^^^^^^^^^^^^^^^^^^^^^^^
- This mode is selected when:
- - Only differential channels are selected enabled in a buffered read
- - Oversampling attribute is greater than 1
- Digital Gain and Offset
- -----------------------
- Each differential data channel has a 16-bits unsigned configurable hardware
- gain applied to it. By default it's equal to 1. Note that applying gain can
- cause numerical saturation.
- Each differential data channel has a signed configurable hardware offset.
- For the ADCs ending in ``-24``, the gain is encoded on 24-bits.
- Likewise, the ADCs ending in ``-16`` have a gain encoded on 16-bits. Note that
- applying an offset can cause numerical saturation.
- The final differential data returned by the ADC is computed by first applying
- the gain, then the offset.
- The gain is controlled by the ``calibscale`` IIO attribute while the offset is
- controlled by the ``calibbias`` attribute.
- Reference voltage
- -----------------
- The chip supports an external reference voltage via the ``REF`` input or an
- internal buffered reference voltage via the ``REFIN`` input. The driver looks
- at the device tree to determine which is being used. If ``ref-supply`` is
- present, then the external reference voltage is used and the internal buffer is
- disabled. If ``refin-supply`` is present, then the internal buffered reference
- voltage is used.
- Reset
- -----
- Both hardware and software reset are supported. The driver looks first at the
- device tree to see if the ``reset-gpio`` is populated.
- If not present, the driver will fallback to a software reset by wiring to the
- device's registers.
- Unimplemented features
- ----------------------
- - ``BUSY`` indication
- - Additional wiring modes
- - Additional clock modes
- - Differential data 16-bits + common-mode for 24-bits chips
- - Overrange events
- - Test patterns
|