1af41e8dbSPrzemyslaw MarczakVoltage/Current regulator 2af41e8dbSPrzemyslaw Marczak 3af41e8dbSPrzemyslaw MarczakBinding: 4af41e8dbSPrzemyslaw MarczakThe regulator devices don't use the "compatible" property. The binding is done 5bf802f5dSFelix Brackby the prefix of regulator node's name, or, if this fails, by the prefix of the 6bf802f5dSFelix Brackregulator's "regulator-name" property. Usually the pmic I/O driver will provide 7af41e8dbSPrzemyslaw Marczakthe array of 'struct pmic_child_info' with the prefixes and compatible drivers. 8af41e8dbSPrzemyslaw MarczakThe bind is done by calling function: pmic_bind_childs(). 9af41e8dbSPrzemyslaw MarczakExample drivers: 10af41e8dbSPrzemyslaw Marczakpmic: drivers/power/pmic/max77686.c 11af41e8dbSPrzemyslaw Marczakregulator: drivers/power/regulator/max77686.c 12af41e8dbSPrzemyslaw Marczak 13af41e8dbSPrzemyslaw MarczakFor the node name e.g.: "prefix[:alpha:]num { ... }": 14bd2259e3SFelix Brack- the driver prefix should be: "prefix" - case sensitive 15af41e8dbSPrzemyslaw Marczak- the node name's "num" is set as "dev->driver_data" on bind 16af41e8dbSPrzemyslaw Marczak 17bd2259e3SFelix BrackExample the prefix "ldo" will pass for: "ldo1", "ldo@1", "ldoreg@1, ... 18af41e8dbSPrzemyslaw Marczak 19bf802f5dSFelix BrackBinding by means of the node's name is preferred. However if the node names 20bf802f5dSFelix Brackwould produce ambiguous prefixes (like "regulator@1" and "regualtor@11") and you 21bf802f5dSFelix Brackcan't or do not want to change them then binding against the "regulator-name" 22bf802f5dSFelix Brackproperty is possible. The syntax for the prefix of the "regulator-name" property 23bf802f5dSFelix Brackis the same as the one for the regulator's node name. 24bf802f5dSFelix BrackUse case: a regulator named "regulator@1" to be bound to a driver named 25bf802f5dSFelix Brack"LDO_DRV" and a regulator named "regualator@11" to be bound to an other driver 26bf802f5dSFelix Bracknamed "BOOST_DRV". Using prefix "regualtor@1" for driver matching would load 27bf802f5dSFelix Brackthe same driver for both regulators, hence the prefix is ambiguous. 28bf802f5dSFelix Brack 29af41e8dbSPrzemyslaw MarczakOptional properties: 30bf802f5dSFelix Brack- regulator-name: a string, required by the regulator uclass, used for driver 31bf802f5dSFelix Brack binding if binding by node's name prefix fails 32af41e8dbSPrzemyslaw Marczak- regulator-min-microvolt: a minimum allowed Voltage value 33af41e8dbSPrzemyslaw Marczak- regulator-max-microvolt: a maximum allowed Voltage value 34af41e8dbSPrzemyslaw Marczak- regulator-min-microamp: a minimum allowed Current value 35af41e8dbSPrzemyslaw Marczak- regulator-max-microamp: a maximum allowed Current value 36af41e8dbSPrzemyslaw Marczak- regulator-always-on: regulator should never be disabled 37af41e8dbSPrzemyslaw Marczak- regulator-boot-on: enabled by bootloader/firmware 38*e66d1cb3SKrzysztof Kozlowski- regulator-ramp-delay: ramp delay for regulator (in uV/us) 39af41e8dbSPrzemyslaw Marczak 4040ade2ceSPeng FanNote 4140ade2ceSPeng FanThe "regulator-name" constraint is used for setting the device's uclass 4240ade2ceSPeng Fanplatform data '.name' field. And the regulator device name is set from 4340ade2ceSPeng Fanit's node name. If "regulator-name" is not provided in dts, node name 4440ade2ceSPeng Fanis chosen for setting the device's uclass platform data '.name' field. 4540ade2ceSPeng Fan 46af41e8dbSPrzemyslaw MarczakOther kernel-style properties, are currently not used. 47af41e8dbSPrzemyslaw Marczak 48af41e8dbSPrzemyslaw MarczakNote: 49af41e8dbSPrzemyslaw MarczakFor the regulator autoset from constraints, the framework expects that: 50af41e8dbSPrzemyslaw Marczak- regulator-min-microvolt is equal to regulator-max-microvolt 51af41e8dbSPrzemyslaw Marczak- regulator-min-microamp is equal to regulator-max-microamp 52af41e8dbSPrzemyslaw Marczak- regulator-always-on or regulator-boot-on is set 53af41e8dbSPrzemyslaw Marczak 54af41e8dbSPrzemyslaw MarczakExample: 55af41e8dbSPrzemyslaw Marczakldo0 { 56af41e8dbSPrzemyslaw Marczak /* Optional */ 5740ade2ceSPeng Fan regulator-name = "VDDQ_EMMC_1.8V"; 58af41e8dbSPrzemyslaw Marczak regulator-min-microvolt = <1800000>; 59af41e8dbSPrzemyslaw Marczak regulator-max-microvolt = <1800000>; 60af41e8dbSPrzemyslaw Marczak regulator-min-microamp = <100000>; 61af41e8dbSPrzemyslaw Marczak regulator-max-microamp = <100000>; 62af41e8dbSPrzemyslaw Marczak regulator-always-on; 63af41e8dbSPrzemyslaw Marczak regulator-boot-on; 64*e66d1cb3SKrzysztof Kozlowski regulator-ramp-delay = <12000>; 65af41e8dbSPrzemyslaw Marczak}; 66