1Voltage/Current regulator 2 3Binding: 4The regulator devices don't use the "compatible" property. The binding is done 5by 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 7the 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 { ... }": 14- the driver prefix should be: "prefix" - case sensitive 15- the node name's "num" is set as "dev->driver_data" on bind 16 17Example the prefix "ldo" will pass for: "ldo1", "ldo@1", "ldoreg@1, ... 18 19Binding 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 29Optional properties: 30- regulator-name: a string, required by the regulator uclass, used for driver 31 binding if binding by node's name prefix fails 32- 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 38- regulator-ramp-delay: ramp delay for regulator (in uV/us) 39- 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. 61 62Note 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 68Other 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 { 78 /* Optional */ 79 regulator-name = "VDDQ_EMMC_1.8V"; 80 regulator-min-microvolt = <1800000>; 81 regulator-max-microvolt = <1800000>; 82 regulator-min-microamp = <100000>; 83 regulator-max-microamp = <100000>; 84 regulator-init-microvolt = <1800000>; 85 regulator-always-on; 86 regulator-boot-on; 87 regulator-ramp-delay = <12000>; 88 regulator-state-mem { 89 regulator-on-in-suspend; 90 regulator-suspend-microvolt = <1800000>; 91 }; 92}; 93