Merge branch 'for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / iio / dac / adi,ad5592r.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,ad5592r.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Analog Devices AD5592R/AD5593R DAC/ADC
8
9 maintainers:
10   - Michael Hennerich <michael.hennerich@analog.com>
11
12 properties:
13   compatible:
14     enum:
15       - adi,ad5592r
16       - adi,ad5593r
17
18   reg:
19     maxItems: 1
20
21   spi-max-frequency:
22     maximum: 30000000
23
24   spi-cpol: true
25
26   "#address-cells":
27     const: 1
28
29   "#size-cells":
30     const: 0
31
32   "#io-channel-cells":
33     const: 1
34
35   vref-supply:
36     description: If not set internal 2.5V reference used.
37
38   reset-gpios:
39     maxItems: 1
40
41   gpio-controller:
42     description: Marks the device node as a GPIO controller.
43
44   "#gpio-cells":
45     const: 2
46     description:
47       The first cell is the GPIO number and the second cell specifies
48       GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
49
50 required:
51   - compatible
52   - reg
53   - "#address-cells"
54   - "#size-cells"
55
56 allOf:
57   - if:
58       properties:
59         compatible:
60           contains:
61             const: adi,ad5592r
62     then:
63       required:
64         - spi-cpol
65     else:
66       properties:
67         spi-cpol: false
68
69 additionalProperties: false
70
71 patternProperties:
72   "^(channel@)[0-7]$":
73     type: object
74     description: Child node to describe a channel
75     properties:
76       reg:
77         minimum: 0
78         maximum: 7
79
80       adi,mode:
81         $ref: /schemas/types.yaml#/definitions/uint32
82         enum: [0, 1, 2, 3, 8]
83         description: |
84           Mode or function of this channel.
85           Macros specifying the valid values can be found in
86           <dt-bindings/iio/adi,ad5592r.h>.
87
88           The following values are currently supported:
89           * CH_MODE_UNUSED (the pin is unused)
90           * CH_MODE_ADC (the pin is ADC input)
91           * CH_MODE_DAC (the pin is DAC output)
92           * CH_MODE_DAC_AND_ADC (the pin is DAC output but can be monitored
93             by an ADC, since there is no disadvantage this should be
94             considered as the preferred DAC mode)
95           * CH_MODE_GPIO (the pin is registered with GPIOLIB)
96
97       adi,off-state:
98         $ref: /schemas/types.yaml#/definitions/uint32
99         enum: [0, 1, 2, 3]
100         description: |
101           State of this channel when unused or the device gets removed.
102           Macros specifying the  valid values can be found in
103           <dt-bindings/iio/adi,ad5592r.h>.
104           * CH_OFFSTATE_PULLDOWN (the pin is pulled down)
105           * CH_OFFSTATE_OUT_LOW  (the pin is output low)
106           * CH_OFFSTATE_OUT_HIGH (the pin is output high)
107           * CH_OFFSTATE_OUT_TRISTATE (the pin is tristated output)
108
109     required:
110       - reg
111       - adi,mode
112
113     additionalProperties: false
114
115 examples:
116   - |
117     #include <dt-bindings/iio/adi,ad5592r.h>
118     spi {
119         #address-cells = <1>;
120         #size-cells = <0>;
121
122         addac@0 {
123             compatible = "adi,ad5592r";
124             #size-cells = <0>;
125             #address-cells = <1>;
126             #gpio-cells = <2>;
127             reg = <0>;
128
129             spi-max-frequency = <1000000>;
130             spi-cpol;
131
132             vref-supply = <&vref>;
133             reset-gpios = <&gpio0 86 0>;
134             gpio-controller;
135
136             channel@0 {
137                 reg = <0>;
138                 adi,mode = <CH_MODE_DAC>;
139             };
140             channel@1 {
141                 reg = <1>;
142                 adi,mode = <CH_MODE_ADC>;
143             };
144             channel@2 {
145                 reg = <2>;
146                 adi,mode = <CH_MODE_DAC_AND_ADC>;
147             };
148             channel@3 {
149                 reg = <3>;
150                 adi,mode = <CH_MODE_DAC_AND_ADC>;
151                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
152             };
153             channel@4 {
154                 reg = <4>;
155                 adi,mode = <CH_MODE_UNUSED>;
156                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
157             };
158             channel@5 {
159                 reg = <5>;
160                 adi,mode = <CH_MODE_GPIO>;
161                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
162             };
163             channel@6 {
164                 reg = <6>;
165                 adi,mode = <CH_MODE_GPIO>;
166                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
167             };
168             channel@7 {
169                 reg = <7>;
170                 adi,mode = <CH_MODE_GPIO>;
171                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
172             };
173         };
174         ad5593r@10 {
175             compatible = "adi,ad5593r";
176             #size-cells = <0>;
177             #address-cells = <1>;
178             #gpio-cells = <2>;
179             reg = <0x10>;
180             gpio-controller;
181
182             channel@0 {
183                 reg = <0>;
184                 adi,mode = <CH_MODE_DAC>;
185                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
186             };
187             channel@1 {
188                 reg = <1>;
189                 adi,mode = <CH_MODE_ADC>;
190                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
191             };
192             channel@2 {
193                 reg = <2>;
194                 adi,mode = <CH_MODE_DAC_AND_ADC>;
195                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
196             };
197             channel@6 {
198                 reg = <6>;
199                 adi,mode = <CH_MODE_GPIO>;
200                 adi,off-state = <CH_OFFSTATE_PULLDOWN>;
201             };
202         };
203     };
204 ...