Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / iio / dac / adi,ad5064.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/iio/dac/adi,ad5064.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Analog Devices AD5064 and similar DACs
8
9 maintainers:
10   - Lars-Peter Clausen <lars@metafoo.de>
11   - Jonathan Cameron <jic23@kernel.org>
12
13 description: |
14    A range of similar DAC devices with between 1 and 12 channels. Some parts
15    have internal references, others require a single shared external reference
16    and the remainder have a separate reference pin for each DAC.
17
18 properties:
19   compatible:
20     oneOf:
21       - description: I2C devics
22         enum:
23           - adi,ad5024
24           - adi,ad5025
25           - adi,ad5044
26           - adi,ad5045
27           - adi,ad5064
28           - adi,ad5064-1
29           - adi,ad5065
30           - adi,ad5628-1
31           - adi,ad5628-2
32           - adi,ad5648-1
33           - adi,ad5648-2
34           - adi,ad5666-1
35           - adi,ad5666-2
36           - adi,ad5668-1
37           - adi,ad5668-2
38           - adi,ad5668-3
39       - description: SPI devices
40         enum:
41           - adi,ad5625
42           - adi,ad5625r-1v25
43           - adi,ad5625r-2v5
44           - adi,ad5627
45           - adi,ad5627r-1v25
46           - adi,ad5627r-2v5
47           - adi,ad5629-1
48           - adi,ad5629-2
49           - adi,ad5629-3
50           - adi,ad5645r-1v25
51           - adi,ad5645r-2v5
52           - adi,ad5665
53           - adi,ad5665r-1v25
54           - adi,ad5665r-2v5
55           - adi,ad5667
56           - adi,ad5667r-1v25
57           - adi,ad5667r-2v5
58           - adi,ad5669-1
59           - adi,ad5669-2
60           - adi,ad5669-3
61           - lltc,ltc2606
62           - lltc,ltc2607
63           - lltc,ltc2609
64           - lltc,ltc2616
65           - lltc,ltc2617
66           - lltc,ltc2619
67           - lltc,ltc2626
68           - lltc,ltc2627
69           - lltc,ltc2629
70           - lltc,ltc2631-l12
71           - lltc,ltc2631-h12
72           - lltc,ltc2631-l10
73           - lltc,ltc2631-h10
74           - lltc,ltc2631-l8
75           - lltc,ltc2631-h8
76           - lltc,ltc2633-l12
77           - lltc,ltc2633-h12
78           - lltc,ltc2633-l10
79           - lltc,ltc2633-h10
80           - lltc,ltc2633-l8
81           - lltc,ltc2633-h8
82           - lltc,ltc2635-l12
83           - lltc,ltc2635-h12
84           - lltc,ltc2635-l10
85           - lltc,ltc2635-h10
86           - lltc,ltc2635-l8
87           - lltc,ltc2635-h8
88
89   reg:
90     maxItems: 1
91
92   vrefA-supply: true
93   vrefB-supply: true
94   vrefC-supply: true
95   vrefD-supply: true
96   vref-supply: true
97
98 required:
99   - compatible
100   - reg
101
102 allOf:
103   - $ref: /schemas/spi/spi-peripheral-props.yaml#
104   - # Shared external vref, no internal reference
105     if:
106       properties:
107         compatible:
108           contains:
109             enum:
110               - adi,ad5064-1
111               - adi,ad5625
112               - adi,ad5627
113               - adi,ad5665
114               - adi,ad5667
115               - lltc,ltc2606
116               - lltc,ltc2607
117               - lltc,ltc2616
118               - lltc,ltc2617
119               - lltc,ltc2626
120               - lltc,ltc2627
121     then:
122       properties:
123         vref-supply: true
124         vrefA-supply: false
125         vrefB-supply: false
126         vrefC-supply: false
127         vrefD-supply: false
128       required:
129         - vref-supply
130   - # Shared external vref, internal reference available
131     if:
132       properties:
133         compatible:
134           contains:
135             enum:
136               - adi,ad5625r-1v25
137               - adi,ad5625r-2v5
138               - adi,ad5627r-1v25
139               - adi,ad5627r-2v5
140               - adi,ad5628-1
141               - adi,ad5628-2
142               - adi,ad5629-1
143               - adi,ad5629-2
144               - adi,ad5629-3
145               - adi,ad5645r-1v25
146               - adi,ad5645r-2v5
147               - adi,ad5647r-1v25
148               - adi,ad5647r-2v5
149               - adi,ad5648-1
150               - adi,ad5648-2
151               - adi,ad5665r-1v25
152               - adi,ad5665r-2v5
153               - adi,ad5666-1
154               - adi,ad5666-2
155               - adi,ad5667r-1v25
156               - adi,ad5667r-2v5
157               - adi,ad5668-1
158               - adi,ad5668-2
159               - adi,ad5668-3
160               - adi,ad5669-1
161               - adi,ad5669-2
162               - adi,ad5669-3
163               - lltc,ltc2631-l12
164               - lltc,ltc2631-h12
165               - lltc,ltc2631-l10
166               - lltc,ltc2631-h10
167               - lltc,ltc2631-l8
168               - lltc,ltc2631-h8
169               - lltc,ltc2633-l12
170               - lltc,ltc2633-h12
171               - lltc,ltc2633-l10
172               - lltc,ltc2633-h10
173               - lltc,ltc2633-l8
174               - lltc,ltc2633-h8
175               - lltc,ltc2635-l12
176               - lltc,ltc2635-h12
177               - lltc,ltc2635-l10
178               - lltc,ltc2635-h10
179               - lltc,ltc2635-l8
180               - lltc,ltc2635-h8
181     then:
182       properties:
183         vref-supply: true
184         vrefA-supply: false
185         vrefB-supply: false
186         vrefC-supply: false
187         vrefD-supply: false
188   - # 4 input devices, separate vrefs, no internal reference
189     if:
190       properties:
191         compatible:
192           contains:
193             enum:
194               - adi,ad5024
195               - adi,ad5044
196               - adi,ad5064
197               - lltc,ltc2609
198               - lltc,ltc2619
199               - lltc,ltc2629
200     then:
201       properties:
202         vrefA-supply: true
203         vrefB-supply: true
204         vrefC-supply: true
205         vrefD-supply: true
206         vref-supply: false
207       required:
208         - vrefA-supply
209         - vrefB-supply
210         - vrefC-supply
211         - vrefD-supply
212   - # 2 input devices, separate vrefs, no internal reference
213     if:
214       properties:
215         compatible:
216           contains:
217             enum:
218               - adi,ad5025
219               - adi,ad5045
220               - adi,ad5065
221     then:
222       properties:
223         vrefA-supply: true
224         vrefB-supply: true
225         vrefC-supply: false
226         vrefD-supply: false
227         vref-supply: false
228       required:
229         - vrefA-supply
230         - vrefB-supply
231
232 unevaluatedProperties: false
233
234 examples:
235   - |
236     spi {
237         #address-cells = <1>;
238         #size-cells = <0>;
239         dac@0 {
240             reg = <0>;
241             compatible = "adi,ad5625";
242             vref-supply = <&dac_vref>;
243         };
244     };
245   - |
246     spi {
247         #address-cells = <1>;
248         #size-cells = <0>;
249         dac@0 {
250             reg = <0>;
251             compatible = "adi,ad5625r-1v25";
252         };
253     };
254   - |
255     i2c {
256         #address-cells = <1>;
257         #size-cells = <0>;
258         dac@42 {
259             reg = <0x42>;
260             compatible = "adi,ad5024";
261             vrefA-supply = <&dac_vref>;
262             vrefB-supply = <&dac_vref>;
263             vrefC-supply = <&dac_vref2>;
264             vrefD-supply = <&dac_vref2>;
265         };
266     };
267 ...