Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / Documentation / devicetree / bindings / iio / adc / adi,ad7124.yaml
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
8 title: Analog Devices AD7124 ADC device driver
9
10 maintainers:
11   - Stefan Popa <stefan.popa@analog.com>
12
13 description: |
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
18 properties:
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
58 required:
59   - compatible
60   - reg
61   - clocks
62   - clock-names
63   - interrupts
64
65 patternProperties:
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
115 examples:
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     };