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