GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / iio / adc / adi,max11410.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 # Copyright 2022 Analog Devices Inc.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/iio/adc/adi,max11410.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Analog Devices MAX11410 ADC device driver
9
10 maintainers:
11   - Ibrahim Tilki <Ibrahim.Tilki@analog.com>
12
13 description: |
14   Bindings for the Analog Devices MAX11410 ADC device. Datasheet can be
15   found here:
16     https://datasheets.maximintegrated.com/en/ds/MAX11410.pdf
17
18 properties:
19   compatible:
20     enum:
21       - adi,max11410
22
23   reg:
24     maxItems: 1
25
26   interrupts:
27     minItems: 1
28     maxItems: 2
29
30   interrupt-names:
31     description: Name of the gpio pin of max11410 used for IRQ
32     minItems: 1
33     items:
34       - enum: [gpio0, gpio1]
35       - const: gpio1
36
37   '#address-cells':
38     const: 1
39
40   '#size-cells':
41     const: 0
42
43   avdd-supply:
44     description: Optional avdd supply. Used as reference when no explicit reference supplied.
45
46   vref0p-supply:
47     description: vref0p supply can be used as reference for conversion.
48
49   vref1p-supply:
50     description: vref1p supply can be used as reference for conversion.
51
52   vref2p-supply:
53     description: vref2p supply can be used as reference for conversion.
54
55   vref0n-supply:
56     description: vref0n supply can be used as reference for conversion.
57
58   vref1n-supply:
59     description: vref1n supply can be used as reference for conversion.
60
61   vref2n-supply:
62     description: vref2n supply can be used as reference for conversion.
63
64   spi-max-frequency:
65     maximum: 8000000
66
67 patternProperties:
68   "^channel(@[0-9])?$":
69     $ref: adc.yaml
70     type: object
71     description: Represents the external channels which are connected to the ADC.
72
73     properties:
74       reg:
75         description: The channel number in single-ended mode.
76         minimum: 0
77         maximum: 9
78
79       adi,reference:
80         description: |
81           Select the reference source to use when converting on
82           the specific channel. Valid values are:
83           0: VREF0P/VREF0N
84           1: VREF1P/VREF1N
85           2: VREF2P/VREF2N
86           3: AVDD/AGND
87           4: VREF0P/AGND
88           5: VREF1P/AGND
89           6: VREF2P/AGND
90           If this field is left empty, AVDD/AGND is selected.
91         $ref: /schemas/types.yaml#/definitions/uint32
92         enum: [0, 1, 2, 3, 4, 5, 6]
93         default: 3
94
95       adi,input-mode:
96         description: |
97           Select signal path of input channels. Valid values are:
98           0: Buffered, low-power, unity-gain path (default)
99           1: Bypass path
100           2: PGA path
101         $ref: /schemas/types.yaml#/definitions/uint32
102         enum: [0, 1, 2]
103         default: 0
104
105       diff-channels: true
106
107       bipolar: true
108
109       settling-time-us: true
110
111       adi,buffered-vrefp:
112         description: Enable buffered mode for positive reference.
113         type: boolean
114
115       adi,buffered-vrefn:
116         description: Enable buffered mode for negative reference.
117         type: boolean
118
119     required:
120       - reg
121
122     additionalProperties: false
123
124 required:
125   - compatible
126   - reg
127
128 allOf:
129   - $ref: /schemas/spi/spi-peripheral-props.yaml#
130
131 unevaluatedProperties: false
132
133 examples:
134   - |
135     #include <dt-bindings/interrupt-controller/irq.h>
136     spi {
137         #address-cells = <1>;
138         #size-cells = <0>;
139
140         adc@0 {
141             reg = <0>;
142             compatible = "adi,max11410";
143             spi-max-frequency = <8000000>;
144
145             interrupt-parent = <&gpio>;
146             interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
147             interrupt-names = "gpio1";
148
149             avdd-supply = <&adc_avdd>;
150
151             vref1p-supply = <&adc_vref1p>;
152             vref1n-supply = <&adc_vref1n>;
153
154             #address-cells = <1>;
155             #size-cells = <0>;
156
157             channel@0 {
158                 reg = <0>;
159             };
160
161             channel@1 {
162                 reg = <1>;
163                 diff-channels = <2 3>;
164                 adi,reference = <1>;
165                 bipolar;
166                 settling-time-us = <100000>;
167             };
168
169             channel@2 {
170                 reg = <2>;
171                 diff-channels = <7 9>;
172                 adi,reference = <5>;
173                 adi,input-mode = <2>;
174                 settling-time-us = <50000>;
175             };
176         };
177     };