xref: /freebsd/sys/contrib/device-tree/Bindings/iio/adc/adi,ad7380.yaml (revision 9978553d0199e7ec0bdd1c44fc7f6c7b0c11e43b)
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/adi,ad7380.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Analog Devices Simultaneous Sampling Analog to Digital Converters
8
9maintainers:
10  - Michael Hennerich <Michael.Hennerich@analog.com>
11  - Nuno Sá <nuno.sa@analog.com>
12
13description: |
14  * https://www.analog.com/en/products/ad7380.html
15  * https://www.analog.com/en/products/ad7381.html
16  * https://www.analog.com/en/products/ad7383.html
17  * https://www.analog.com/en/products/ad7384.html
18  * https://www.analog.com/en/products/ad7386.html
19  * https://www.analog.com/en/products/ad7387.html
20  * https://www.analog.com/en/products/ad7388.html
21  * https://www.analog.com/en/products/ad7380-4.html
22  * https://www.analog.com/en/products/ad7381-4.html
23  * https://www.analog.com/en/products/ad7383-4.html
24  * https://www.analog.com/en/products/ad7384-4.html
25  * https://www.analog.com/en/products/ad7386-4.html
26  * https://www.analog.com/en/products/ad7387-4.html
27  * https://www.analog.com/en/products/ad7388-4.html
28  * https://www.analog.com/en/products/ad7389-4.html
29  * https://www.analog.com/en/products/adaq4370-4.html
30  * https://www.analog.com/en/products/adaq4380-4.html
31  * https://www.analog.com/en/products/adaq4381-4.html
32
33
34$ref: /schemas/spi/spi-peripheral-props.yaml#
35
36properties:
37  compatible:
38    enum:
39      - adi,ad7380
40      - adi,ad7381
41      - adi,ad7383
42      - adi,ad7384
43      - adi,ad7386
44      - adi,ad7387
45      - adi,ad7388
46      - adi,ad7380-4
47      - adi,ad7381-4
48      - adi,ad7383-4
49      - adi,ad7384-4
50      - adi,ad7386-4
51      - adi,ad7387-4
52      - adi,ad7388-4
53      - adi,ad7389-4
54      - adi,adaq4370-4
55      - adi,adaq4380-4
56      - adi,adaq4381-4
57
58  reg:
59    maxItems: 1
60
61  spi-max-frequency:
62    maximum: 80000000
63  spi-cpol: true
64  spi-cpha: true
65
66  vcc-supply:
67    description: A 3V to 3.6V supply that powers the chip.
68
69  vlogic-supply:
70    description:
71      A 1.65V to 3.6V supply for the logic pins.
72
73  refio-supply:
74    description:
75      A 2.5V to 3.3V supply for the external reference voltage. When omitted,
76      the internal 2.5V reference is used.
77
78  refin-supply:
79    description:
80      A 2.5V to 3.3V supply for external reference voltage, for ad7380-4 only.
81      For adaq devices, a 5V supply voltage. A 3.3V internal reference is
82      derived from it. Connect to vs-p-supply for normal operation.
83
84  vs-p-supply:
85    description:
86      Amplifiers positive supply.
87
88  vs-n-supply:
89    description:
90      Amplifiers negative supply.
91
92  ldo-supply:
93    description:
94      LDO supply. Connect to vs-p-supply or a 3.6 to 5.5 V supply.
95
96  aina-supply:
97    description:
98      The common mode voltage supply for the AINA- pin on pseudo-differential
99      chips.
100
101  ainb-supply:
102    description:
103      The common mode voltage supply for the AINB- pin on pseudo-differential
104      chips.
105
106  ainc-supply:
107    description:
108      The common mode voltage supply for the AINC- pin on pseudo-differential
109      chips.
110
111  aind-supply:
112    description:
113      The common mode voltage supply for the AIND- pin on pseudo-differential
114      chips.
115
116  interrupts:
117    description:
118      When the device is using 1-wire mode, this property is used to optionally
119      specify the ALERT interrupt.
120    maxItems: 1
121
122  "#address-cells":
123    const: 1
124
125  "#size-cells":
126    const: 0
127
128required:
129  - compatible
130  - reg
131  - vcc-supply
132  - vlogic-supply
133
134patternProperties:
135  "^channel@[0-3]$":
136    $ref: adc.yaml
137    type: object
138
139    properties:
140      reg:
141        description:
142          The channel number. From 0 to 3 corresponding to channels A,B,C,D
143        minimum: 0
144        maximum: 3
145
146      adi,gain-milli:
147        description:
148          The hardware gain applied to the ADC input (in milli units).
149          If not present, default to 1000 (no actual gain applied).
150          Refer to the typical connection diagrams section of the datasheet for
151          pin wiring.
152        $ref: /schemas/types.yaml#/definitions/uint16
153        enum: [300, 600, 1000, 1600]
154        default: 1000
155
156    required:
157      - reg
158
159    additionalProperties: false
160
161unevaluatedProperties: false
162
163allOf:
164  # pseudo-differential chips require common mode voltage supplies,
165  # true differential chips don't use them
166  - if:
167      properties:
168        compatible:
169          enum:
170            - adi,ad7383
171            - adi,ad7384
172            - adi,ad7383-4
173            - adi,ad7384-4
174    then:
175      required:
176        - aina-supply
177        - ainb-supply
178    else:
179      properties:
180        aina-supply: false
181        ainb-supply: false
182  - if:
183      properties:
184        compatible:
185          enum:
186            - adi,ad7383-4
187            - adi,ad7384-4
188    then:
189      required:
190        - ainc-supply
191        - aind-supply
192    else:
193      properties:
194        ainc-supply: false
195        aind-supply: false
196
197  # ad7380-4 uses refin-supply as external reference.
198  # adaq devices use internal reference only, derived from refin-supply
199  # All other chips from ad738x family use refio as optional external reference.
200  # When refio-supply is omitted, internal reference is used.
201  - if:
202      properties:
203        compatible:
204          enum:
205            - adi,ad7380-4
206            - adi,adaq4370-4
207            - adi,adaq4380-4
208            - adi,adaq4381-4
209    then:
210      properties:
211        refio-supply: false
212      required:
213        - refin-supply
214    else:
215      properties:
216        refin-supply: false
217
218  # adi,ad7389-4 is internal reference only
219  - if:
220      properties:
221        compatible:
222          const: adi,ad7389-4
223    then:
224      properties:
225        refio-supply: false
226
227  # adaq devices need more supplies and using channel to declare gain property
228  # only applies to adaq devices
229  - if:
230      properties:
231        compatible:
232          enum:
233            - adi,adaq4370-4
234            - adi,adaq4380-4
235            - adi,adaq4381-4
236    then:
237      required:
238        - vs-p-supply
239        - vs-n-supply
240        - ldo-supply
241    else:
242      properties:
243        vs-p-supply: false
244        vs-n-supply: false
245        ldo-supply: false
246      patternProperties:
247        "^channel@[0-3]$": false
248
249examples:
250  - |
251    #include <dt-bindings/interrupt-controller/irq.h>
252
253    spi {
254        #address-cells = <1>;
255        #size-cells = <0>;
256
257        adc@0 {
258            compatible = "adi,ad7380";
259            reg = <0>;
260
261            spi-cpol;
262            spi-cpha;
263            spi-max-frequency = <80000000>;
264
265            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
266            interrupt-parent = <&gpio0>;
267
268            vcc-supply = <&supply_3_3V>;
269            vlogic-supply = <&supply_3_3V>;
270            refio-supply = <&supply_2_5V>;
271        };
272    };
273
274  - |
275    #include <dt-bindings/interrupt-controller/irq.h>
276
277    spi {
278        #address-cells = <1>;
279        #size-cells = <0>;
280
281        adc@0 {
282            compatible = "adi,adaq4380-4";
283            reg = <0>;
284
285            spi-cpol;
286            spi-cpha;
287            spi-max-frequency = <80000000>;
288
289            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
290            interrupt-parent = <&gpio0>;
291
292            vcc-supply = <&supply_3_3V>;
293            vlogic-supply = <&supply_3_3V>;
294            refin-supply = <&supply_5V>;
295            vs-p-supply = <&supply_5V>;
296            vs-n-supply = <&supply_0V>;
297            ldo-supply = <&supply_5V>;
298
299            #address-cells = <1>;
300            #size-cells = <0>;
301
302            channel@0 {
303                reg = <0>;
304                adi,gain-milli = /bits/ 16 <300>;
305            };
306
307            channel@2 {
308                reg = <2>;
309                adi,gain-milli = /bits/ 16 <600>;
310            };
311
312            channel@3 {
313                reg = <3>;
314                adi,gain-milli = /bits/ 16 <1000>;
315            };
316        };
317    };
318