Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/device-tree/Bindings/iio/adc/adi,ad7173.yaml
48406 views
1
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2
# Copyright 2023 Analog Devices Inc.
3
%YAML 1.2
4
---
5
$id: http://devicetree.org/schemas/iio/adc/adi,ad7173.yaml#
6
$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8
title: Analog Devices AD7173 ADC
9
10
maintainers:
11
- Ceclan Dumitru <dumitru.ceclan@analog.com>
12
13
description: |
14
Analog Devices AD717x ADC's:
15
The AD717x family offer a complete integrated Sigma-Delta ADC solution which
16
can be used in high precision, low noise single channel applications
17
(Life Science measurements) or higher speed multiplexed applications
18
(Factory Automation PLC Input modules). The Sigma-Delta ADC is intended
19
primarily for measurement of signals close to DC but also delivers
20
outstanding performance with input bandwidths out to ~10kHz.
21
22
Analog Devices AD411x ADC's:
23
The AD411X family encompasses a series of low power, low noise, 24-bit,
24
sigma-delta analog-to-digital converters that offer a versatile range of
25
specifications. They integrate an analog front end suitable for processing
26
fully differential/single-ended and bipolar voltage inputs.
27
28
Datasheets for supported chips:
29
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4111.pdf
30
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4112.pdf
31
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4114.pdf
32
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4115.pdf
33
https://www.analog.com/media/en/technical-documentation/data-sheets/AD4116.pdf
34
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
35
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-4.pdf
36
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
37
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf
38
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-8.pdf
39
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf
40
https://www.analog.com/media/en/technical-documentation/data-sheets/AD7177-2.pdf
41
42
properties:
43
compatible:
44
enum:
45
- adi,ad4111
46
- adi,ad4112
47
- adi,ad4114
48
- adi,ad4115
49
- adi,ad4116
50
- adi,ad7172-2
51
- adi,ad7172-4
52
- adi,ad7173-8
53
- adi,ad7175-2
54
- adi,ad7175-8
55
- adi,ad7176-2
56
- adi,ad7177-2
57
58
reg:
59
maxItems: 1
60
61
interrupts:
62
minItems: 1
63
items:
64
- description: |
65
Ready: multiplexed with SPI data out. While SPI CS is low,
66
can be used to indicate the completion of a conversion.
67
68
- description: |
69
Error: The three error bits in the status register (ADC_ERROR, CRC_ERROR,
70
and REG_ERROR) are OR'ed, inverted, and mapped to the ERROR pin.
71
Therefore, the ERROR pin indicates that an error has occurred.
72
73
interrupt-names:
74
minItems: 1
75
items:
76
- const: rdy
77
- const: err
78
79
'#address-cells':
80
const: 1
81
82
'#size-cells':
83
const: 0
84
85
spi-max-frequency:
86
maximum: 20000000
87
88
gpio-controller:
89
description: Marks the device node as a GPIO controller.
90
91
'#gpio-cells':
92
const: 2
93
description:
94
The first cell is the GPIO number and the second cell specifies
95
GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
96
97
vref-supply:
98
description: |
99
Differential external reference supply used for conversion. The reference
100
voltage (Vref) specified here must be the voltage difference between the
101
REF+ and REF- pins: Vref = (REF+) - (REF-).
102
103
vref2-supply:
104
description: |
105
Differential external reference supply used for conversion. The reference
106
voltage (Vref2) specified here must be the voltage difference between the
107
REF2+ and REF2- pins: Vref2 = (REF2+) - (REF2-).
108
109
avdd-supply:
110
description: Avdd supply, can be used as reference for conversion.
111
This supply is referenced to AVSS, voltage specified here
112
represents (AVDD1 - AVSS).
113
114
avdd2-supply:
115
description: Avdd2 supply, used as the input to the internal voltage regulator.
116
This supply is referenced to AVSS, voltage specified here
117
represents (AVDD2 - AVSS).
118
119
iovdd-supply:
120
description: iovdd supply, used for the chip digital interface.
121
122
clocks:
123
maxItems: 1
124
description: |
125
Optional external clock source. Can include one clock source: external
126
clock or external crystal.
127
128
clock-names:
129
enum:
130
- ext-clk
131
- xtal
132
133
'#clock-cells':
134
const: 0
135
136
patternProperties:
137
"^channel@[0-9a-f]$":
138
type: object
139
$ref: adc.yaml
140
unevaluatedProperties: false
141
142
properties:
143
reg:
144
minimum: 0
145
maximum: 15
146
147
diff-channels:
148
description: |
149
This property is used for defining the inputs of a differential
150
voltage channel. The first value is the positive input and the second
151
value is the negative input of the channel.
152
153
Family AD411x supports a dedicated VINCOM voltage input.
154
To select it set the second channel to 16.
155
(VIN2, VINCOM) -> diff-channels = <2 16>
156
157
There are special values that can be selected besides the voltage
158
analog inputs:
159
21: REF+
160
22: REF−
161
162
Supported only by AD7172-2, AD7172-4, AD7175-2, AD7175-8, AD7177-2,
163
must be paired together and can be used to monitor the power supply
164
of the ADC:
165
19: ((AVDD1 − AVSS)/5)+
166
20: ((AVDD1 − AVSS)/5)−
167
168
items:
169
minimum: 0
170
maximum: 31
171
172
single-channel:
173
description: |
174
This property is used for defining a current channel or the positive
175
input of a voltage channel (single-ended or pseudo-differential).
176
177
Models AD4111 and AD4112 support current channels.
178
Example: (IIN2+, IIN2−) -> single-channel = <2>
179
To correctly configure a current channel set the "adi,current-channel"
180
property to true.
181
182
To configure a single-ended/pseudo-differential channel set the
183
"common-mode-channel" property to the desired negative voltage input.
184
185
When used as a voltage channel, special inputs are valid as well.
186
minimum: 0
187
maximum: 31
188
189
common-mode-channel:
190
description:
191
This property is used for defining the negative input of a
192
single-ended or pseudo-differential voltage channel.
193
194
Special inputs are valid as well.
195
minimum: 0
196
maximum: 31
197
198
adi,reference-select:
199
description: |
200
Select the reference source to use when converting on
201
the specific channel. Valid values are:
202
vref : REF+ /REF−
203
vref2 : REF2+ /REF2−
204
refout-avss: REFOUT/AVSS (Internal reference)
205
avdd : AVDD /AVSS
206
207
External reference ref2 only available on ad7173-8 and ad7172-4.
208
Internal reference refout-avss not available on ad7172-4.
209
210
If not specified, internal reference used (if available).
211
$ref: /schemas/types.yaml#/definitions/string
212
enum:
213
- vref
214
- vref2
215
- refout-avss
216
- avdd
217
default: refout-avss
218
219
adi,current-channel:
220
$ref: /schemas/types.yaml#/definitions/flag
221
description: |
222
Signal that the selected inputs are current channels.
223
Only available on AD4111 and AD4112.
224
225
required:
226
- reg
227
228
allOf:
229
- oneOf:
230
- required: [single-channel]
231
properties:
232
diff-channels: false
233
- required: [diff-channels]
234
properties:
235
single-channel: false
236
adi,current-channel: false
237
common-mode-channel: false
238
239
- if:
240
required: [common-mode-channel]
241
then:
242
properties:
243
adi,current-channel: false
244
245
required:
246
- compatible
247
- reg
248
249
allOf:
250
- $ref: /schemas/spi/spi-peripheral-props.yaml#
251
252
# Only ad7172-4, ad7173-8 and ad7175-8 support vref2
253
- if:
254
properties:
255
compatible:
256
not:
257
contains:
258
enum:
259
- adi,ad7172-4
260
- adi,ad7173-8
261
- adi,ad7175-8
262
then:
263
properties:
264
vref2-supply: false
265
patternProperties:
266
"^channel@[0-9a-f]$":
267
properties:
268
adi,reference-select:
269
enum:
270
- vref
271
- refout-avss
272
- avdd
273
274
- if:
275
properties:
276
compatible:
277
contains:
278
enum:
279
- adi,ad4114
280
- adi,ad4115
281
- adi,ad4116
282
- adi,ad7173-8
283
- adi,ad7175-8
284
then:
285
patternProperties:
286
"^channel@[0-9a-f]$":
287
properties:
288
reg:
289
maximum: 15
290
291
- if:
292
properties:
293
compatible:
294
contains:
295
enum:
296
- adi,ad7172-2
297
- adi,ad7175-2
298
- adi,ad7176-2
299
- adi,ad7177-2
300
then:
301
patternProperties:
302
"^channel@[0-9a-f]$":
303
properties:
304
reg:
305
maximum: 3
306
307
# Model ad7172-4 does not support internal reference
308
- if:
309
properties:
310
compatible:
311
contains:
312
const: adi,ad7172-4
313
then:
314
patternProperties:
315
"^channel@[0-9a-f]$":
316
properties:
317
reg:
318
maximum: 7
319
adi,reference-select:
320
enum:
321
- vref
322
- vref2
323
- avdd
324
required:
325
- adi,reference-select
326
327
- if:
328
properties:
329
compatible:
330
contains:
331
enum:
332
- adi,ad4111
333
- adi,ad4112
334
- adi,ad4114
335
- adi,ad4115
336
- adi,ad4116
337
then:
338
properties:
339
avdd2-supply: false
340
341
- if:
342
properties:
343
compatible:
344
not:
345
contains:
346
enum:
347
- adi,ad4111
348
- adi,ad4112
349
then:
350
patternProperties:
351
"^channel@[0-9a-f]$":
352
properties:
353
adi,current-channel: false
354
355
- if:
356
anyOf:
357
- required: [clock-names]
358
- required: [clocks]
359
then:
360
properties:
361
'#clock-cells': false
362
363
unevaluatedProperties: false
364
365
examples:
366
# Example AD7173-8 with external reference connected to REF+/REF-:
367
- |
368
#include <dt-bindings/gpio/gpio.h>
369
#include <dt-bindings/interrupt-controller/irq.h>
370
371
spi {
372
#address-cells = <1>;
373
#size-cells = <0>;
374
375
adc@0 {
376
compatible = "adi,ad7173-8";
377
reg = <0>;
378
379
#address-cells = <1>;
380
#size-cells = <0>;
381
382
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
383
interrupt-names = "rdy";
384
interrupt-parent = <&gpio>;
385
spi-max-frequency = <5000000>;
386
gpio-controller;
387
#gpio-cells = <2>;
388
#clock-cells = <0>;
389
390
vref-supply = <&dummy_regulator>;
391
392
channel@0 {
393
reg = <0>;
394
bipolar;
395
diff-channels = <0 1>;
396
adi,reference-select = "vref";
397
};
398
399
channel@1 {
400
reg = <1>;
401
diff-channels = <2 3>;
402
};
403
404
channel@2 {
405
reg = <2>;
406
bipolar;
407
diff-channels = <4 5>;
408
};
409
410
channel@3 {
411
reg = <3>;
412
bipolar;
413
diff-channels = <6 7>;
414
};
415
416
channel@4 {
417
reg = <4>;
418
diff-channels = <8 9>;
419
adi,reference-select = "avdd";
420
};
421
};
422
};
423
424
# Example AD4111 with current channel and single-ended channel:
425
- |
426
#include <dt-bindings/gpio/gpio.h>
427
#include <dt-bindings/interrupt-controller/irq.h>
428
429
spi {
430
#address-cells = <1>;
431
#size-cells = <0>;
432
433
adc@0 {
434
compatible = "adi,ad4111";
435
reg = <0>;
436
437
#address-cells = <1>;
438
#size-cells = <0>;
439
440
interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
441
interrupt-names = "rdy";
442
interrupt-parent = <&gpio>;
443
spi-max-frequency = <5000000>;
444
gpio-controller;
445
#gpio-cells = <2>;
446
#clock-cells = <0>;
447
448
channel@0 {
449
reg = <0>;
450
bipolar;
451
diff-channels = <4 5>;
452
};
453
454
// Single ended channel VIN2/VINCOM
455
channel@1 {
456
reg = <1>;
457
bipolar;
458
single-channel = <2>;
459
common-mode-channel = <16>;
460
};
461
462
// Current channel IN2+/IN2-
463
channel@2 {
464
reg = <2>;
465
single-channel = <2>;
466
adi,current-channel;
467
};
468
};
469
};
470
471