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 <lgirdwood@gmail.com>
11  - Mark Brown <broonie@kernel.org>
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
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
141patternProperties:
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
187examples:
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...
201