xref: /linux/Documentation/devicetree/bindings/iio/adc/ti,ads131m02.yaml (revision c17ee635fd3a482b2ad2bf5e269755c2eae5f25e)
1*1ca733e8SOleksij Rempel# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*1ca733e8SOleksij Rempel%YAML 1.2
3*1ca733e8SOleksij Rempel---
4*1ca733e8SOleksij Rempel$id: http://devicetree.org/schemas/iio/adc/ti,ads131m02.yaml#
5*1ca733e8SOleksij Rempel$schema: http://devicetree.org/meta-schemas/core.yaml#
6*1ca733e8SOleksij Rempel
7*1ca733e8SOleksij Rempeltitle: Texas Instruments ADS131M0x 2-, 3-, 4-, 6- and 8-Channel ADCs
8*1ca733e8SOleksij Rempel
9*1ca733e8SOleksij Rempelmaintainers:
10*1ca733e8SOleksij Rempel  - Oleksij Rempel <o.rempel@pengutronix.de>
11*1ca733e8SOleksij Rempel
12*1ca733e8SOleksij Rempeldescription: |
13*1ca733e8SOleksij Rempel  The ADS131M0x are a family of multichannel, simultaneous sampling,
14*1ca733e8SOleksij Rempel  24-bit, delta-sigma, analog-to-digital converters (ADCs) with a
15*1ca733e8SOleksij Rempel  built-in programmable gain amplifier (PGA) and internal reference.
16*1ca733e8SOleksij Rempel  Communication with the ADC chip is via SPI.
17*1ca733e8SOleksij Rempel
18*1ca733e8SOleksij Rempel  Datasheets:
19*1ca733e8SOleksij Rempel  - ADS131M02: https://www.ti.com/lit/ds/symlink/ads131m02.pdf
20*1ca733e8SOleksij Rempel  - ADS131M03: https://www.ti.com/lit/ds/symlink/ads131m03.pdf
21*1ca733e8SOleksij Rempel  - ADS131M04: https://www.ti.com/lit/ds/symlink/ads131m04.pdf
22*1ca733e8SOleksij Rempel  - ADS131M06: https://www.ti.com/lit/ds/symlink/ads131m06.pdf
23*1ca733e8SOleksij Rempel  - ADS131M08: https://www.ti.com/lit/ds/symlink/ads131m08.pdf
24*1ca733e8SOleksij Rempel
25*1ca733e8SOleksij Rempelproperties:
26*1ca733e8SOleksij Rempel  compatible:
27*1ca733e8SOleksij Rempel    enum:
28*1ca733e8SOleksij Rempel      - ti,ads131m02
29*1ca733e8SOleksij Rempel      - ti,ads131m03
30*1ca733e8SOleksij Rempel      - ti,ads131m04
31*1ca733e8SOleksij Rempel      - ti,ads131m06
32*1ca733e8SOleksij Rempel      - ti,ads131m08
33*1ca733e8SOleksij Rempel
34*1ca733e8SOleksij Rempel  reg:
35*1ca733e8SOleksij Rempel    description: SPI chip select number.
36*1ca733e8SOleksij Rempel
37*1ca733e8SOleksij Rempel  clocks:
38*1ca733e8SOleksij Rempel    description:
39*1ca733e8SOleksij Rempel      Phandle to the external clock source required by the ADC's CLKIN pin.
40*1ca733e8SOleksij Rempel      The datasheet recommends specific frequencies based on the desired power
41*1ca733e8SOleksij Rempel      mode (e.g., 8.192 MHz for High-Resolution mode).
42*1ca733e8SOleksij Rempel    maxItems: 1
43*1ca733e8SOleksij Rempel
44*1ca733e8SOleksij Rempel  avdd-supply:
45*1ca733e8SOleksij Rempel    description: Analog power supply (AVDD).
46*1ca733e8SOleksij Rempel
47*1ca733e8SOleksij Rempel  dvdd-supply:
48*1ca733e8SOleksij Rempel    description: Digital power supply (DVDD).
49*1ca733e8SOleksij Rempel
50*1ca733e8SOleksij Rempel  interrupts:
51*1ca733e8SOleksij Rempel    description: DRDY (Data Ready) output signal.
52*1ca733e8SOleksij Rempel    maxItems: 1
53*1ca733e8SOleksij Rempel
54*1ca733e8SOleksij Rempel  reset-gpios:
55*1ca733e8SOleksij Rempel    description: Optional RESET signal.
56*1ca733e8SOleksij Rempel    maxItems: 1
57*1ca733e8SOleksij Rempel
58*1ca733e8SOleksij Rempel  clock-names:
59*1ca733e8SOleksij Rempel    description:
60*1ca733e8SOleksij Rempel      Indicates if a crystal oscillator (XTAL) or CMOS signal is connected
61*1ca733e8SOleksij Rempel      (CLKIN). Note that XTAL mode is only supported on ADS131M06 and ADS131M08.
62*1ca733e8SOleksij Rempel    enum: [xtal, clkin]
63*1ca733e8SOleksij Rempel
64*1ca733e8SOleksij Rempel  refin-supply:
65*1ca733e8SOleksij Rempel    description: Optional external reference supply (REFIN).
66*1ca733e8SOleksij Rempel
67*1ca733e8SOleksij Rempel  '#address-cells':
68*1ca733e8SOleksij Rempel    const: 1
69*1ca733e8SOleksij Rempel
70*1ca733e8SOleksij Rempel  '#size-cells':
71*1ca733e8SOleksij Rempel    const: 0
72*1ca733e8SOleksij Rempel
73*1ca733e8SOleksij Rempelrequired:
74*1ca733e8SOleksij Rempel  - compatible
75*1ca733e8SOleksij Rempel  - reg
76*1ca733e8SOleksij Rempel  - clocks
77*1ca733e8SOleksij Rempel  - clock-names
78*1ca733e8SOleksij Rempel  - avdd-supply
79*1ca733e8SOleksij Rempel  - dvdd-supply
80*1ca733e8SOleksij Rempel
81*1ca733e8SOleksij RempelpatternProperties:
82*1ca733e8SOleksij Rempel  "^channel@[0-7]$":
83*1ca733e8SOleksij Rempel    type: object
84*1ca733e8SOleksij Rempel    $ref: /schemas/iio/adc/adc.yaml#
85*1ca733e8SOleksij Rempel    description: Properties for a single ADC channel.
86*1ca733e8SOleksij Rempel
87*1ca733e8SOleksij Rempel    properties:
88*1ca733e8SOleksij Rempel      reg:
89*1ca733e8SOleksij Rempel        description: The channel index (0-7).
90*1ca733e8SOleksij Rempel        minimum: 0
91*1ca733e8SOleksij Rempel        maximum: 7  # Max channels on ADS131M08
92*1ca733e8SOleksij Rempel
93*1ca733e8SOleksij Rempel      label: true
94*1ca733e8SOleksij Rempel
95*1ca733e8SOleksij Rempel    required:
96*1ca733e8SOleksij Rempel      - reg
97*1ca733e8SOleksij Rempel
98*1ca733e8SOleksij Rempel    unevaluatedProperties: false
99*1ca733e8SOleksij Rempel
100*1ca733e8SOleksij RempelallOf:
101*1ca733e8SOleksij Rempel  - $ref: /schemas/spi/spi-peripheral-props.yaml#
102*1ca733e8SOleksij Rempel
103*1ca733e8SOleksij Rempel  - if:
104*1ca733e8SOleksij Rempel      # 20-pin devices: M02, M03, M04
105*1ca733e8SOleksij Rempel      # These do not support XTAL or REFIN.
106*1ca733e8SOleksij Rempel      properties:
107*1ca733e8SOleksij Rempel        compatible:
108*1ca733e8SOleksij Rempel          enum:
109*1ca733e8SOleksij Rempel            - ti,ads131m02
110*1ca733e8SOleksij Rempel            - ti,ads131m03
111*1ca733e8SOleksij Rempel            - ti,ads131m04
112*1ca733e8SOleksij Rempel    then:
113*1ca733e8SOleksij Rempel      properties:
114*1ca733e8SOleksij Rempel        clock-names:
115*1ca733e8SOleksij Rempel          const: clkin
116*1ca733e8SOleksij Rempel        refin-supply: false
117*1ca733e8SOleksij Rempel
118*1ca733e8SOleksij Rempel  - if:
119*1ca733e8SOleksij Rempel      # ADS131M02: 2 channels max (0-1)
120*1ca733e8SOleksij Rempel      properties:
121*1ca733e8SOleksij Rempel        compatible:
122*1ca733e8SOleksij Rempel          contains:
123*1ca733e8SOleksij Rempel            const: ti,ads131m02
124*1ca733e8SOleksij Rempel    then:
125*1ca733e8SOleksij Rempel      patternProperties:
126*1ca733e8SOleksij Rempel        "^channel@[0-1]$":
127*1ca733e8SOleksij Rempel          properties:
128*1ca733e8SOleksij Rempel            reg:
129*1ca733e8SOleksij Rempel              maximum: 1
130*1ca733e8SOleksij Rempel        "^channel@[2-7]$": false
131*1ca733e8SOleksij Rempel
132*1ca733e8SOleksij Rempel  - if:
133*1ca733e8SOleksij Rempel      # ADS131M03: 3 channels max (0-2)
134*1ca733e8SOleksij Rempel      properties:
135*1ca733e8SOleksij Rempel        compatible:
136*1ca733e8SOleksij Rempel          contains:
137*1ca733e8SOleksij Rempel            const: ti,ads131m03
138*1ca733e8SOleksij Rempel    then:
139*1ca733e8SOleksij Rempel      patternProperties:
140*1ca733e8SOleksij Rempel        "^channel@[0-2]$":
141*1ca733e8SOleksij Rempel          properties:
142*1ca733e8SOleksij Rempel            reg:
143*1ca733e8SOleksij Rempel              maximum: 2
144*1ca733e8SOleksij Rempel        "^channel@[3-7]$": false
145*1ca733e8SOleksij Rempel
146*1ca733e8SOleksij Rempel  - if:
147*1ca733e8SOleksij Rempel      # ADS131M04: 4 channels max (0-3)
148*1ca733e8SOleksij Rempel      properties:
149*1ca733e8SOleksij Rempel        compatible:
150*1ca733e8SOleksij Rempel          contains:
151*1ca733e8SOleksij Rempel            const: ti,ads131m04
152*1ca733e8SOleksij Rempel    then:
153*1ca733e8SOleksij Rempel      patternProperties:
154*1ca733e8SOleksij Rempel        "^channel@[0-3]$":
155*1ca733e8SOleksij Rempel          properties:
156*1ca733e8SOleksij Rempel            reg:
157*1ca733e8SOleksij Rempel              maximum: 3
158*1ca733e8SOleksij Rempel        "^channel@[4-7]$": false
159*1ca733e8SOleksij Rempel
160*1ca733e8SOleksij Rempel  - if:
161*1ca733e8SOleksij Rempel      # ADS131M06: 6 channels max (0-5)
162*1ca733e8SOleksij Rempel      properties:
163*1ca733e8SOleksij Rempel        compatible:
164*1ca733e8SOleksij Rempel          contains:
165*1ca733e8SOleksij Rempel            const: ti,ads131m06
166*1ca733e8SOleksij Rempel    then:
167*1ca733e8SOleksij Rempel      patternProperties:
168*1ca733e8SOleksij Rempel        "^channel@[0-5]$":
169*1ca733e8SOleksij Rempel          properties:
170*1ca733e8SOleksij Rempel            reg:
171*1ca733e8SOleksij Rempel              maximum: 5
172*1ca733e8SOleksij Rempel        "^channel@[6-7]$": false
173*1ca733e8SOleksij Rempel
174*1ca733e8SOleksij RempelunevaluatedProperties: false
175*1ca733e8SOleksij Rempel
176*1ca733e8SOleksij Rempelexamples:
177*1ca733e8SOleksij Rempel  - |
178*1ca733e8SOleksij Rempel    #include <dt-bindings/clock/stm32mp1-clks.h>
179*1ca733e8SOleksij Rempel
180*1ca733e8SOleksij Rempel    spi1 {
181*1ca733e8SOleksij Rempel        #address-cells = <1>;
182*1ca733e8SOleksij Rempel        #size-cells = <0>;
183*1ca733e8SOleksij Rempel
184*1ca733e8SOleksij Rempel        adc@0 {
185*1ca733e8SOleksij Rempel            compatible = "ti,ads131m02";
186*1ca733e8SOleksij Rempel            reg = <0>;
187*1ca733e8SOleksij Rempel            spi-max-frequency = <8000000>;
188*1ca733e8SOleksij Rempel
189*1ca733e8SOleksij Rempel            clocks = <&rcc CK_MCO2>;
190*1ca733e8SOleksij Rempel            clock-names = "clkin";
191*1ca733e8SOleksij Rempel
192*1ca733e8SOleksij Rempel            avdd-supply = <&vdd_ana>;
193*1ca733e8SOleksij Rempel            dvdd-supply = <&vdd_dig>;
194*1ca733e8SOleksij Rempel
195*1ca733e8SOleksij Rempel            #address-cells = <1>;
196*1ca733e8SOleksij Rempel            #size-cells = <0>;
197*1ca733e8SOleksij Rempel
198*1ca733e8SOleksij Rempel            channel@0 {
199*1ca733e8SOleksij Rempel                reg = <0>;
200*1ca733e8SOleksij Rempel                label = "input_voltage";
201*1ca733e8SOleksij Rempel            };
202*1ca733e8SOleksij Rempel
203*1ca733e8SOleksij Rempel            channel@1 {
204*1ca733e8SOleksij Rempel                reg = <1>;
205*1ca733e8SOleksij Rempel                label = "input_current";
206*1ca733e8SOleksij Rempel            };
207*1ca733e8SOleksij Rempel        };
208*1ca733e8SOleksij Rempel    };
209