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