GNU Linux-libre 6.1.90-gnu
[releases.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/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
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
55 required:
56   - compatible
57   - reg
58   - clocks
59   - clock-names
60   - interrupts
61
62 patternProperties:
63   "^channel@([0-9]|1[0-5])$":
64     $ref: "adc.yaml"
65     type: object
66     description: |
67       Represents the external channels which are connected to the ADC.
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         $ref: /schemas/types.yaml#/definitions/uint32
87         enum: [0, 1, 3]
88
89       diff-channels: true
90
91       bipolar: true
92
93       adi,buffered-positive:
94         description: Enable buffered mode for positive input.
95         type: boolean
96
97       adi,buffered-negative:
98         description: Enable buffered mode for negative input.
99         type: boolean
100
101     required:
102       - reg
103       - diff-channels
104
105     additionalProperties: false
106
107 allOf:
108   - $ref: /schemas/spi/spi-peripheral-props.yaml#
109
110 unevaluatedProperties: false
111
112 examples:
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     };