1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2# Copyright 2019 Analog Devices Inc.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/bindings/iio/adc/adi,ad7124.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Analog Devices AD7124 ADC device driver
9
10maintainers:
11  - Stefan Popa <stefan.popa@analog.com>
12
13description: |
14  Bindings for the Analog Devices AD7124 ADC device. Datasheet can be
15  found here:
16    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7124-8.pdf
17
18properties:
19  compatible:
20    enum:
21      - adi,ad7124-4
22      - adi,ad7124-8
23
24  reg:
25    description: SPI chip select number for the device
26    maxItems: 1
27
28  clocks:
29    maxItems: 1
30    description: phandle to the master clock (mclk)
31
32  clock-names:
33    items:
34      - const: mclk
35
36  interrupts:
37    description: IRQ line for the ADC
38    maxItems: 1
39
40  '#address-cells':
41    const: 1
42
43  '#size-cells':
44    const: 0
45
46  refin1-supply:
47    description: refin1 supply can be used as reference for conversion.
48
49  refin2-supply:
50    description: refin2 supply can be used as reference for conversion.
51
52  avdd-supply:
53    description: avdd supply can be used as reference for conversion.
54
55required:
56  - compatible
57  - reg
58  - clocks
59  - clock-names
60  - interrupts
61
62patternProperties:
63  "^channel@([0-9]|1[0-5])$":
64    type: object
65    description: |
66      Represents the external channels which are connected to the ADC.
67      See Documentation/devicetree/bindings/iio/adc/adc.txt.
68
69    properties:
70      reg:
71        description: |
72          The channel number. It can have up to 8 channels on ad7124-4
73          and 16 channels on ad7124-8, numbered from 0 to 15.
74        items:
75         minimum: 0
76         maximum: 15
77
78      adi,reference-select:
79        description: |
80          Select the reference source to use when converting on
81          the specific channel. Valid values are:
82          0: REFIN1(+)/REFIN1(−).
83          1: REFIN2(+)/REFIN2(−).
84          3: AVDD
85          If this field is left empty, internal reference is selected.
86        allOf:
87          - $ref: /schemas/types.yaml#/definitions/uint32
88          - enum: [0, 1, 3]
89
90      diff-channels:
91        description: see Documentation/devicetree/bindings/iio/adc/adc.txt
92        items:
93          minimum: 0
94          maximum: 15
95
96      bipolar:
97        description: see Documentation/devicetree/bindings/iio/adc/adc.txt
98        type: boolean
99
100      adi,buffered-positive:
101        description: Enable buffered mode for positive input.
102        type: boolean
103
104      adi,buffered-negative:
105        description: Enable buffered mode for negative input.
106        type: boolean
107
108    required:
109      - reg
110      - diff-channels
111
112examples:
113  - |
114    spi {
115      #address-cells = <1>;
116      #size-cells = <0>;
117
118      adc@0 {
119        compatible = "adi,ad7124-4";
120        reg = <0>;
121        spi-max-frequency = <5000000>;
122        interrupts = <25 2>;
123        interrupt-parent = <&gpio>;
124        refin1-supply = <&adc_vref>;
125        clocks = <&ad7124_mclk>;
126        clock-names = "mclk";
127
128        #address-cells = <1>;
129        #size-cells = <0>;
130
131        channel@0 {
132          reg = <0>;
133          diff-channels = <0 1>;
134          adi,reference-select = <0>;
135          adi,buffered-positive;
136        };
137
138        channel@1 {
139          reg = <1>;
140          bipolar;
141          diff-channels = <2 3>;
142          adi,reference-select = <0>;
143          adi,buffered-positive;
144          adi,buffered-negative;
145        };
146
147        channel@2 {
148          reg = <2>;
149          diff-channels = <4 5>;
150        };
151
152        channel@3 {
153          reg = <3>;
154          diff-channels = <6 7>;
155        };
156      };
157    };
158