1*9525c66dSAlisa-Dariana Roman.. SPDX-License-Identifier: GPL-2.0-only 2*9525c66dSAlisa-Dariana Roman 3*9525c66dSAlisa-Dariana Roman============= 4*9525c66dSAlisa-Dariana RomanAD7191 driver 5*9525c66dSAlisa-Dariana Roman============= 6*9525c66dSAlisa-Dariana Roman 7*9525c66dSAlisa-Dariana RomanDevice driver for Analog Devices AD7191 ADC. 8*9525c66dSAlisa-Dariana Roman 9*9525c66dSAlisa-Dariana RomanSupported devices 10*9525c66dSAlisa-Dariana Roman================= 11*9525c66dSAlisa-Dariana Roman 12*9525c66dSAlisa-Dariana Roman* `AD7191 <https://www.analog.com/AD7191>`_ 13*9525c66dSAlisa-Dariana Roman 14*9525c66dSAlisa-Dariana RomanThe AD7191 is a high precision, low noise, 24-bit Σ-Δ ADC with integrated PGA. 15*9525c66dSAlisa-Dariana RomanIt features two differential input channels, an internal temperature sensor, and 16*9525c66dSAlisa-Dariana Romanconfigurable sampling rates. 17*9525c66dSAlisa-Dariana Roman 18*9525c66dSAlisa-Dariana RomanDevicetree 19*9525c66dSAlisa-Dariana Roman========== 20*9525c66dSAlisa-Dariana Roman 21*9525c66dSAlisa-Dariana RomanPin Configuration 22*9525c66dSAlisa-Dariana Roman----------------- 23*9525c66dSAlisa-Dariana Roman 24*9525c66dSAlisa-Dariana RomanThe driver supports both pin-strapped and GPIO-controlled configurations for ODR 25*9525c66dSAlisa-Dariana Roman(Output Data Rate) and PGA (Programmable Gain Amplifier) settings. These 26*9525c66dSAlisa-Dariana Romanconfigurations are mutually exclusive - you must use either pin-strapped or GPIO 27*9525c66dSAlisa-Dariana Romancontrol for each setting, not both. 28*9525c66dSAlisa-Dariana Roman 29*9525c66dSAlisa-Dariana RomanODR Configuration 30*9525c66dSAlisa-Dariana Roman^^^^^^^^^^^^^^^^^ 31*9525c66dSAlisa-Dariana Roman 32*9525c66dSAlisa-Dariana RomanThe ODR can be configured either through GPIO control or pin-strapping: 33*9525c66dSAlisa-Dariana Roman 34*9525c66dSAlisa-Dariana Roman- When using GPIO control, specify the "odr-gpios" property in the device tree 35*9525c66dSAlisa-Dariana Roman- For pin-strapped configuration, specify the "adi,odr-value" property in the 36*9525c66dSAlisa-Dariana Roman device tree 37*9525c66dSAlisa-Dariana Roman 38*9525c66dSAlisa-Dariana RomanAvailable ODR settings: 39*9525c66dSAlisa-Dariana Roman 40*9525c66dSAlisa-Dariana Roman - 120 Hz (ODR1=0, ODR2=0) 41*9525c66dSAlisa-Dariana Roman - 60 Hz (ODR1=0, ODR2=1) 42*9525c66dSAlisa-Dariana Roman - 50 Hz (ODR1=1, ODR2=0) 43*9525c66dSAlisa-Dariana Roman - 10 Hz (ODR1=1, ODR2=1) 44*9525c66dSAlisa-Dariana Roman 45*9525c66dSAlisa-Dariana RomanPGA Configuration 46*9525c66dSAlisa-Dariana Roman^^^^^^^^^^^^^^^^^ 47*9525c66dSAlisa-Dariana Roman 48*9525c66dSAlisa-Dariana RomanThe PGA can be configured either through GPIO control or pin-strapping: 49*9525c66dSAlisa-Dariana Roman 50*9525c66dSAlisa-Dariana Roman- When using GPIO control, specify the "pga-gpios" property in the device tree 51*9525c66dSAlisa-Dariana Roman- For pin-strapped configuration, specify the "adi,pga-value" property in the 52*9525c66dSAlisa-Dariana Roman device tree 53*9525c66dSAlisa-Dariana Roman 54*9525c66dSAlisa-Dariana RomanAvailable PGA gain settings: 55*9525c66dSAlisa-Dariana Roman 56*9525c66dSAlisa-Dariana Roman - 1x (PGA1=0, PGA2=0) 57*9525c66dSAlisa-Dariana Roman - 8x (PGA1=0, PGA2=1) 58*9525c66dSAlisa-Dariana Roman - 64x (PGA1=1, PGA2=0) 59*9525c66dSAlisa-Dariana Roman - 128x (PGA1=1, PGA2=1) 60*9525c66dSAlisa-Dariana Roman 61*9525c66dSAlisa-Dariana RomanClock Configuration 62*9525c66dSAlisa-Dariana Roman------------------- 63*9525c66dSAlisa-Dariana Roman 64*9525c66dSAlisa-Dariana RomanThe AD7191 supports both internal and external clock sources: 65*9525c66dSAlisa-Dariana Roman 66*9525c66dSAlisa-Dariana Roman- When CLKSEL pin is tied LOW: Uses internal 4.92MHz clock (no clock property 67*9525c66dSAlisa-Dariana Roman needed) 68*9525c66dSAlisa-Dariana Roman- When CLKSEL pin is tied HIGH: Requires external clock source 69*9525c66dSAlisa-Dariana Roman - Can be a crystal between MCLK1 and MCLK2 pins 70*9525c66dSAlisa-Dariana Roman - Or a CMOS-compatible clock driving MCLK2 pin 71*9525c66dSAlisa-Dariana Roman - Must specify the "clocks" property in device tree when using external clock 72*9525c66dSAlisa-Dariana Roman 73*9525c66dSAlisa-Dariana RomanSPI Interface Requirements 74*9525c66dSAlisa-Dariana Roman-------------------------- 75*9525c66dSAlisa-Dariana Roman 76*9525c66dSAlisa-Dariana RomanThe AD7191 has specific SPI interface requirements: 77*9525c66dSAlisa-Dariana Roman 78*9525c66dSAlisa-Dariana Roman- The DOUT/RDY output is dual-purpose and requires SPI bus locking 79*9525c66dSAlisa-Dariana Roman- DOUT/RDY must be connected to an interrupt-capable GPIO 80*9525c66dSAlisa-Dariana Roman- The SPI controller's chip select must be connected to the PDOWN pin of the ADC 81*9525c66dSAlisa-Dariana Roman- When CS (PDOWN) is high, the device powers down and resets internal circuitry 82*9525c66dSAlisa-Dariana Roman- SPI mode 3 operation (CPOL=1, CPHA=1) is required 83*9525c66dSAlisa-Dariana Roman 84*9525c66dSAlisa-Dariana RomanPower Supply Requirements 85*9525c66dSAlisa-Dariana Roman------------------------- 86*9525c66dSAlisa-Dariana Roman 87*9525c66dSAlisa-Dariana RomanThe device requires the following power supplies: 88*9525c66dSAlisa-Dariana Roman 89*9525c66dSAlisa-Dariana Roman- AVdd: Analog power supply 90*9525c66dSAlisa-Dariana Roman- DVdd: Digital power supply 91*9525c66dSAlisa-Dariana Roman- Vref: Reference voltage supply (external) 92*9525c66dSAlisa-Dariana Roman 93*9525c66dSAlisa-Dariana RomanAll power supplies must be specified in the device tree. 94*9525c66dSAlisa-Dariana Roman 95*9525c66dSAlisa-Dariana RomanChannel Configuration 96*9525c66dSAlisa-Dariana Roman===================== 97*9525c66dSAlisa-Dariana Roman 98*9525c66dSAlisa-Dariana RomanThe device provides three channels: 99*9525c66dSAlisa-Dariana Roman 100*9525c66dSAlisa-Dariana Roman1. Temperature Sensor 101*9525c66dSAlisa-Dariana Roman - 24-bit unsigned 102*9525c66dSAlisa-Dariana Roman - Internal temperature measurement 103*9525c66dSAlisa-Dariana Roman - Temperature in millidegrees Celsius 104*9525c66dSAlisa-Dariana Roman 105*9525c66dSAlisa-Dariana Roman2. Differential Input (AIN1-AIN2) 106*9525c66dSAlisa-Dariana Roman - 24-bit unsigned 107*9525c66dSAlisa-Dariana Roman - Differential voltage measurement 108*9525c66dSAlisa-Dariana Roman - Configurable gain via PGA 109*9525c66dSAlisa-Dariana Roman 110*9525c66dSAlisa-Dariana Roman3. Differential Input (AIN3-AIN4) 111*9525c66dSAlisa-Dariana Roman - 24-bit unsigned 112*9525c66dSAlisa-Dariana Roman - Differential voltage measurement 113*9525c66dSAlisa-Dariana Roman - Configurable gain via PGA 114*9525c66dSAlisa-Dariana Roman 115*9525c66dSAlisa-Dariana RomanBuffer Support 116*9525c66dSAlisa-Dariana Roman============== 117*9525c66dSAlisa-Dariana Roman 118*9525c66dSAlisa-Dariana RomanThis driver supports IIO triggered buffers. See Documentation/iio/iio_devbuf.rst 119*9525c66dSAlisa-Dariana Romanfor more information about IIO triggered buffers. 120