GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / iio / dac / adi,ad5758.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,ad5758.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Analog Devices AD5758 DAC
8
9 maintainers:
10   - Michael Hennerich <Michael.Hennerich@analog.com>
11
12 properties:
13   compatible:
14     const: adi,ad5758
15
16   reg:
17     maxItems: 1
18
19   spi-cpha: true
20
21   adi,dc-dc-mode:
22     $ref: /schemas/types.yaml#/definitions/uint32
23     enum: [1, 2, 3]
24     description: |
25       Mode of operation of the dc-to-dc converter
26       Dynamic Power Control (DPC)
27       In this mode, the AD5758 circuitry senses the output voltage and
28       dynamically regulates the supply voltage, VDPC+, to meet compliance
29       requirements plus an optimized headroom voltage for the output buffer.
30
31       Programmable Power Control (PPC)
32       In this mode, the VDPC+ voltage is user-programmable to a fixed level
33       that needs to accommodate the maximum output load required.
34
35       The output of the DAC core is either converted to a current or
36       voltage output at the VIOUT pin. Only one mode can be enabled at
37       any one time.
38
39       The following values are currently supported:
40       * 1: DPC current mode
41       * 2: DPC voltage mode
42       * 3: PPC current mode
43
44       Depending on the selected output mode (voltage or current) one of the
45       two properties must be present:
46
47   adi,range-microvolt:
48     description: |
49       Voltage output range specified as <minimum, maximum>
50     oneOf:
51       - items:
52           - const: 0
53           - enum: [5000000, 10000000]
54       - items:
55           - const: -5000000
56           - const: 5000000
57       - items:
58           - const: -10000000
59           - const: 10000000
60
61   adi,range-microamp:
62     description: |
63       Current output range specified as <minimum, maximum>
64     oneOf:
65       - items:
66           - const: 0
67           - enum: [20000, 24000]
68       - items:
69           - const: 4
70           - const: 24000
71       - items:
72           - const: -20000
73           - const: 20000
74       - items:
75           - const: -24000
76           - const: 24000
77       - items:
78           - const: -1000
79           - const: 22000
80
81   reset-gpios:
82     maxItems: 1
83
84   adi,dc-dc-ilim-microamp:
85     enum: [150000, 200000, 250000, 300000, 350000, 400000]
86     description: |
87       The dc-to-dc converter current limit.
88
89   adi,slew-time-us:
90     description: |
91       The time it takes for the output to reach the full scale [uS]
92     minimum: 133
93     maximum: 1023984375
94
95 required:
96   - compatible
97   - reg
98   - spi-cpha
99   - adi,dc-dc-mode
100
101 allOf:
102   - $ref: /schemas/spi/spi-peripheral-props.yaml#
103   - if:
104       properties:
105         adi,dc-dc-mode:
106           enum: [1, 3]
107     then:
108       properties:
109         adi,range-microvolt: false
110       required:
111         - adi,range-microamp
112     else:
113       properties:
114         adi,range-microamp: false
115       required:
116         - adi,range-microvolt
117
118 unevaluatedProperties: false
119
120 examples:
121   - |
122     spi {
123         #address-cells = <1>;
124         #size-cells = <0>;
125
126         dac@0 {
127             compatible = "adi,ad5758";
128             reg = <0>;
129             spi-max-frequency = <1000000>;
130             spi-cpha;
131
132             reset-gpios = <&gpio 22 0>;
133
134             adi,dc-dc-mode = <2>;
135             adi,range-microvolt = <0 10000000>;
136             adi,dc-dc-ilim-microamp = <200000>;
137             adi,slew-time-us = <125000>;
138         };
139     };
140 ...