Merge tag 'riscv/for-v5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / regulator / regulator.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/regulator/regulator.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Voltage/Current Regulators
8
9 maintainers:
10   - Liam Girdwood <lgirdwood@gmail.com>
11   - Mark Brown <broonie@kernel.org>
12
13 properties:
14   regulator-name:
15     description: A string used as a descriptive name for regulator outputs
16     $ref: "/schemas/types.yaml#/definitions/string"
17
18   regulator-min-microvolt:
19     description: smallest voltage consumers may set
20
21   regulator-max-microvolt:
22     description: largest voltage consumers may set
23
24   regulator-microvolt-offset:
25     description: Offset applied to voltages to compensate for voltage drops
26
27   regulator-min-microamp:
28     description: smallest current consumers may set
29
30   regulator-max-microamp:
31     description: largest current consumers may set
32
33   regulator-input-current-limit-microamp:
34     description: maximum input current regulator allows
35
36   regulator-always-on:
37     description: boolean, regulator should never be disabled
38     type: boolean
39
40   regulator-boot-on:
41     description: bootloader/firmware enabled regulator
42     type: boolean
43
44   regulator-allow-bypass:
45     description: allow the regulator to go into bypass mode
46     type: boolean
47
48   regulator-allow-set-load:
49     description: allow the regulator performance level to be configured
50     type: boolean
51
52   regulator-ramp-delay:
53     description: ramp delay for regulator(in uV/us) For hardware which supports
54       disabling ramp rate, it should be explicitly initialised to zero (regulator-ramp-delay
55       = <0>) for disabling ramp delay.
56     $ref: "/schemas/types.yaml#/definitions/uint32"
57
58   regulator-enable-ramp-delay:
59     description: The time taken, in microseconds, for the supply rail to
60       reach the target voltage, plus/minus whatever tolerance the board
61       design requires. This property describes the total system ramp time
62       required due to the combination of internal ramping of the regulator
63       itself, and board design issues such as trace capacitance and load
64       on the supply.
65     $ref: "/schemas/types.yaml#/definitions/uint32"
66
67   regulator-settling-time-us:
68     description: Settling time, in microseconds, for voltage change if regulator
69       have the constant time for any level voltage change. This is useful
70       when regulator have exponential voltage change.
71
72   regulator-settling-time-up-us:
73     description: Settling time, in microseconds, for voltage increase if
74       the regulator needs a constant time to settle after voltage increases
75       of any level. This is useful for regulators with exponential voltage
76       changes.
77
78   regulator-settling-time-down-us:
79     description: Settling time, in microseconds, for voltage decrease if
80       the regulator needs a constant time to settle after voltage decreases
81       of any level. This is useful for regulators with exponential voltage
82       changes.
83
84   regulator-soft-start:
85     description: Enable soft start so that voltage ramps slowly
86     type: boolean
87
88   regulator-initial-mode:
89     description: initial operating mode. The set of possible operating modes
90       depends on the capabilities of every hardware so each device binding
91       documentation explains which values the regulator supports.
92     $ref: "/schemas/types.yaml#/definitions/uint32"
93
94   regulator-allowed-modes:
95     description: list of operating modes that software is allowed to configure
96       for the regulator at run-time.  Elements may be specified in any order.
97       The set of possible operating modes depends on the capabilities of
98       every hardware so each device binding document explains which values
99       the regulator supports.
100     $ref: "/schemas/types.yaml#/definitions/uint32-array"
101
102   regulator-system-load:
103     description: Load in uA present on regulator that is not captured by
104       any consumer request.
105     $ref: "/schemas/types.yaml#/definitions/uint32"
106
107   regulator-pull-down:
108     description: Enable pull down resistor when the regulator is disabled.
109     type: boolean
110
111   regulator-over-current-protection:
112     description: Enable over current protection.
113     type: boolean
114
115   regulator-active-discharge:
116     description: |
117       tristate, enable/disable active discharge of regulators. The values are:
118       0: Disable active discharge.
119       1: Enable active discharge.
120       Absence of this property will leave configuration to default.
121     allOf:
122       - $ref: "/schemas/types.yaml#/definitions/uint32"
123       - enum: [ 0, 1 ]
124
125   regulator-coupled-with:
126     description: Regulators with which the regulator is coupled. The linkage
127       is 2-way - all coupled regulators should be linked with each other.
128       A regulator should not be coupled with its supplier.
129     $ref: "/schemas/types.yaml#/definitions/phandle-array"
130
131   regulator-coupled-max-spread:
132     description: Array of maximum spread between voltages of coupled regulators
133       in microvolts, each value in the array relates to the corresponding
134       couple specified by the regulator-coupled-with property.
135     $ref: "/schemas/types.yaml#/definitions/uint32"
136
137   regulator-max-step-microvolt:
138     description: Maximum difference between current and target voltages
139       that can be changed safely in a single step.
140
141 patternProperties:
142   ".*-supply$":
143     description: Input supply phandle(s) for this node
144
145   regulator-state-(standby|mem|disk):
146     type: object
147     description:
148       sub-nodes for regulator state in Standby, Suspend-to-RAM, and
149       Suspend-to-DISK modes. Equivalent with standby, mem, and disk Linux
150       sleep states.
151
152     properties:
153       regulator-on-in-suspend:
154         description: regulator should be on in suspend state.
155         type: boolean
156
157       regulator-off-in-suspend:
158         description: regulator should be off in suspend state.
159         type: boolean
160
161       regulator-suspend-min-microvolt:
162         description: minimum voltage may be set in suspend state.
163
164       regulator-suspend-max-microvolt:
165         description: maximum voltage may be set in suspend state.
166
167       regulator-suspend-microvolt:
168         description: the default voltage which regulator would be set in
169           suspend. This property is now deprecated, instead setting voltage
170           for suspend mode via the API which regulator driver provides is
171           recommended.
172
173       regulator-changeable-in-suspend:
174         description: whether the default voltage and the regulator on/off
175           in suspend can be changed in runtime.
176         type: boolean
177
178       regulator-mode:
179         description: operating mode in the given suspend state. The set
180           of possible operating modes depends on the capabilities of every
181           hardware so the valid modes are documented on each regulator device
182           tree binding document.
183         $ref: "/schemas/types.yaml#/definitions/uint32"
184
185     additionalProperties: false
186
187 examples:
188   - |
189     xyzreg: regulator@0 {
190       regulator-min-microvolt = <1000000>;
191       regulator-max-microvolt = <2500000>;
192       regulator-always-on;
193       vin-supply = <&vin>;
194
195       regulator-state-mem {
196         regulator-on-in-suspend;
197       };
198     };
199
200 ...