2011-11-18 19:17:17 +08:00
|
|
|
Voltage/Current Regulators
|
|
|
|
|
|
|
|
Optional properties:
|
|
|
|
- regulator-name: A string used as a descriptive name for regulator outputs
|
|
|
|
- regulator-min-microvolt: smallest voltage consumers may set
|
|
|
|
- regulator-max-microvolt: largest voltage consumers may set
|
|
|
|
- regulator-microvolt-offset: Offset applied to voltages to compensate for voltage drops
|
|
|
|
- regulator-min-microamp: smallest current consumers may set
|
|
|
|
- regulator-max-microamp: largest current consumers may set
|
2015-06-12 08:37:06 +08:00
|
|
|
- regulator-input-current-limit-microamp: maximum input current regulator allows
|
2011-11-18 19:17:17 +08:00
|
|
|
- regulator-always-on: boolean, regulator should never be disabled
|
|
|
|
- regulator-boot-on: bootloader/firmware enabled regulator
|
2013-06-20 16:37:37 +08:00
|
|
|
- regulator-allow-bypass: allow the regulator to go into bypass mode
|
2015-08-19 06:14:06 +08:00
|
|
|
- regulator-allow-set-load: allow the regulator performance level to be configured
|
2011-11-18 19:17:17 +08:00
|
|
|
- <name>-supply: phandle to the parent supply/regulator node
|
2016-08-18 23:31:16 +08:00
|
|
|
- regulator-ramp-delay: ramp delay for regulator(in uV/us)
|
2014-04-05 10:31:00 +08:00
|
|
|
For hardware which supports disabling ramp rate, it should be explicitly
|
2015-04-30 18:08:59 +08:00
|
|
|
initialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.
|
2013-09-18 20:48:02 +08:00
|
|
|
- regulator-enable-ramp-delay: The time taken, in microseconds, for the supply
|
|
|
|
rail to reach the target voltage, plus/minus whatever tolerance the board
|
|
|
|
design requires. This property describes the total system ramp time
|
|
|
|
required due to the combination of internal ramping of the regulator itself,
|
|
|
|
and board design issues such as trace capacitance and load on the supply.
|
2017-04-04 21:29:49 +08:00
|
|
|
- regulator-settling-time-us: Settling time, in microseconds, for voltage
|
|
|
|
change if regulator have the constant time for any level voltage change.
|
|
|
|
This is useful when regulator have exponential voltage change.
|
2017-05-17 02:43:42 +08:00
|
|
|
- regulator-settling-time-up-us: Settling time, in microseconds, for voltage
|
|
|
|
increase if the regulator needs a constant time to settle after voltage
|
|
|
|
increases of any level. This is useful for regulators with exponential
|
|
|
|
voltage changes.
|
|
|
|
- regulator-settling-time-down-us: Settling time, in microseconds, for voltage
|
|
|
|
decrease if the regulator needs a constant time to settle after voltage
|
|
|
|
decreases of any level. This is useful for regulators with exponential
|
|
|
|
voltage changes.
|
2015-06-12 08:37:05 +08:00
|
|
|
- regulator-soft-start: Enable soft start so that voltage ramps slowly
|
2014-10-10 19:35:34 +08:00
|
|
|
- regulator-state-mem sub-root node for Suspend-to-RAM mode
|
|
|
|
: suspend to memory, the device goes to sleep, but all data stored in memory,
|
|
|
|
only some external interrupt can wake the device.
|
|
|
|
- regulator-state-disk sub-root node for Suspend-to-DISK mode
|
|
|
|
: suspend to disk, this state operates similarly to Suspend-to-RAM,
|
|
|
|
but includes a final step of writing memory contents to disk.
|
|
|
|
- regulator-state-[mem/disk] node has following common properties:
|
|
|
|
- regulator-on-in-suspend: regulator should be on in suspend state.
|
|
|
|
- regulator-off-in-suspend: regulator should be off in suspend state.
|
2018-01-26 21:08:43 +08:00
|
|
|
- regulator-suspend-min-microvolt: minimum voltage may be set in
|
|
|
|
suspend state.
|
|
|
|
- regulator-suspend-max-microvolt: maximum voltage may be set in
|
|
|
|
suspend state.
|
|
|
|
- regulator-suspend-microvolt: the default voltage which regulator
|
|
|
|
would be set in suspend. This property is now deprecated, instead
|
|
|
|
setting voltage for suspend mode via the API which regulator
|
|
|
|
driver provides is recommended.
|
|
|
|
- regulator-changeable-in-suspend: whether the default voltage and
|
|
|
|
the regulator on/off in suspend can be changed in runtime.
|
2014-11-10 21:43:51 +08:00
|
|
|
- regulator-mode: operating mode in the given suspend state.
|
|
|
|
The set of possible operating modes depends on the capabilities of
|
|
|
|
every hardware so the valid modes are documented on each regulator
|
|
|
|
device tree binding document.
|
|
|
|
- regulator-initial-mode: initial operating mode. The set of possible operating
|
|
|
|
modes depends on the capabilities of every hardware so each device binding
|
|
|
|
documentation explains which values the regulator supports.
|
2018-05-12 09:46:46 +08:00
|
|
|
- regulator-allowed-modes: list of operating modes that software is allowed to
|
|
|
|
configure for the regulator at run-time. Elements may be specified in any
|
|
|
|
order. The set of possible operating modes depends on the capabilities of
|
|
|
|
every hardware so each device binding document explains which values the
|
|
|
|
regulator supports.
|
2015-06-12 08:37:03 +08:00
|
|
|
- regulator-system-load: Load in uA present on regulator that is not captured by
|
|
|
|
any consumer request.
|
2015-06-12 08:37:04 +08:00
|
|
|
- regulator-pull-down: Enable pull down resistor when the regulator is disabled.
|
2015-07-18 05:41:54 +08:00
|
|
|
- regulator-over-current-protection: Enable over current protection.
|
2016-03-02 18:54:45 +08:00
|
|
|
- regulator-active-discharge: tristate, enable/disable active discharge of
|
|
|
|
regulators. The values are:
|
|
|
|
0: Disable active discharge.
|
|
|
|
1: Enable active discharge.
|
|
|
|
Absence of this property will leave configuration to default.
|
2018-04-23 22:33:38 +08:00
|
|
|
- regulator-coupled-with: Regulators with which the regulator
|
|
|
|
is coupled. The linkage is 2-way - all coupled regulators should be linked
|
|
|
|
with each other. A regulator should not be coupled with its supplier.
|
|
|
|
- regulator-coupled-max-spread: Max spread between voltages of coupled regulators
|
|
|
|
in microvolts.
|
regulator: deprecate regulator-compatible DT property
When the bindings for the TPS6586x regulator were being proposed, I
asserted that DT node naming rules for bus child nodes should also be
applied to nodes inside the TPS6586x regulator node itself. In other
words, that each node providing regulator init data should be named
after the type of object it represented ("regulator") and hence that
some other property was required to indicate which regulator the node
described ("regulator-compatible"). In turn this led to multiple nodes
having the same name, thus requiring node names to use a unit address
to make them unique, thus requiring reg properties within the nodes and
However, subsequent discussion indicates that the rules I was asserting
only applies to standardized bus nodes, and within a device's own node,
the binding can basically do anything sane that it wants.
Hence, this change deprecates the register-compatible property, and
instead uses node names to replace this functionality. This greatly
simplifies the device tree content, making them smaller and more legible.
The code is changed such that old device trees continue to work.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-25 03:25:00 +08:00
|
|
|
|
|
|
|
Deprecated properties:
|
2012-07-05 15:23:04 +08:00
|
|
|
- regulator-compatible: If a regulator chip contains multiple
|
|
|
|
regulators, and if the chip's binding contains a child node that
|
|
|
|
describes each regulator, then this property indicates which regulator
|
regulator: deprecate regulator-compatible DT property
When the bindings for the TPS6586x regulator were being proposed, I
asserted that DT node naming rules for bus child nodes should also be
applied to nodes inside the TPS6586x regulator node itself. In other
words, that each node providing regulator init data should be named
after the type of object it represented ("regulator") and hence that
some other property was required to indicate which regulator the node
described ("regulator-compatible"). In turn this led to multiple nodes
having the same name, thus requiring node names to use a unit address
to make them unique, thus requiring reg properties within the nodes and
However, subsequent discussion indicates that the rules I was asserting
only applies to standardized bus nodes, and within a device's own node,
the binding can basically do anything sane that it wants.
Hence, this change deprecates the register-compatible property, and
instead uses node names to replace this functionality. This greatly
simplifies the device tree content, making them smaller and more legible.
The code is changed such that old device trees continue to work.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2012-09-25 03:25:00 +08:00
|
|
|
this child node is intended to configure. If this property is missing,
|
|
|
|
the node's name will be used instead.
|
2011-11-18 19:17:17 +08:00
|
|
|
|
|
|
|
Example:
|
|
|
|
|
|
|
|
xyzreg: regulator@0 {
|
|
|
|
regulator-min-microvolt = <1000000>;
|
|
|
|
regulator-max-microvolt = <2500000>;
|
|
|
|
regulator-always-on;
|
|
|
|
vin-supply = <&vin>;
|
2014-10-10 19:35:34 +08:00
|
|
|
|
|
|
|
regulator-state-mem {
|
|
|
|
regulator-on-in-suspend;
|
|
|
|
};
|
2011-11-18 19:17:17 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
Regulator Consumers:
|
|
|
|
Consumer nodes can reference one or more of its supplies/
|
|
|
|
regulators using the below bindings.
|
|
|
|
|
|
|
|
- <name>-supply: phandle to the regulator node
|
|
|
|
|
|
|
|
These are the same bindings that a regulator in the above
|
|
|
|
example used to reference its own supply, in which case
|
|
|
|
its just seen as a special case of a regulator being a
|
|
|
|
consumer itself.
|
|
|
|
|
|
|
|
Example of a consumer device node (mmc) referencing two
|
2011-11-28 21:37:16 +08:00
|
|
|
regulators (twl_reg1 and twl_reg2),
|
2011-11-18 19:17:17 +08:00
|
|
|
|
2011-11-28 21:37:16 +08:00
|
|
|
twl_reg1: regulator@0 {
|
2011-11-18 19:17:17 +08:00
|
|
|
...
|
|
|
|
...
|
|
|
|
...
|
|
|
|
};
|
|
|
|
|
2011-11-28 21:37:16 +08:00
|
|
|
twl_reg2: regulator@1 {
|
2011-11-18 19:17:17 +08:00
|
|
|
...
|
|
|
|
...
|
|
|
|
...
|
|
|
|
};
|
|
|
|
|
2017-11-30 04:55:15 +08:00
|
|
|
mmc: mmc@0 {
|
2011-11-18 19:17:17 +08:00
|
|
|
...
|
|
|
|
...
|
2011-11-28 21:37:16 +08:00
|
|
|
vmmc-supply = <&twl_reg1>;
|
|
|
|
vmmcaux-supply = <&twl_reg2>;
|
2011-11-18 19:17:17 +08:00
|
|
|
};
|