xref: /linux/Documentation/iio/ad7191.rst (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
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