blob: ddb02b7a3c41fa36207eb622a7a871db7b86ca61 [file] [log] [blame]
Przemyslaw Marczak08edd002015-04-20 20:07:42 +02001Voltage/Current regulator
2
3Binding:
4The regulator devices don't use the "compatible" property. The binding is done
Felix Bracke23c3882017-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 Marczak08edd002015-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 Brack8fc9c3d2017-09-22 14:27:28 +020014- the driver prefix should be: "prefix" - case sensitive
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020015- the node name's "num" is set as "dev->driver_data" on bind
16
Felix Brack8fc9c3d2017-09-22 14:27:28 +020017Example the prefix "ldo" will pass for: "ldo1", "ldo@1", "ldoreg@1, ...
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020018
Felix Bracke23c3882017-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 Marczak08edd002015-04-20 20:07:42 +020029Optional properties:
Felix Bracke23c3882017-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 Marczak08edd002015-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 Kozlowskie2fa3972019-03-06 19:37:54 +010038- regulator-ramp-delay: ramp delay for regulator (in uV/us)
Chris Packham788fbd42022-05-10 09:58:28 +120039- regulator-force-boot-off: disabled during the boot stage
Joseph Chenbb511322019-09-26 15:43:52 +080040- regulator-init-microvolt: a init allowed Voltage value
41- regulator-state-(standby|mem|disk)
42 type: object
43 description:
44 sub-nodes for regulator state in Standby, Suspend-to-RAM, and
45 Suspend-to-DISK modes. Equivalent with standby, mem, and disk Linux
46 sleep states.
47
48 properties:
49 regulator-on-in-suspend:
50 description: regulator should be on in suspend state.
51 type: boolean
52
53 regulator-off-in-suspend:
54 description: regulator should be off in suspend state.
55 type: boolean
56
57 regulator-suspend-microvolt:
58 description: the default voltage which regulator would be set in
59 suspend. This property is now deprecated, instead setting voltage
60 for suspend mode via the API which regulator driver provides is
61 recommended.
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020062
Peng Fanb4cb9ce2015-08-07 16:43:43 +080063Note
64The "regulator-name" constraint is used for setting the device's uclass
65platform data '.name' field. And the regulator device name is set from
66it's node name. If "regulator-name" is not provided in dts, node name
67is chosen for setting the device's uclass platform data '.name' field.
68
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020069Other kernel-style properties, are currently not used.
70
71Note:
72For the regulator autoset from constraints, the framework expects that:
73- regulator-min-microvolt is equal to regulator-max-microvolt
74- regulator-min-microamp is equal to regulator-max-microamp
75- regulator-always-on or regulator-boot-on is set
76
77Example:
78ldo0 {
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020079 /* Optional */
Peng Fanb4cb9ce2015-08-07 16:43:43 +080080 regulator-name = "VDDQ_EMMC_1.8V";
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020081 regulator-min-microvolt = <1800000>;
82 regulator-max-microvolt = <1800000>;
83 regulator-min-microamp = <100000>;
84 regulator-max-microamp = <100000>;
Joseph Chenbb511322019-09-26 15:43:52 +080085 regulator-init-microvolt = <1800000>;
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020086 regulator-always-on;
87 regulator-boot-on;
Krzysztof Kozlowskie2fa3972019-03-06 19:37:54 +010088 regulator-ramp-delay = <12000>;
Joseph Chenbb511322019-09-26 15:43:52 +080089 regulator-state-mem {
90 regulator-on-in-suspend;
91 regulator-suspend-microvolt = <1800000>;
92 };
Przemyslaw Marczak08edd002015-04-20 20:07:42 +020093};