xref: /linux/Documentation/devicetree/bindings/iio/adc/ti,ads112c14.yaml (revision 93e4b3076b5f2d853462b9777d083c77fc0b7b23)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/adc/ti,ads112c14.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Texas Instruments' ADS112C14 and similar ADC chips
8
9description: |
10  Supports the following Texas Instruments' ADC chips:
11  - ADS112C14 (16-bit)
12  - ADS122C14 (24-bit)
13
14  https://www.ti.com/lit/ds/symlink/ads122c14.pdf
15
16  These chips are primarily designed for use with resistive sensors such as
17  RTDs, thermocouples, Wheatstone bridges, etc. The channel bindings reflect
18  this in that each channel represents the conditions required to make a
19  measurement rather than strictly just the physical input channels.
20
21maintainers:
22  - David Lechner <dlechner@baylibre.com>
23
24properties:
25  compatible:
26    enum:
27      - ti,ads112c14
28      - ti,ads122c14
29
30  reg:
31    items:
32      - minimum: 0x40
33        maximum: 0x47
34
35  clocks:
36    maxItems: 1
37    description: Optional external clock connected to GPIO3 pin.
38
39  avdd-supply: true
40  dvdd-supply: true
41
42  refp-supply: true
43  refn-supply: true
44
45  ti,refp-refn-resistor-ohms:
46    description:
47      The resistance of the external resistor between REFP and REFN when using
48      resistor bridge driven by current outputs for RTD measurements.
49
50  interrupts:
51    minItems: 1
52    items:
53      - description: /FAULT interrupt (GPIO2 pin)
54      - description: /DRDY interrupt (GPIO3 pin)
55
56  interrupt-names:
57    minItems: 1
58    maxItems: 2
59    items:
60      enum: [fault, drdy]
61
62  gpio-controller: true
63  '#gpio-cells':
64    const: 2
65
66  '#address-cells':
67    const: 1
68
69  '#size-cells':
70    const: 0
71
72patternProperties:
73  ^channel@[0-9a-f]$:
74    $ref: adc.yaml
75
76    unevaluatedProperties: false
77
78    properties:
79      reg:
80        items:
81          - maximum: 15 # arbitrary limit, channel@ can be any combination of AIN0-AIN7
82
83      single-channel:
84        maximum: 7
85
86      diff-channels:
87        items:
88          maximum: 7
89
90      bipolar: true
91
92      input-chopping: true
93
94      excitation-channels:
95        maxItems: 2
96        items:
97          maximum: 7
98
99      excitation-current-nanoamp:
100        maxItems: 2
101        items:
102          enum: [1000, 10000, 20000, 30000, 40000, 50000, 60000, 70000, 80000,
103                 90000, 100000, 200000, 300000, 400000, 500000, 600000, 700000,
104                 800000, 900000, 1000000]
105
106      burn-out-current-nanoamp:
107        items:
108          - enum: [200, 1000, 10000]
109
110      reference-sources:
111        items:
112          - enum: [internal-2.5v, internal-1.25v, external, avdd]
113            default: internal-2.5v
114
115    dependencies:
116      excitation-channels: [ excitation-current-nanoamp ]
117      excitation-current-nanoamp: [ excitation-channels ]
118
119    oneOf:
120      - required: [ single-channel ]
121      - required: [ diff-channels ]
122
123unevaluatedProperties: false
124
125required:
126  - compatible
127  - reg
128  - avdd-supply
129  - dvdd-supply
130
131dependencies:
132  refn-supply: [ refp-supply ]
133
134oneOf:
135  - required: [ refp-supply ]
136  - required: [ "ti,refp-refn-resistor-ohms" ]
137  - properties:
138      refp-supply: false
139      refn-supply: false
140      ti,refp-refn-resistor-ohms: false
141
142# /DRDY out and CLK in use the same AIN7/GPIO3 pin.
143if:
144  required:
145    - interrupt-names
146  properties:
147    interrupt-names:
148      contains:
149        const: drdy
150then:
151  properties:
152    clocks: false
153
154examples:
155  - |
156    i2c {
157        #address-cells = <1>;
158        #size-cells = <0>;
159
160        adc@40 {
161            compatible = "ti,ads112c14";
162            reg = <0x40>;
163
164            avdd-supply = <&avdd>;
165            dvdd-supply = <&dvdd>;
166
167            /* 3-Wire RTD: Two IDACs, One Measurement (AIN1-AIN2) */
168
169            ti,refp-refn-resistor-ohms = <500>;
170
171            #address-cells = <1>;
172            #size-cells = <0>;
173
174            channel@0 {
175                reg = <0>;
176                diff-channels = <1>, <2>;
177                input-chopping;
178                excitation-channels = <0>, <3>;
179                excitation-current-nanoamp = <500000>, <500000>;
180                reference-sources = "external";
181                label = "rtd";
182            };
183        };
184    };
185  - |
186    i2c {
187        #address-cells = <1>;
188        #size-cells = <0>;
189
190        adc@40 {
191            compatible = "ti,ads112c14";
192            reg = <0x40>;
193
194            avdd-supply = <&avdd>;
195            dvdd-supply = <&dvdd>;
196
197            /* Resistive Bridge Measurement With a Thermistor for Temperature Compensation */
198
199            refp-supply = <&avdd>;
200
201            #address-cells = <1>;
202            #size-cells = <0>;
203
204            channel@0 {
205                reg = <0>;
206                diff-channels = <6>, <7>;
207                bipolar;
208                reference-sources = "external";
209                label = "bridge";
210            };
211
212            channel@1 {
213                reg = <1>;
214                diff-channels = <1>, <2>;
215                reference-sources = "internal-2.5v";
216                label = "thermistor";
217            };
218        };
219    };
220