xref: /linux/Documentation/devicetree/bindings/iio/adc/adi,ad7380.yaml (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
1c4ea781cSDavid Lechner# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c4ea781cSDavid Lechner%YAML 1.2
3c4ea781cSDavid Lechner---
4c4ea781cSDavid Lechner$id: http://devicetree.org/schemas/iio/adc/adi,ad7380.yaml#
5c4ea781cSDavid Lechner$schema: http://devicetree.org/meta-schemas/core.yaml#
6c4ea781cSDavid Lechner
7c4ea781cSDavid Lechnertitle: Analog Devices Simultaneous Sampling Analog to Digital Converters
8c4ea781cSDavid Lechner
9c4ea781cSDavid Lechnermaintainers:
10c4ea781cSDavid Lechner  - Michael Hennerich <Michael.Hennerich@analog.com>
11c4ea781cSDavid Lechner  - Nuno Sá <nuno.sa@analog.com>
12c4ea781cSDavid Lechner
13c4ea781cSDavid Lechnerdescription: |
14c4ea781cSDavid Lechner  * https://www.analog.com/en/products/ad7380.html
15c4ea781cSDavid Lechner  * https://www.analog.com/en/products/ad7381.html
166b2c8019SDavid Lechner  * https://www.analog.com/en/products/ad7383.html
176b2c8019SDavid Lechner  * https://www.analog.com/en/products/ad7384.html
182043594dSJulien Stephan  * https://www.analog.com/en/products/ad7386.html
192043594dSJulien Stephan  * https://www.analog.com/en/products/ad7387.html
202043594dSJulien Stephan  * https://www.analog.com/en/products/ad7388.html
211a291cc8SJulien Stephan  * https://www.analog.com/en/products/ad7380-4.html
221a291cc8SJulien Stephan  * https://www.analog.com/en/products/ad7381-4.html
231a291cc8SJulien Stephan  * https://www.analog.com/en/products/ad7383-4.html
241a291cc8SJulien Stephan  * https://www.analog.com/en/products/ad7384-4.html
252043594dSJulien Stephan  * https://www.analog.com/en/products/ad7386-4.html
262043594dSJulien Stephan  * https://www.analog.com/en/products/ad7387-4.html
272043594dSJulien Stephan  * https://www.analog.com/en/products/ad7388-4.html
28*ebe0b2a8SDavid Lechner  * https://www.analog.com/en/products/ad7389-4.html
2919406b0aSJulien Stephan  * https://www.analog.com/en/products/adaq4370-4.html
3019406b0aSJulien Stephan  * https://www.analog.com/en/products/adaq4380-4.html
317131fcdbSJulien Stephan  * https://www.analog.com/en/products/adaq4381-4.html
322043594dSJulien Stephan
33c4ea781cSDavid Lechner
34c4ea781cSDavid Lechner$ref: /schemas/spi/spi-peripheral-props.yaml#
35c4ea781cSDavid Lechner
36c4ea781cSDavid Lechnerproperties:
37c4ea781cSDavid Lechner  compatible:
38c4ea781cSDavid Lechner    enum:
39c4ea781cSDavid Lechner      - adi,ad7380
40c4ea781cSDavid Lechner      - adi,ad7381
416b2c8019SDavid Lechner      - adi,ad7383
426b2c8019SDavid Lechner      - adi,ad7384
432043594dSJulien Stephan      - adi,ad7386
442043594dSJulien Stephan      - adi,ad7387
452043594dSJulien Stephan      - adi,ad7388
461a291cc8SJulien Stephan      - adi,ad7380-4
471a291cc8SJulien Stephan      - adi,ad7381-4
481a291cc8SJulien Stephan      - adi,ad7383-4
491a291cc8SJulien Stephan      - adi,ad7384-4
502043594dSJulien Stephan      - adi,ad7386-4
512043594dSJulien Stephan      - adi,ad7387-4
522043594dSJulien Stephan      - adi,ad7388-4
53*ebe0b2a8SDavid Lechner      - adi,ad7389-4
5419406b0aSJulien Stephan      - adi,adaq4370-4
5519406b0aSJulien Stephan      - adi,adaq4380-4
567131fcdbSJulien Stephan      - adi,adaq4381-4
57c4ea781cSDavid Lechner
58c4ea781cSDavid Lechner  reg:
59c4ea781cSDavid Lechner    maxItems: 1
60c4ea781cSDavid Lechner
61c4ea781cSDavid Lechner  spi-max-frequency:
62c4ea781cSDavid Lechner    maximum: 80000000
63c4ea781cSDavid Lechner  spi-cpol: true
64c4ea781cSDavid Lechner  spi-cpha: true
65c4ea781cSDavid Lechner
66c4ea781cSDavid Lechner  vcc-supply:
67c4ea781cSDavid Lechner    description: A 3V to 3.6V supply that powers the chip.
68c4ea781cSDavid Lechner
69c4ea781cSDavid Lechner  vlogic-supply:
70c4ea781cSDavid Lechner    description:
71c4ea781cSDavid Lechner      A 1.65V to 3.6V supply for the logic pins.
72c4ea781cSDavid Lechner
73c4ea781cSDavid Lechner  refio-supply:
74c4ea781cSDavid Lechner    description:
75c4ea781cSDavid Lechner      A 2.5V to 3.3V supply for the external reference voltage. When omitted,
76c4ea781cSDavid Lechner      the internal 2.5V reference is used.
77c4ea781cSDavid Lechner
78fbe5956eSJulien Stephan  refin-supply:
79fbe5956eSJulien Stephan    description:
80fbe5956eSJulien Stephan      A 2.5V to 3.3V supply for external reference voltage, for ad7380-4 only.
8119406b0aSJulien Stephan      For adaq devices, a 5V supply voltage. A 3.3V internal reference is
8219406b0aSJulien Stephan      derived from it. Connect to vs-p-supply for normal operation.
8319406b0aSJulien Stephan
8419406b0aSJulien Stephan  vs-p-supply:
8519406b0aSJulien Stephan    description:
8619406b0aSJulien Stephan      Amplifiers positive supply.
8719406b0aSJulien Stephan
8819406b0aSJulien Stephan  vs-n-supply:
8919406b0aSJulien Stephan    description:
9019406b0aSJulien Stephan      Amplifiers negative supply.
9119406b0aSJulien Stephan
9219406b0aSJulien Stephan  ldo-supply:
9319406b0aSJulien Stephan    description:
9419406b0aSJulien Stephan      LDO supply. Connect to vs-p-supply or a 3.6 to 5.5 V supply.
95fbe5956eSJulien Stephan
966b2c8019SDavid Lechner  aina-supply:
976b2c8019SDavid Lechner    description:
986b2c8019SDavid Lechner      The common mode voltage supply for the AINA- pin on pseudo-differential
996b2c8019SDavid Lechner      chips.
1006b2c8019SDavid Lechner
1016b2c8019SDavid Lechner  ainb-supply:
1026b2c8019SDavid Lechner    description:
1036b2c8019SDavid Lechner      The common mode voltage supply for the AINB- pin on pseudo-differential
1046b2c8019SDavid Lechner      chips.
1056b2c8019SDavid Lechner
1061a291cc8SJulien Stephan  ainc-supply:
1071a291cc8SJulien Stephan    description:
1081a291cc8SJulien Stephan      The common mode voltage supply for the AINC- pin on pseudo-differential
1091a291cc8SJulien Stephan      chips.
1101a291cc8SJulien Stephan
1111a291cc8SJulien Stephan  aind-supply:
1121a291cc8SJulien Stephan    description:
1131a291cc8SJulien Stephan      The common mode voltage supply for the AIND- pin on pseudo-differential
1141a291cc8SJulien Stephan      chips.
1151a291cc8SJulien Stephan
116c4ea781cSDavid Lechner  interrupts:
117c4ea781cSDavid Lechner    description:
118c4ea781cSDavid Lechner      When the device is using 1-wire mode, this property is used to optionally
119c4ea781cSDavid Lechner      specify the ALERT interrupt.
120c4ea781cSDavid Lechner    maxItems: 1
121c4ea781cSDavid Lechner
12219406b0aSJulien Stephan  "#address-cells":
12319406b0aSJulien Stephan    const: 1
12419406b0aSJulien Stephan
12519406b0aSJulien Stephan  "#size-cells":
12619406b0aSJulien Stephan    const: 0
12719406b0aSJulien Stephan
128c4ea781cSDavid Lechnerrequired:
129c4ea781cSDavid Lechner  - compatible
130c4ea781cSDavid Lechner  - reg
131c4ea781cSDavid Lechner  - vcc-supply
132c4ea781cSDavid Lechner  - vlogic-supply
133c4ea781cSDavid Lechner
13419406b0aSJulien StephanpatternProperties:
13519406b0aSJulien Stephan  "^channel@[0-3]$":
13619406b0aSJulien Stephan    $ref: adc.yaml
13719406b0aSJulien Stephan    type: object
13819406b0aSJulien Stephan
13919406b0aSJulien Stephan    properties:
14019406b0aSJulien Stephan      reg:
14119406b0aSJulien Stephan        description:
14219406b0aSJulien Stephan          The channel number. From 0 to 3 corresponding to channels A,B,C,D
14319406b0aSJulien Stephan        minimum: 0
14419406b0aSJulien Stephan        maximum: 3
14519406b0aSJulien Stephan
14619406b0aSJulien Stephan      adi,gain-milli:
14719406b0aSJulien Stephan        description:
14819406b0aSJulien Stephan          The hardware gain applied to the ADC input (in milli units).
14919406b0aSJulien Stephan          If not present, default to 1000 (no actual gain applied).
15019406b0aSJulien Stephan          Refer to the typical connection diagrams section of the datasheet for
15119406b0aSJulien Stephan          pin wiring.
15219406b0aSJulien Stephan        $ref: /schemas/types.yaml#/definitions/uint16
15319406b0aSJulien Stephan        enum: [300, 600, 1000, 1600]
15419406b0aSJulien Stephan        default: 1000
15519406b0aSJulien Stephan
15619406b0aSJulien Stephan    required:
15719406b0aSJulien Stephan      - reg
15819406b0aSJulien Stephan
15919406b0aSJulien Stephan    additionalProperties: false
16019406b0aSJulien Stephan
161c4ea781cSDavid LechnerunevaluatedProperties: false
162c4ea781cSDavid Lechner
1636b2c8019SDavid LechnerallOf:
1646b2c8019SDavid Lechner  # pseudo-differential chips require common mode voltage supplies,
1656b2c8019SDavid Lechner  # true differential chips don't use them
1666b2c8019SDavid Lechner  - if:
1676b2c8019SDavid Lechner      properties:
1686b2c8019SDavid Lechner        compatible:
1696b2c8019SDavid Lechner          enum:
1706b2c8019SDavid Lechner            - adi,ad7383
1716b2c8019SDavid Lechner            - adi,ad7384
1721a291cc8SJulien Stephan            - adi,ad7383-4
1731a291cc8SJulien Stephan            - adi,ad7384-4
1746b2c8019SDavid Lechner    then:
1756b2c8019SDavid Lechner      required:
1766b2c8019SDavid Lechner        - aina-supply
1776b2c8019SDavid Lechner        - ainb-supply
1786b2c8019SDavid Lechner    else:
1796b2c8019SDavid Lechner      properties:
1806b2c8019SDavid Lechner        aina-supply: false
1816b2c8019SDavid Lechner        ainb-supply: false
1821a291cc8SJulien Stephan  - if:
1831a291cc8SJulien Stephan      properties:
1841a291cc8SJulien Stephan        compatible:
1851a291cc8SJulien Stephan          enum:
1861a291cc8SJulien Stephan            - adi,ad7383-4
1871a291cc8SJulien Stephan            - adi,ad7384-4
1881a291cc8SJulien Stephan    then:
1891a291cc8SJulien Stephan      required:
1901a291cc8SJulien Stephan        - ainc-supply
1911a291cc8SJulien Stephan        - aind-supply
1921a291cc8SJulien Stephan    else:
1931a291cc8SJulien Stephan      properties:
1941a291cc8SJulien Stephan        ainc-supply: false
1951a291cc8SJulien Stephan        aind-supply: false
1966b2c8019SDavid Lechner
197fbe5956eSJulien Stephan  # ad7380-4 uses refin-supply as external reference.
19819406b0aSJulien Stephan  # adaq devices use internal reference only, derived from refin-supply
199fbe5956eSJulien Stephan  # All other chips from ad738x family use refio as optional external reference.
200fbe5956eSJulien Stephan  # When refio-supply is omitted, internal reference is used.
201fbe5956eSJulien Stephan  - if:
202fbe5956eSJulien Stephan      properties:
203fbe5956eSJulien Stephan        compatible:
204fbe5956eSJulien Stephan          enum:
205fbe5956eSJulien Stephan            - adi,ad7380-4
20619406b0aSJulien Stephan            - adi,adaq4370-4
20719406b0aSJulien Stephan            - adi,adaq4380-4
2087131fcdbSJulien Stephan            - adi,adaq4381-4
209fbe5956eSJulien Stephan    then:
210fbe5956eSJulien Stephan      properties:
211fbe5956eSJulien Stephan        refio-supply: false
212fbe5956eSJulien Stephan      required:
213fbe5956eSJulien Stephan        - refin-supply
214fbe5956eSJulien Stephan    else:
215fbe5956eSJulien Stephan      properties:
216fbe5956eSJulien Stephan        refin-supply: false
217fbe5956eSJulien Stephan
218*ebe0b2a8SDavid Lechner  # adi,ad7389-4 is internal reference only
219*ebe0b2a8SDavid Lechner  - if:
220*ebe0b2a8SDavid Lechner      properties:
221*ebe0b2a8SDavid Lechner        compatible:
222*ebe0b2a8SDavid Lechner          const: adi,ad7389-4
223*ebe0b2a8SDavid Lechner    then:
224*ebe0b2a8SDavid Lechner      properties:
225*ebe0b2a8SDavid Lechner        refio-supply: false
226*ebe0b2a8SDavid Lechner
22719406b0aSJulien Stephan  # adaq devices need more supplies and using channel to declare gain property
22819406b0aSJulien Stephan  # only applies to adaq devices
22919406b0aSJulien Stephan  - if:
23019406b0aSJulien Stephan      properties:
23119406b0aSJulien Stephan        compatible:
23219406b0aSJulien Stephan          enum:
23319406b0aSJulien Stephan            - adi,adaq4370-4
23419406b0aSJulien Stephan            - adi,adaq4380-4
2357131fcdbSJulien Stephan            - adi,adaq4381-4
23619406b0aSJulien Stephan    then:
23719406b0aSJulien Stephan      required:
23819406b0aSJulien Stephan        - vs-p-supply
23919406b0aSJulien Stephan        - vs-n-supply
24019406b0aSJulien Stephan        - ldo-supply
24119406b0aSJulien Stephan    else:
24219406b0aSJulien Stephan      properties:
24319406b0aSJulien Stephan        vs-p-supply: false
24419406b0aSJulien Stephan        vs-n-supply: false
24519406b0aSJulien Stephan        ldo-supply: false
24619406b0aSJulien Stephan      patternProperties:
24719406b0aSJulien Stephan        "^channel@[0-3]$": false
24819406b0aSJulien Stephan
249c4ea781cSDavid Lechnerexamples:
250c4ea781cSDavid Lechner  - |
251c4ea781cSDavid Lechner    #include <dt-bindings/interrupt-controller/irq.h>
252c4ea781cSDavid Lechner
253c4ea781cSDavid Lechner    spi {
254c4ea781cSDavid Lechner        #address-cells = <1>;
255c4ea781cSDavid Lechner        #size-cells = <0>;
256c4ea781cSDavid Lechner
257c4ea781cSDavid Lechner        adc@0 {
258c4ea781cSDavid Lechner            compatible = "adi,ad7380";
259c4ea781cSDavid Lechner            reg = <0>;
260c4ea781cSDavid Lechner
261c4ea781cSDavid Lechner            spi-cpol;
262c4ea781cSDavid Lechner            spi-cpha;
263c4ea781cSDavid Lechner            spi-max-frequency = <80000000>;
264c4ea781cSDavid Lechner
265c4ea781cSDavid Lechner            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
266c4ea781cSDavid Lechner            interrupt-parent = <&gpio0>;
267c4ea781cSDavid Lechner
268c4ea781cSDavid Lechner            vcc-supply = <&supply_3_3V>;
269c4ea781cSDavid Lechner            vlogic-supply = <&supply_3_3V>;
270c4ea781cSDavid Lechner            refio-supply = <&supply_2_5V>;
271c4ea781cSDavid Lechner        };
272c4ea781cSDavid Lechner    };
27319406b0aSJulien Stephan
27419406b0aSJulien Stephan  - |
27519406b0aSJulien Stephan    #include <dt-bindings/interrupt-controller/irq.h>
27619406b0aSJulien Stephan
27719406b0aSJulien Stephan    spi {
27819406b0aSJulien Stephan        #address-cells = <1>;
27919406b0aSJulien Stephan        #size-cells = <0>;
28019406b0aSJulien Stephan
28119406b0aSJulien Stephan        adc@0 {
28219406b0aSJulien Stephan            compatible = "adi,adaq4380-4";
28319406b0aSJulien Stephan            reg = <0>;
28419406b0aSJulien Stephan
28519406b0aSJulien Stephan            spi-cpol;
28619406b0aSJulien Stephan            spi-cpha;
28719406b0aSJulien Stephan            spi-max-frequency = <80000000>;
28819406b0aSJulien Stephan
28919406b0aSJulien Stephan            interrupts = <27 IRQ_TYPE_EDGE_FALLING>;
29019406b0aSJulien Stephan            interrupt-parent = <&gpio0>;
29119406b0aSJulien Stephan
29219406b0aSJulien Stephan            vcc-supply = <&supply_3_3V>;
29319406b0aSJulien Stephan            vlogic-supply = <&supply_3_3V>;
29419406b0aSJulien Stephan            refin-supply = <&supply_5V>;
29519406b0aSJulien Stephan            vs-p-supply = <&supply_5V>;
29619406b0aSJulien Stephan            vs-n-supply = <&supply_0V>;
29719406b0aSJulien Stephan            ldo-supply = <&supply_5V>;
29819406b0aSJulien Stephan
29919406b0aSJulien Stephan            #address-cells = <1>;
30019406b0aSJulien Stephan            #size-cells = <0>;
30119406b0aSJulien Stephan
30219406b0aSJulien Stephan            channel@0 {
30319406b0aSJulien Stephan                reg = <0>;
30419406b0aSJulien Stephan                adi,gain-milli = /bits/ 16 <300>;
30519406b0aSJulien Stephan            };
30619406b0aSJulien Stephan
30719406b0aSJulien Stephan            channel@2 {
30819406b0aSJulien Stephan                reg = <2>;
30919406b0aSJulien Stephan                adi,gain-milli = /bits/ 16 <600>;
31019406b0aSJulien Stephan            };
31119406b0aSJulien Stephan
31219406b0aSJulien Stephan            channel@3 {
31319406b0aSJulien Stephan                reg = <3>;
31419406b0aSJulien Stephan                adi,gain-milli = /bits/ 16 <1000>;
31519406b0aSJulien Stephan            };
31619406b0aSJulien Stephan        };
31719406b0aSJulien Stephan    };
318