blob: 2a04906531fb0ea254a121ee0595130298f11a73 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/addac/adi,ad74115.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Analog Devices AD74115H device
8
9maintainers:
10 - Cosmin Tanislav <cosmin.tanislav@analog.com>
11
12description: |
13 The AD74115H is a single-channel software configurable input/output
14 device for industrial control applications. It contains functionality for
15 analog output, analog input, digital output, digital input, resistance
16 temperature detector, and thermocouple measurements integrated into a single
17 chip solution with an SPI interface. The device features a 16-bit ADC and a
18 14-bit DAC.
19
20 https://www.analog.com/en/products/ad74115h.html
21
22properties:
23 compatible:
24 enum:
25 - adi,ad74115h
26
27 reg:
28 maxItems: 1
29
30 spi-max-frequency:
31 maximum: 24000000
32
33 spi-cpol: true
34
35 reset-gpios:
36 maxItems: 1
37
38 interrupts:
39 minItems: 1
40 maxItems: 2
41
42 interrupt-names:
43 minItems: 1
44 maxItems: 2
45 items:
46 enum:
47 - adc_rdy
48 - alert
49
50 avdd-supply: true
51 avcc-supply: true
52 dvcc-supply: true
53 dovdd-supply: true
54 refin-supply: true
55
56 adi,ch-func:
57 $ref: /schemas/types.yaml#/definitions/uint32
58 description: |
59 Channel function.
60 0 - High impedance
61 1 - Voltage output
62 2 - Current output
63 3 - Voltage input
64 4 - Current input, externally-powered
65 5 - Current input, loop-powered
66 6 - Resistance input
67 7 - RTD measure
68 8 - Digital input logic
69 9 - Digital input, loop-powered
70 10 - Current output with HART
71 11 - Current input, externally-powered, with HART
72 12 - Current input, loop-powered, with HART
73 minimum: 0
74 maximum: 12
75 default: 0
76
77 adi,conv2-mux:
78 $ref: /schemas/types.yaml#/definitions/uint32
79 description: |
80 Input node for ADC conversion 2.
81 0 - SENSE_EXT1 to AGND_SENSE
82 1 - SENSE_EXT2 to AGND_SENSE
83 2 - SENSE_EXT2 to SENSE_EXT1
84 3 - AGND to AGND
85 minimum: 0
86 maximum: 3
87 default: 0
88
89 adi,conv2-range-microvolt:
90 description: Conversion range for ADC conversion 2.
91 oneOf:
92 - items:
93 - enum: [-2500000, 0]
94 - const: 2500000
95 - items:
96 - enum: [-12000000, 0]
97 - const: 12000000
98 - items:
99 - const: -2500000
100 - const: 0
101 - items:
102 - const: -104000
103 - const: 104000
104 - items:
105 - const: 0
106 - const: 625000
107
108 adi,sense-agnd-buffer-low-power:
109 type: boolean
110 description:
111 Whether to enable low-power buffered mode for the AGND sense pin.
112
113 adi,lf-buffer-low-power:
114 type: boolean
115 description:
116 Whether to enable low-power buffered mode for the low-side filtered
117 sense pin.
118
119 adi,hf-buffer-low-power:
120 type: boolean
121 description:
122 Whether to enable low-power buffered mode for the high-side filtered
123 sense pin.
124
125 adi,ext2-buffer-low-power:
126 type: boolean
127 description: Whether to enable low-power buffered mode for the EXT2 pin.
128
129 adi,ext1-buffer-low-power:
130 type: boolean
131 description: Whether to enable low-power buffered mode for the EXT1 pin.
132
133 adi,comparator-invert:
134 type: boolean
135 description: Whether to invert the comparator output.
136
137 adi,digital-input-sink-range-high:
138 $ref: /schemas/types.yaml#/definitions/uint32
139 description: |
140 When not present, the digital input range is from 0 to 3700uA in steps
141 of 120uA, with a ~2k series resistance.
142 When present, the digital input range is from 0 to 7400uA in steps
143 of 240uA, with a ~1k series resistance.
144
145 adi,digital-input-sink-microamp:
146 description: Sink current in digital input mode.
147 minimum: 0
148 maximum: 3700
149 default: 0
150
151 adi,digital-input-debounce-mode-counter-reset:
152 type: boolean
153 description: |
154 When not present, a counter increments when the signal is asserted
155 and decrements when the signal is de-asserted.
156 When present, a counter increments while the signal is asserted and
157 resets when the signal de-asserts
158
159 adi,digital-input-unbuffered:
160 type: boolean
161 description: Whether to buffer digital input signals.
162
163 adi,digital-input-short-circuit-detection:
164 type: boolean
165 description: Whether to detect digital input short circuits.
166
167 adi,digital-input-open-circuit-detection:
168 type: boolean
169 description: Whether to detect digital input open circuits.
170
171 adi,digital-input-threshold-mode-fixed:
172 type: boolean
173 description: |
174 When not present, the digital input threshold range is -0.96 * AVDD
175 to AVDD.
176 When present, the threshold range is fixed from -19V to 30V.
177
178 adi,dac-bipolar:
179 type: boolean
180 description: |
181 When not present, the DAC operates in the 0V to 12V range.
182 When present, the DAC operates in the -12V to 12V range.
183
184 adi,charge-pump:
185 type: boolean
186 description: Whether to enable the internal charge pump.
187
188 adi,dac-hart-slew:
189 type: boolean
190 description: Whether to use a HART-compatible slew rate.
191
192 adi,dac-current-limit-low:
193 type: boolean
194 description: |
195 When not present, the DAC short-circuit current limit is 32mA in
196 either source or sink for VOUT and 4mA sink for IOUT.
197 When present, the limit is 16mA in either source or sink for VOUT,
198 1mA sink for IOUT.
199
200 adi,4-wire-rtd:
201 type: boolean
202 description: |
203 When not present, the ADC should be used for measuring 3-wire RTDs.
204 When present, the ADC should be used for measuring 4-wire RTDs.
205
206 adi,3-wire-rtd-excitation-swap:
207 type: boolean
208 description: Whether to swap the excitation for 3-wire RTD.
209
210 adi,rtd-excitation-current-microamp:
211 description: Excitation current to apply to RTD.
212 enum: [250, 500, 750, 1000]
213 default: 250
214
215 adi,ext1-burnout:
216 type: boolean
217 description: Whether to enable burnout current for EXT1.
218
219 adi,ext1-burnout-current-nanoamp:
220 description:
221 Burnout current in nanoamps to be applied to EXT1.
222 enum: [0, 50, 500, 1000, 10000]
223 default: 0
224
225 adi,ext1-burnout-current-polarity-sourcing:
226 type: boolean
227 description: |
228 When not present, the burnout current polarity for EXT1 is sinking.
229 When present, the burnout current polarity for EXT1 is sourcing.
230
231 adi,ext2-burnout:
232 type: boolean
233 description: Whether to enable burnout current for EXT2.
234
235 adi,ext2-burnout-current-nanoamp:
236 description: Burnout current in nanoamps to be applied to EXT2.
237 enum: [0, 50, 500, 1000, 10000]
238 default: 0
239
240 adi,ext2-burnout-current-polarity-sourcing:
241 type: boolean
242 description: |
243 When not present, the burnout current polarity for EXT2 is sinking.
244 When present, the burnout current polarity for EXT2 is sourcing.
245
246 adi,viout-burnout:
247 type: boolean
248 description: Whether to enable burnout current for VIOUT.
249
250 adi,viout-burnout-current-nanoamp:
251 description: Burnout current in nanoamps to be applied to VIOUT.
252 enum: [0, 1000, 10000]
253 default: 0
254
255 adi,viout-burnout-current-polarity-sourcing:
256 type: boolean
257 description: |
258 When not present, the burnout current polarity for VIOUT is sinking.
259 When present, the burnout current polarity for VIOUT is sourcing.
260
261 adi,gpio0-mode:
262 $ref: /schemas/types.yaml#/definitions/uint32
263 description: |
264 GPIO functions.
265 0 - Disabled
266 1 - Logic I/O
267 2 - Comparator output
268 3 - Control HART CD
269 4 - Monitor HART CD
270 5 - Monitor HART EOM status
271 minimum: 0
272 maximum: 5
273 default: 0
274
275 adi,gpio1-mode:
276 $ref: /schemas/types.yaml#/definitions/uint32
277 description: |
278 GPIO functions.
279 0 - Disabled
280 1 - Logic I/O
281 2 - Drive external digital output FET
282 3 - Control HART RXD
283 4 - Monitor HART RXD
284 5 - Monitor HART SOM status
285 minimum: 0
286 maximum: 5
287 default: 0
288
289 adi,gpio2-mode:
290 $ref: /schemas/types.yaml#/definitions/uint32
291 description: |
292 GPIO functions.
293 0 - Disabled
294 1 - Logic I/O
295 2 - Drive internal digital output FET
296 3 - Control HART TXD
297 4 - Monitor HART TXD
298 5 - Monitor HART TX complete status
299 minimum: 0
300 maximum: 5
301 default: 0
302
303 adi,gpio3-mode:
304 $ref: /schemas/types.yaml#/definitions/uint32
305 description: |
306 GPIO functions.
307 0 - Disabled
308 1 - Logic I/O
309 2 - High impedance
310 3 - Control HART RTS
311 4 - Monitor HART RTS
312 5 - Monitor HART CD complete status
313 minimum: 0
314 maximum: 5
315 default: 0
316
317required:
318 - compatible
319 - reg
320 - spi-cpol
321 - avdd-supply
322
323allOf:
324 - $ref: /schemas/spi/spi-peripheral-props.yaml#
325 - if:
326 required:
327 - adi,digital-input-sink-range-high
328 then:
329 properties:
330 adi,digital-input-sink-microamp:
331 maximum: 7400
332
333unevaluatedProperties: false
334
335examples:
336 - |
337 #include <dt-bindings/gpio/gpio.h>
338 #include <dt-bindings/interrupt-controller/irq.h>
339
340 spi {
341 #address-cells = <1>;
342 #size-cells = <0>;
343
344 addac@0 {
345 compatible = "adi,ad74115h";
346 reg = <0>;
347
348 spi-max-frequency = <12000000>;
349 spi-cpol;
350
351 reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
352
353 interrupt-parent = <&gpio>;
354 interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
355 interrupt-names = "adc_rdy";
356
357 avdd-supply = <&ad74115_avdd>;
358
359 adi,ch-func = <1>;
360 adi,conv2-mux = <2>;
361 adi,conv2-range-microvolt = <(-12000000) 12000000>;
362
363 adi,gpio0-mode = <1>;
364 adi,gpio1-mode = <1>;
365 adi,gpio2-mode = <1>;
366 adi,gpio3-mode = <1>;
367
368 adi,dac-bipolar;
369 };
370 };
371...