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
7title: Voltage/Current Regulators
8
9maintainers:
10  - Liam Girdwood <[email protected]>
11  - Mark Brown <[email protected]>
12
13properties:
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    $ref: /schemas/types.yaml#/definitions/uint32
27
28  regulator-min-microamp:
29    description: smallest current consumers may set
30
31  regulator-max-microamp:
32    description: largest current consumers may set
33
34  regulator-input-current-limit-microamp:
35    description: maximum input current regulator allows
36
37  regulator-power-budget-milliwatt:
38    description: power budget of the regulator
39
40  regulator-always-on:
41    description: boolean, regulator should never be disabled
42    type: boolean
43
44  regulator-boot-on:
45    description: bootloader/firmware enabled regulator.
46      It's expected that this regulator was left on by the bootloader.
47      If the bootloader didn't leave it on then OS should turn it on
48      at boot but shouldn't prevent it from being turned off later.
49      This property is intended to only be used for regulators where
50      software cannot read the state of the regulator.
51    type: boolean
52
53  regulator-allow-bypass:
54    description: allow the regulator to go into bypass mode
55    type: boolean
56
57  regulator-allow-set-load:
58    description: allow the regulator performance level to be configured
59    type: boolean
60
61  regulator-ramp-delay:
62    description: ramp delay for regulator(in uV/us) For hardware which supports
63      disabling ramp rate, it should be explicitly initialised to zero (regulator-ramp-delay
64      = <0>) for disabling ramp delay.
65    $ref: /schemas/types.yaml#/definitions/uint32
66
67  regulator-enable-ramp-delay:
68    description: The time taken, in microseconds, for the supply rail to
69      reach the target voltage, plus/minus whatever tolerance the board
70      design requires. This property describes the total system ramp time
71      required due to the combination of internal ramping of the regulator
72      itself, and board design issues such as trace capacitance and load
73      on the supply.
74    $ref: /schemas/types.yaml#/definitions/uint32
75
76  regulator-settling-time-us:
77    description: Settling time, in microseconds, for voltage change if regulator
78      have the constant time for any level voltage change. This is useful
79      when regulator have exponential voltage change.
80
81  regulator-settling-time-up-us:
82    description: Settling time, in microseconds, for voltage increase if
83      the regulator needs a constant time to settle after voltage increases
84      of any level. This is useful for regulators with exponential voltage
85      changes.
86
87  regulator-settling-time-down-us:
88    description: Settling time, in microseconds, for voltage decrease if
89      the regulator needs a constant time to settle after voltage decreases
90      of any level. This is useful for regulators with exponential voltage
91      changes.
92
93  regulator-soft-start:
94    description: Enable soft start so that voltage ramps slowly
95    type: boolean
96
97  regulator-initial-mode:
98    description: initial operating mode. The set of possible operating modes
99      depends on the capabilities of every hardware so each device binding
100      documentation explains which values the regulator supports.
101    $ref: /schemas/types.yaml#/definitions/uint32
102
103  regulator-allowed-modes:
104    description: list of operating modes that software is allowed to configure
105      for the regulator at run-time.  Elements may be specified in any order.
106      The set of possible operating modes depends on the capabilities of
107      every hardware so each device binding document explains which values
108      the regulator supports.
109    $ref: /schemas/types.yaml#/definitions/uint32-array
110
111  regulator-system-load:
112    description: Load in uA present on regulator that is not captured by
113      any consumer request.
114    $ref: /schemas/types.yaml#/definitions/uint32
115
116  regulator-pull-down:
117    description: Enable pull down resistor when the regulator is disabled.
118    type: boolean
119
120  system-critical-regulator:
121    description: Set if the regulator is critical to system stability or
122      functionality.
123    type: boolean
124
125  regulator-over-current-protection:
126    description: Enable over current protection.
127    type: boolean
128
129  regulator-oc-protection-microamp:
130    description: Set over current protection limit. This is a limit where
131      hardware performs emergency shutdown. Zero can be passed to disable
132      protection and value '1' indicates that protection should be enabled but
133      limit setting can be omitted.
134
135  regulator-oc-error-microamp:
136    description: Set over current error limit. This is a limit where part of
137      the hardware probably is malfunctional and damage prevention is requested.
138      Zero can be passed to disable error detection and value '1' indicates
139      that detection should be enabled but limit setting can be omitted.
140
141  regulator-oc-warn-microamp:
142    description: Set over current warning limit. This is a limit where hardware
143      is assumed still to be functional but approaching limit where it gets
144      damaged. Recovery actions should be initiated. Zero can be passed to
145      disable detection and value '1' indicates that detection should
146      be enabled but limit setting can be omitted.
147
148  regulator-ov-protection-microvolt:
149    description: Set over voltage protection limit. This is a limit where
150      hardware performs emergency shutdown. Zero can be passed to disable
151      protection and value '1' indicates that protection should be enabled but
152      limit setting can be omitted. Limit is given as microvolt offset from
153      voltage set to regulator.
154
155  regulator-ov-error-microvolt:
156    description: Set over voltage error limit. This is a limit where part of
157      the hardware probably is malfunctional and damage prevention is requested
158      Zero can be passed to disable error detection and value '1' indicates
159      that detection should be enabled but limit setting can be omitted. Limit
160      is given as microvolt offset from voltage set to regulator.
161
162  regulator-ov-warn-microvolt:
163    description: Set over voltage warning limit. This is a limit where hardware
164      is assumed still to be functional but approaching limit where it gets
165      damaged. Recovery actions should be initiated. Zero can be passed to
166      disable detection and value '1' indicates that detection should
167      be enabled but limit setting can be omitted. Limit is given as microvolt
168      offset from voltage set to regulator.
169
170  regulator-uv-protection-microvolt:
171    description: Set over under voltage protection limit. This is a limit where
172      hardware performs emergency shutdown. Zero can be passed to disable
173      protection and value '1' indicates that protection should be enabled but
174      limit setting can be omitted. Limit is given as microvolt offset from
175      voltage set to regulator.
176
177  regulator-uv-error-microvolt:
178    description: Set under voltage error limit. This is a limit where part of
179      the hardware probably is malfunctional and damage prevention is requested
180      Zero can be passed to disable error detection and value '1' indicates
181      that detection should be enabled but limit setting can be omitted. Limit
182      is given as microvolt offset from voltage set to regulator.
183
184  regulator-uv-warn-microvolt:
185    description: Set over under voltage warning limit. This is a limit where
186      hardware is assumed still to be functional but approaching limit where
187      it gets damaged. Recovery actions should be initiated. Zero can be passed
188      to disable detection and value '1' indicates that detection should
189      be enabled but limit setting can be omitted. Limit is given as microvolt
190      offset from voltage set to regulator.
191
192  regulator-uv-less-critical-window-ms:
193    description: Specifies the time window (in milliseconds) following a
194      critical under-voltage event during which the system can continue to
195      operate safely while performing less critical operations. This property
196      provides a defined duration before a more severe reaction to the
197      under-voltage event is needed, allowing for certain non-urgent actions to
198      be carried out in preparation for potential power loss.
199
200  regulator-temp-protection-kelvin:
201    description: Set over temperature protection limit. This is a limit where
202      hardware performs emergency shutdown. Zero can be passed to disable
203      protection and value '1' indicates that protection should be enabled but
204      limit setting can be omitted.
205
206  regulator-temp-error-kelvin:
207    description: Set over temperature error limit. This is a limit where part of
208      the hardware probably is malfunctional and damage prevention is requested
209      Zero can be passed to disable error detection and value '1' indicates
210      that detection should be enabled but limit setting can be omitted.
211
212  regulator-temp-warn-kelvin:
213    description: Set over temperature warning limit. This is a limit where
214      hardware is assumed still to be functional but approaching limit where it
215      gets damaged. Recovery actions should be initiated. Zero can be passed to
216      disable detection and value '1' indicates that detection should
217      be enabled but limit setting can be omitted.
218
219  regulator-active-discharge:
220    description: |
221      tristate, enable/disable active discharge of regulators. The values are:
222      0: Disable active discharge.
223      1: Enable active discharge.
224      Absence of this property will leave configuration to default.
225    $ref: /schemas/types.yaml#/definitions/uint32
226    enum: [0, 1]
227
228  regulator-coupled-with:
229    description: Regulators with which the regulator is coupled. The linkage
230      is 2-way - all coupled regulators should be linked with each other.
231      A regulator should not be coupled with its supplier.
232    $ref: /schemas/types.yaml#/definitions/phandle-array
233    items:
234      maxItems: 1
235
236  regulator-coupled-max-spread:
237    description: Array of maximum spread between voltages of coupled regulators
238      in microvolts, each value in the array relates to the corresponding
239      couple specified by the regulator-coupled-with property.
240    $ref: /schemas/types.yaml#/definitions/uint32-array
241
242  regulator-max-step-microvolt:
243    description: Maximum difference between current and target voltages
244      that can be changed safely in a single step.
245
246patternProperties:
247  ".*-supply$":
248    description: Input supply phandle(s) for this node
249
250  "^regulator-state-(standby|mem|disk)$":
251    type: object
252    description:
253      sub-nodes for regulator state in Standby, Suspend-to-RAM, and
254      Suspend-to-DISK modes. Equivalent with standby, mem, and disk Linux
255      sleep states.
256
257    properties:
258      regulator-on-in-suspend:
259        description: regulator should be on in suspend state.
260        type: boolean
261
262      regulator-off-in-suspend:
263        description: regulator should be off in suspend state.
264        type: boolean
265
266      regulator-suspend-min-microvolt:
267        description: minimum voltage may be set in suspend state.
268
269      regulator-suspend-max-microvolt:
270        description: maximum voltage may be set in suspend state.
271
272      regulator-suspend-microvolt:
273        description: the default voltage which regulator would be set in
274          suspend. This property is now deprecated, instead setting voltage
275          for suspend mode via the API which regulator driver provides is
276          recommended.
277
278      regulator-changeable-in-suspend:
279        description: whether the default voltage and the regulator on/off
280          in suspend can be changed in runtime.
281        type: boolean
282
283      regulator-mode:
284        description: operating mode in the given suspend state. The set
285          of possible operating modes depends on the capabilities of every
286          hardware so the valid modes are documented on each regulator device
287          tree binding document.
288        $ref: /schemas/types.yaml#/definitions/uint32
289
290    additionalProperties: false
291
292additionalProperties: true
293
294examples:
295  - |
296    xyzreg: regulator {
297      regulator-min-microvolt = <1000000>;
298      regulator-max-microvolt = <2500000>;
299      regulator-always-on;
300      vin-supply = <&vin>;
301
302      regulator-state-mem {
303        regulator-on-in-suspend;
304      };
305    };
306
307...
308