blob: 6c9a02120fdee37b514ed5889af93c8a296ad2e9 [file] [log] [blame]
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +02001Voltage/Current regulator
2
3Binding:
4The regulator devices don't use the "compatible" property. The binding is done
Felix Brackbf802f52017-11-27 09:14:16 +01005by the prefix of regulator node's name, or, if this fails, by the prefix of the
6regulator's "regulator-name" property. Usually the pmic I/O driver will provide
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +02007the array of 'struct pmic_child_info' with the prefixes and compatible drivers.
8The bind is done by calling function: pmic_bind_childs().
9Example drivers:
10pmic: drivers/power/pmic/max77686.c
11regulator: drivers/power/regulator/max77686.c
12
13For the node name e.g.: "prefix[:alpha:]num { ... }":
Felix Brackbd2259e2017-09-22 14:27:28 +020014- the driver prefix should be: "prefix" - case sensitive
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020015- the node name's "num" is set as "dev->driver_data" on bind
16
Felix Brackbd2259e2017-09-22 14:27:28 +020017Example the prefix "ldo" will pass for: "ldo1", "ldo@1", "ldoreg@1, ...
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020018
Felix Brackbf802f52017-11-27 09:14:16 +010019Binding by means of the node's name is preferred. However if the node names
20would produce ambiguous prefixes (like "regulator@1" and "regualtor@11") and you
21can't or do not want to change them then binding against the "regulator-name"
22property is possible. The syntax for the prefix of the "regulator-name" property
23is the same as the one for the regulator's node name.
24Use case: a regulator named "regulator@1" to be bound to a driver named
25"LDO_DRV" and a regulator named "regualator@11" to be bound to an other driver
26named "BOOST_DRV". Using prefix "regualtor@1" for driver matching would load
27the same driver for both regulators, hence the prefix is ambiguous.
28
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020029Optional properties:
Felix Brackbf802f52017-11-27 09:14:16 +010030- regulator-name: a string, required by the regulator uclass, used for driver
31 binding if binding by node's name prefix fails
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020032- regulator-min-microvolt: a minimum allowed Voltage value
33- regulator-max-microvolt: a maximum allowed Voltage value
34- regulator-min-microamp: a minimum allowed Current value
35- regulator-max-microamp: a maximum allowed Current value
36- regulator-always-on: regulator should never be disabled
37- regulator-boot-on: enabled by bootloader/firmware
Krzysztof Kozlowskie66d1cb2019-03-06 19:37:54 +010038- regulator-ramp-delay: ramp delay for regulator (in uV/us)
Joseph Chen11406b82019-09-26 15:43:52 +080039- regulator-init-microvolt: a init allowed Voltage value
40- regulator-state-(standby|mem|disk)
41 type: object
42 description:
43 sub-nodes for regulator state in Standby, Suspend-to-RAM, and
44 Suspend-to-DISK modes. Equivalent with standby, mem, and disk Linux
45 sleep states.
46
47 properties:
48 regulator-on-in-suspend:
49 description: regulator should be on in suspend state.
50 type: boolean
51
52 regulator-off-in-suspend:
53 description: regulator should be off in suspend state.
54 type: boolean
55
56 regulator-suspend-microvolt:
57 description: the default voltage which regulator would be set in
58 suspend. This property is now deprecated, instead setting voltage
59 for suspend mode via the API which regulator driver provides is
60 recommended.
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020061
Peng Fan40ade2c2015-08-07 16:43:43 +080062Note
63The "regulator-name" constraint is used for setting the device's uclass
64platform data '.name' field. And the regulator device name is set from
65it's node name. If "regulator-name" is not provided in dts, node name
66is chosen for setting the device's uclass platform data '.name' field.
67
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020068Other kernel-style properties, are currently not used.
69
70Note:
71For the regulator autoset from constraints, the framework expects that:
72- regulator-min-microvolt is equal to regulator-max-microvolt
73- regulator-min-microamp is equal to regulator-max-microamp
74- regulator-always-on or regulator-boot-on is set
75
76Example:
77ldo0 {
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020078 /* Optional */
Peng Fan40ade2c2015-08-07 16:43:43 +080079 regulator-name = "VDDQ_EMMC_1.8V";
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020080 regulator-min-microvolt = <1800000>;
81 regulator-max-microvolt = <1800000>;
82 regulator-min-microamp = <100000>;
83 regulator-max-microamp = <100000>;
Joseph Chen11406b82019-09-26 15:43:52 +080084 regulator-init-microvolt = <1800000>;
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020085 regulator-always-on;
86 regulator-boot-on;
Krzysztof Kozlowskie66d1cb2019-03-06 19:37:54 +010087 regulator-ramp-delay = <12000>;
Joseph Chen11406b82019-09-26 15:43:52 +080088 regulator-state-mem {
89 regulator-on-in-suspend;
90 regulator-suspend-microvolt = <1800000>;
91 };
Przemyslaw Marczakaf41e8d2015-04-20 20:07:42 +020092};