1 .. SPDX-License-Identifier: GPL-2.0-only 1 .. SPDX-License-Identifier: GPL-2.0-only 2 2 3 ============= 3 ============= 4 AD7380 driver 4 AD7380 driver 5 ============= 5 ============= 6 6 7 ADC driver for Analog Devices Inc. AD7380 and 7 ADC driver for Analog Devices Inc. AD7380 and similar devices. The module name 8 is ``ad7380``. 8 is ``ad7380``. 9 9 10 10 11 Supported devices 11 Supported devices 12 ================= 12 ================= 13 13 14 The following chips are supported by this driv 14 The following chips are supported by this driver: 15 15 16 * `AD7380 <https://www.analog.com/en/products/ 16 * `AD7380 <https://www.analog.com/en/products/ad7380.html>`_ 17 * `AD7381 <https://www.analog.com/en/products/ 17 * `AD7381 <https://www.analog.com/en/products/ad7381.html>`_ 18 * `AD7383 <https://www.analog.com/en/products/ 18 * `AD7383 <https://www.analog.com/en/products/ad7383.html>`_ 19 * `AD7384 <https://www.analog.com/en/products/ 19 * `AD7384 <https://www.analog.com/en/products/ad7384.html>`_ 20 * `AD7386 <https://www.analog.com/en/products/ 20 * `AD7386 <https://www.analog.com/en/products/ad7386.html>`_ 21 * `AD7387 <https://www.analog.com/en/products/ 21 * `AD7387 <https://www.analog.com/en/products/ad7387.html>`_ 22 * `AD7388 <https://www.analog.com/en/products/ 22 * `AD7388 <https://www.analog.com/en/products/ad7388.html>`_ 23 * `AD7380-4 <https://www.analog.com/en/product 23 * `AD7380-4 <https://www.analog.com/en/products/ad7380-4.html>`_ 24 * `AD7381-4 <https://www.analog.com/en/product 24 * `AD7381-4 <https://www.analog.com/en/products/ad7381-4.html>`_ 25 * `AD7383-4 <https://www.analog.com/en/product 25 * `AD7383-4 <https://www.analog.com/en/products/ad7383-4.html>`_ 26 * `AD7384-4 <https://www.analog.com/en/product 26 * `AD7384-4 <https://www.analog.com/en/products/ad7384-4.html>`_ 27 * `AD7386-4 <https://www.analog.com/en/product 27 * `AD7386-4 <https://www.analog.com/en/products/ad7386-4.html>`_ 28 * `AD7387-4 <https://www.analog.com/en/product 28 * `AD7387-4 <https://www.analog.com/en/products/ad7387-4.html>`_ 29 * `AD7388-4 <https://www.analog.com/en/product 29 * `AD7388-4 <https://www.analog.com/en/products/ad7388-4.html>`_ 30 30 31 31 32 Supported features 32 Supported features 33 ================== 33 ================== 34 34 35 SPI wiring modes 35 SPI wiring modes 36 ---------------- 36 ---------------- 37 37 38 ad738x ADCs can output data on several SDO lin 38 ad738x ADCs can output data on several SDO lines (1/2/4). The driver currently 39 supports only 1 SDO line. 39 supports only 1 SDO line. 40 40 41 Reference voltage 41 Reference voltage 42 ----------------- 42 ----------------- 43 43 44 ad7380-4 44 ad7380-4 45 ~~~~~~~~ 45 ~~~~~~~~ 46 46 47 ad7380-4 supports only an external reference v 47 ad7380-4 supports only an external reference voltage (2.5V to 3.3V). It must be 48 declared in the device tree as ``refin-supply` 48 declared in the device tree as ``refin-supply``. 49 49 50 All other devices from ad738x family 50 All other devices from ad738x family 51 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 52 52 53 All other devices from ad738x support 2 possib 53 All other devices from ad738x support 2 possible reference voltage sources: 54 54 55 - Internal reference (2.5V) 55 - Internal reference (2.5V) 56 - External reference (2.5V to 3.3V) 56 - External reference (2.5V to 3.3V) 57 57 58 The source is determined by the device tree. I 58 The source is determined by the device tree. If ``refio-supply`` is present, 59 then it is used as external reference, else th 59 then it is used as external reference, else the internal reference is used. 60 60 61 Oversampling and resolution boost 61 Oversampling and resolution boost 62 --------------------------------- 62 --------------------------------- 63 63 64 This family supports 2 types of oversampling: 64 This family supports 2 types of oversampling: normal average and rolling 65 average. Only normal average is supported by t 65 average. Only normal average is supported by the driver, as rolling average can 66 be achieved by processing a captured data buff 66 be achieved by processing a captured data buffer. The following ratios are 67 available: 1 (oversampling disabled)/2/4/8/16/ 67 available: 1 (oversampling disabled)/2/4/8/16/32. 68 68 69 When the on-chip oversampling function is enab 69 When the on-chip oversampling function is enabled the performance of the ADC can 70 exceed the default resolution. To accommodate 70 exceed the default resolution. To accommodate the performance boost achievable, 71 it is possible to enable an additional two bit 71 it is possible to enable an additional two bits of resolution. Because the 72 resolution boost feature can only be enabled w 72 resolution boost feature can only be enabled when oversampling is enabled and 73 oversampling is not as useful without the reso 73 oversampling is not as useful without the resolution boost, the driver 74 automatically enables the resolution boost if 74 automatically enables the resolution boost if and only if oversampling is 75 enabled. 75 enabled. 76 76 77 Since the resolution boost feature causes 16-b 77 Since the resolution boost feature causes 16-bit chips to now have 18-bit data 78 which means the storagebits has to change from 78 which means the storagebits has to change from 16 to 32 bits, we use the new 79 ext_scan_type feature to allow changing the sc 79 ext_scan_type feature to allow changing the scan_type at runtime. Unfortunately 80 libiio does not support it. So when enabling o 80 libiio does not support it. So when enabling or disabling oversampling, user 81 must restart iiod using the following command: 81 must restart iiod using the following command: 82 82 83 .. code-block:: bash 83 .. code-block:: bash 84 84 85 root:~# systemctl restart iiod 85 root:~# systemctl restart iiod 86 86 87 Channel selection and sequencer (single-end ch 87 Channel selection and sequencer (single-end chips only) 88 ---------------------------------------------- 88 ------------------------------------------------------- 89 89 90 Single-ended chips of this family (ad7386/7/8( 90 Single-ended chips of this family (ad7386/7/8(-4)) have a 2:1 multiplexer in 91 front of each ADC. They also include additiona 91 front of each ADC. They also include additional configuration registers that 92 allow for either manual selection or automatic 92 allow for either manual selection or automatic switching (sequencer mode), of 93 the multiplexer inputs. 93 the multiplexer inputs. 94 94 95 From an IIO point of view, all inputs are expo 95 From an IIO point of view, all inputs are exported, i.e ad7386/7/8 96 export 4 channels and ad7386-4/7-4/8-4 export 96 export 4 channels and ad7386-4/7-4/8-4 export 8 channels. 97 97 98 Inputs ``AinX0`` of multiplexers correspond to 98 Inputs ``AinX0`` of multiplexers correspond to the first half of IIO channels (i.e 99 0-1 or 0-3) and inputs ``AinX1`` correspond to 99 0-1 or 0-3) and inputs ``AinX1`` correspond to second half (i.e 2-3 or 4-7). 100 Example for AD7386/7/8 (2 channels parts): 100 Example for AD7386/7/8 (2 channels parts): 101 101 102 .. code-block:: 102 .. code-block:: 103 103 104 IIO | AD7386/7/8 104 IIO | AD7386/7/8 105 | +------------------ 105 | +---------------------------- 106 | | _____ 106 | | _____ ______ 107 | | | | | 107 | | | | | | 108 voltage0 | AinA0 --|--->| | | 108 voltage0 | AinA0 --|--->| | | | 109 | | | mux |----->| 109 | | | mux |----->| ADCA |--- 110 voltage2 | AinA1 --|--->| | | 110 voltage2 | AinA1 --|--->| | | | 111 | | |_____| | 111 | | |_____| |_____ | 112 | | _____ 112 | | _____ ______ 113 | | | | | 113 | | | | | | 114 voltage1 | AinB0 --|--->| | | 114 voltage1 | AinB0 --|--->| | | | 115 | | | mux |----->| 115 | | | mux |----->| ADCB |--- 116 voltage3 | AinB1 --|--->| | | 116 voltage3 | AinB1 --|--->| | | | 117 | | |_____| | 117 | | |_____| |______| 118 | | 118 | | 119 | +------------------ 119 | +---------------------------- 120 120 121 121 122 When enabling sequencer mode, the effective sa 122 When enabling sequencer mode, the effective sampling rate is divided by two. 123 123 124 Unimplemented features 124 Unimplemented features 125 ---------------------- 125 ---------------------- 126 126 127 - 2/4 SDO lines 127 - 2/4 SDO lines 128 - Rolling average oversampling 128 - Rolling average oversampling 129 - Power down mode 129 - Power down mode 130 - CRC indication 130 - CRC indication 131 - Alert 131 - Alert 132 132 133 133 134 Device buffers 134 Device buffers 135 ============== 135 ============== 136 136 137 This driver supports IIO triggered buffers. 137 This driver supports IIO triggered buffers. 138 138 139 See :doc:`iio_devbuf` for more information. 139 See :doc:`iio_devbuf` for more information.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.