Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / regulator / regulator.txt
1 Voltage/Current Regulators
2
3 Optional properties:
4 - regulator-name: A string used as a descriptive name for regulator outputs
5 - regulator-min-microvolt: smallest voltage consumers may set
6 - regulator-max-microvolt: largest voltage consumers may set
7 - regulator-microvolt-offset: Offset applied to voltages to compensate for voltage drops
8 - regulator-min-microamp: smallest current consumers may set
9 - regulator-max-microamp: largest current consumers may set
10 - regulator-input-current-limit-microamp: maximum input current regulator allows
11 - regulator-always-on: boolean, regulator should never be disabled
12 - regulator-boot-on: bootloader/firmware enabled regulator
13 - regulator-allow-bypass: allow the regulator to go into bypass mode
14 - regulator-allow-set-load: allow the regulator performance level to be configured
15 - <name>-supply: phandle to the parent supply/regulator node
16 - regulator-ramp-delay: ramp delay for regulator(in uV/us)
17   For hardware which supports disabling ramp rate, it should be explicitly
18   initialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay.
19 - regulator-enable-ramp-delay: The time taken, in microseconds, for the supply
20   rail to reach the target voltage, plus/minus whatever tolerance the board
21   design requires. This property describes the total system ramp time
22   required due to the combination of internal ramping of the regulator itself,
23   and board design issues such as trace capacitance and load on the supply.
24 - regulator-settling-time-us: Settling time, in microseconds, for voltage
25   change if regulator have the constant time for any level voltage change.
26   This is useful when regulator have exponential voltage change.
27 - regulator-settling-time-up-us: Settling time, in microseconds, for voltage
28   increase if the regulator needs a constant time to settle after voltage
29   increases of any level. This is useful for regulators with exponential
30   voltage changes.
31 - regulator-settling-time-down-us: Settling time, in microseconds, for voltage
32   decrease if the regulator needs a constant time to settle after voltage
33   decreases of any level. This is useful for regulators with exponential
34   voltage changes.
35 - regulator-soft-start: Enable soft start so that voltage ramps slowly
36 - regulator-state-standby sub-root node for Standby mode
37   : equivalent with standby Linux sleep state, which provides energy savings
38   with a relatively quick transition back time.
39 - regulator-state-mem sub-root node for Suspend-to-RAM mode
40   : suspend to memory, the device goes to sleep, but all data stored in memory,
41   only some external interrupt can wake the device.
42 - regulator-state-disk sub-root node for Suspend-to-DISK mode
43   : suspend to disk, this state operates similarly to Suspend-to-RAM,
44   but includes a final step of writing memory contents to disk.
45 - regulator-state-[mem/disk/standby] node has following common properties:
46         - regulator-on-in-suspend: regulator should be on in suspend state.
47         - regulator-off-in-suspend: regulator should be off in suspend state.
48         - regulator-suspend-min-microvolt: minimum voltage may be set in
49           suspend state.
50         - regulator-suspend-max-microvolt: maximum voltage may be set in
51           suspend state.
52         - regulator-suspend-microvolt: the default voltage which regulator
53           would be set in suspend. This property is now deprecated, instead
54           setting voltage for suspend mode via the API which regulator
55           driver provides is recommended.
56         - regulator-changeable-in-suspend: whether the default voltage and
57           the regulator on/off in suspend can be changed in runtime.
58         - regulator-mode: operating mode in the given suspend state.
59           The set of possible operating modes depends on the capabilities of
60           every hardware so the valid modes are documented on each regulator
61           device tree binding document.
62 - regulator-initial-mode: initial operating mode. The set of possible operating
63   modes depends on the capabilities of every hardware so each device binding
64   documentation explains which values the regulator supports.
65 - regulator-allowed-modes: list of operating modes that software is allowed to
66   configure for the regulator at run-time.  Elements may be specified in any
67   order.  The set of possible operating modes depends on the capabilities of
68   every hardware so each device binding document explains which values the
69   regulator supports.
70 - regulator-system-load: Load in uA present on regulator that is not captured by
71   any consumer request.
72 - regulator-pull-down: Enable pull down resistor when the regulator is disabled.
73 - regulator-over-current-protection: Enable over current protection.
74 - regulator-active-discharge: tristate, enable/disable active discharge of
75   regulators. The values are:
76         0: Disable active discharge.
77         1: Enable active discharge.
78         Absence of this property will leave configuration to default.
79 - regulator-coupled-with: Regulators with which the regulator
80   is coupled. The linkage is 2-way - all coupled regulators should be linked
81   with each other. A regulator should not be coupled with its supplier.
82 - regulator-coupled-max-spread: Array of maximum spread between voltages of
83   coupled regulators in microvolts, each value in the array relates to the
84   corresponding couple specified by the regulator-coupled-with property.
85 - regulator-max-step-microvolt: Maximum difference between current and target
86   voltages that can be changed safely in a single step.
87
88 Deprecated properties:
89 - regulator-compatible: If a regulator chip contains multiple
90   regulators, and if the chip's binding contains a child node that
91   describes each regulator, then this property indicates which regulator
92   this child node is intended to configure. If this property is missing,
93   the node's name will be used instead.
94
95 Example:
96
97         xyzreg: regulator@0 {
98                 regulator-min-microvolt = <1000000>;
99                 regulator-max-microvolt = <2500000>;
100                 regulator-always-on;
101                 vin-supply = <&vin>;
102
103                 regulator-state-mem {
104                         regulator-on-in-suspend;
105                 };
106         };
107
108 Regulator Consumers:
109 Consumer nodes can reference one or more of its supplies/
110 regulators using the below bindings.
111
112 - <name>-supply: phandle to the regulator node
113
114 These are the same bindings that a regulator in the above
115 example used to reference its own supply, in which case
116 its just seen as a special case of a regulator being a
117 consumer itself.
118
119 Example of a consumer device node (mmc) referencing two
120 regulators (twl_reg1 and twl_reg2),
121
122         twl_reg1: regulator@0 {
123                 ...
124                 ...
125                 ...
126         };
127
128         twl_reg2: regulator@1 {
129                 ...
130                 ...
131                 ...
132         };
133
134         mmc: mmc@0 {
135                 ...
136                 ...
137                 vmmc-supply = <&twl_reg1>;
138                 vmmcaux-supply = <&twl_reg2>;
139         };