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    maxItems: 1
49
50  refin2-supply:
51    description: refin2 supply can be used as reference for conversion.
52    maxItems: 1
53
54  avdd-supply:
55    description: avdd supply can be used as reference for conversion.
56    maxItems: 1
57
58required:
59  - compatible
60  - reg
61  - clocks
62  - clock-names
63  - interrupts
64
65patternProperties:
66  "^channel@([0-9]|1[0-5])$":
67    type: object
68    description: |
69      Represents the external channels which are connected to the ADC.
70      See Documentation/devicetree/bindings/iio/adc/adc.txt.
71
72    properties:
73      reg:
74        description: |
75          The channel number. It can have up to 8 channels on ad7124-4
76          and 16 channels on ad7124-8, numbered from 0 to 15.
77        items:
78         minimum: 0
79         maximum: 15
80
81      adi,reference-select:
82        description: |
83          Select the reference source to use when converting on
84          the specific channel. Valid values are:
85          0: REFIN1(+)/REFIN1(−).
86          1: REFIN2(+)/REFIN2(−).
87          3: AVDD
88          If this field is left empty, internal reference is selected.
89        allOf:
90          - $ref: /schemas/types.yaml#/definitions/uint32
91          - enum: [0, 1, 3]
92
93      diff-channels:
94        description: see Documentation/devicetree/bindings/iio/adc/adc.txt
95        items:
96          minimum: 0
97          maximum: 15
98
99      bipolar:
100        description: see Documentation/devicetree/bindings/iio/adc/adc.txt
101        type: boolean
102
103      adi,buffered-positive:
104        description: Enable buffered mode for positive input.
105        type: boolean
106
107      adi,buffered-negative:
108        description: Enable buffered mode for negative input.
109        type: boolean
110
111    required:
112      - reg
113      - diff-channels
114
115examples:
116  - |
117    spi {
118      #address-cells = <1>;
119      #size-cells = <0>;
120
121      adc@0 {
122        compatible = "adi,ad7124-4";
123        reg = <0>;
124        spi-max-frequency = <5000000>;
125        interrupts = <25 2>;
126        interrupt-parent = <&gpio>;
127        refin1-supply = <&adc_vref>;
128        clocks = <&ad7124_mclk>;
129        clock-names = "mclk";
130
131        #address-cells = <1>;
132        #size-cells = <0>;
133
134        channel@0 {
135          reg = <0>;
136          diff-channels = <0 1>;
137          adi,reference-select = <0>;
138          adi,buffered-positive;
139        };
140
141        channel@1 {
142          reg = <1>;
143          bipolar;
144          diff-channels = <2 3>;
145          adi,reference-select = <0>;
146          adi,buffered-positive;
147          adi,buffered-negative;
148        };
149
150        channel@2 {
151          reg = <2>;
152          diff-channels = <4 5>;
153        };
154
155        channel@3 {
156          reg = <3>;
157          diff-channels = <6 7>;
158        };
159      };
160    };
161