Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

regulator: dt: add policy to have property "regulator-compatible"

Add the policy for regulator DT such that if device have multiple
regulator and its binding contains a child node that describes each
regulator then each regulator child node must have the property
"regulator-compatible" which matches with regulator name of their
hardware counterparts.
Modify the DT documentation of regulator devices to reflect this
policy.

Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

authored by

Laxman Dewangan and committed by
Mark Brown
8c5e461d 6dc027c9

+90 -28
+41 -13
Documentation/devicetree/bindings/mfd/tps65910.txt
··· 17 17 device need to be present. The definition for each of these nodes is defined 18 18 using the standard binding for regulators found at 19 19 Documentation/devicetree/bindings/regulator/regulator.txt. 20 + The regulator is matched with the regulator-compatible. 20 21 21 - The valid names for regulators are: 22 + The valid regulator-compatible values are: 22 23 tps65910: vrtc, vio, vdd1, vdd2, vdd3, vdig1, vdig2, vpll, vdac, vaux1, 23 24 vaux2, vaux33, vmmc 24 25 tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5, ··· 58 57 ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>; 59 58 60 59 regulators { 61 - vdd1_reg: vdd1 { 60 + #address-cells = <1>; 61 + #size-cells = <0>; 62 + 63 + vdd1_reg: regulator@0 { 64 + regulator-compatible = "vdd1"; 65 + reg = <0>; 62 66 regulator-min-microvolt = < 600000>; 63 67 regulator-max-microvolt = <1500000>; 64 68 regulator-always-on; 65 69 regulator-boot-on; 66 70 ti,regulator-ext-sleep-control = <0>; 67 71 }; 68 - vdd2_reg: vdd2 { 72 + vdd2_reg: regulator@1 { 73 + regulator-compatible = "vdd2"; 74 + reg = <1>; 69 75 regulator-min-microvolt = < 600000>; 70 76 regulator-max-microvolt = <1500000>; 71 77 regulator-always-on; 72 78 regulator-boot-on; 73 79 ti,regulator-ext-sleep-control = <4>; 74 80 }; 75 - vddctrl_reg: vddctrl { 81 + vddctrl_reg: regulator@2 { 82 + regulator-compatible = "vddctrl"; 83 + reg = <2>; 76 84 regulator-min-microvolt = < 600000>; 77 85 regulator-max-microvolt = <1400000>; 78 86 regulator-always-on; 79 87 regulator-boot-on; 80 88 ti,regulator-ext-sleep-control = <0>; 81 89 }; 82 - vio_reg: vio { 90 + vio_reg: regulator@3 { 91 + regulator-compatible = "vio"; 92 + reg = <3>; 83 93 regulator-min-microvolt = <1500000>; 84 94 regulator-max-microvolt = <1800000>; 85 95 regulator-always-on; 86 96 regulator-boot-on; 87 97 ti,regulator-ext-sleep-control = <1>; 88 98 }; 89 - ldo1_reg: ldo1 { 99 + ldo1_reg: regulator@4 { 100 + regulator-compatible = "ldo1"; 101 + reg = <4>; 90 102 regulator-min-microvolt = <1000000>; 91 103 regulator-max-microvolt = <3300000>; 92 104 ti,regulator-ext-sleep-control = <0>; 93 105 }; 94 - ldo2_reg: ldo2 { 106 + ldo2_reg: regulator@5 { 107 + regulator-compatible = "ldo2"; 108 + reg = <5>; 95 109 regulator-min-microvolt = <1050000>; 96 110 regulator-max-microvolt = <1050000>; 97 111 ti,regulator-ext-sleep-control = <0>; 98 112 }; 99 - ldo3_reg: ldo3 { 113 + ldo3_reg: regulator@6 { 114 + regulator-compatible = "ldo3"; 115 + reg = <6>; 100 116 regulator-min-microvolt = <1000000>; 101 117 regulator-max-microvolt = <3300000>; 102 118 ti,regulator-ext-sleep-control = <0>; 103 119 }; 104 - ldo4_reg: ldo4 { 120 + ldo4_reg: regulator@7 { 121 + regulator-compatible = "ldo4"; 122 + reg = <7>; 105 123 regulator-min-microvolt = <1000000>; 106 124 regulator-max-microvolt = <3300000>; 107 125 regulator-always-on; 108 126 ti,regulator-ext-sleep-control = <0>; 109 127 }; 110 - ldo5_reg: ldo5 { 128 + ldo5_reg: regulator@8 { 129 + regulator-compatible = "ldo5"; 130 + reg = <8>; 111 131 regulator-min-microvolt = <1000000>; 112 132 regulator-max-microvolt = <3300000>; 113 133 ti,regulator-ext-sleep-control = <0>; 114 134 }; 115 - ldo6_reg: ldo6 { 135 + ldo6_reg: regulator@9 { 136 + regulator-compatible = "ldo6"; 137 + reg = <9>; 116 138 regulator-min-microvolt = <1200000>; 117 139 regulator-max-microvolt = <1200000>; 118 140 ti,regulator-ext-sleep-control = <0>; 119 141 }; 120 - ldo7_reg: ldo7 { 142 + ldo7_reg: regulator@10 { 143 + regulator-compatible = "ldo7"; 144 + reg = <10>; 121 145 regulator-min-microvolt = <1200000>; 122 146 regulator-max-microvolt = <1200000>; 123 147 regulator-always-on; 124 148 regulator-boot-on; 125 149 ti,regulator-ext-sleep-control = <1>; 126 150 }; 127 - ldo8_reg: ldo8 { 151 + ldo8_reg: regulator@11 { 152 + regulator-compatible = "ldo8"; 153 + reg = <11>; 128 154 regulator-min-microvolt = <1000000>; 129 155 regulator-max-microvolt = <3300000>; 130 156 regulator-always-on;
+4
Documentation/devicetree/bindings/regulator/regulator.txt
··· 11 11 - regulator-boot-on: bootloader/firmware enabled regulator 12 12 - <name>-supply: phandle to the parent supply/regulator node 13 13 - regulator-ramp-delay: ramp delay for regulator(in uV/uS) 14 + - regulator-compatible: If a regulator chip contains multiple 15 + regulators, and if the chip's binding contains a child node that 16 + describes each regulator, then this property indicates which regulator 17 + this child node is intended to configure. 14 18 15 19 Example: 16 20
+45 -15
Documentation/devicetree/bindings/regulator/tps6586x.txt
··· 6 6 - interrupts: the interrupt outputs of the controller 7 7 - #gpio-cells: number of cells to describe a GPIO 8 8 - gpio-controller: mark the device as a GPIO controller 9 - - regulators: list of regulators provided by this controller, must be named 10 - after their hardware counterparts: sm[0-2], ldo[0-9] and ldo_rtc 9 + - regulators: list of regulators provided by this controller, must have 10 + property "regulator-compatible" to match their hardware counterparts: 11 + sm[0-2], ldo[0-9] and ldo_rtc 11 12 12 13 Each regulator is defined using the standard binding for regulators. 13 14 ··· 23 22 gpio-controller; 24 23 25 24 regulators { 26 - sm0_reg: sm0 { 25 + #address-cells = <1>; 26 + #size-cells = <0>; 27 + 28 + sm0_reg: regulator@0 { 29 + reg = <0>; 30 + regulator-compatible = "sm0"; 27 31 regulator-min-microvolt = < 725000>; 28 32 regulator-max-microvolt = <1500000>; 29 33 regulator-boot-on; 30 34 regulator-always-on; 31 35 }; 32 36 33 - sm1_reg: sm1 { 37 + sm1_reg: regulator@1 { 38 + reg = <1>; 39 + regulator-compatible = "sm1"; 34 40 regulator-min-microvolt = < 725000>; 35 41 regulator-max-microvolt = <1500000>; 36 42 regulator-boot-on; 37 43 regulator-always-on; 38 44 }; 39 45 40 - sm2_reg: sm2 { 46 + sm2_reg: regulator@2 { 47 + reg = <2>; 48 + regulator-compatible = "sm2"; 41 49 regulator-min-microvolt = <3000000>; 42 50 regulator-max-microvolt = <4550000>; 43 51 regulator-boot-on; 44 52 regulator-always-on; 45 53 }; 46 54 47 - ldo0_reg: ldo0 { 55 + ldo0_reg: regulator@3 { 56 + reg = <3>; 57 + regulator-compatible = "ldo0"; 48 58 regulator-name = "PCIE CLK"; 49 59 regulator-min-microvolt = <3300000>; 50 60 regulator-max-microvolt = <3300000>; 51 61 }; 52 62 53 - ldo1_reg: ldo1 { 63 + ldo1_reg: regulator@4 { 64 + reg = <4>; 65 + regulator-compatible = "ldo1"; 54 66 regulator-min-microvolt = < 725000>; 55 67 regulator-max-microvolt = <1500000>; 56 68 }; 57 69 58 - ldo2_reg: ldo2 { 70 + ldo2_reg: regulator@5 { 71 + reg = <5>; 72 + regulator-compatible = "ldo2"; 59 73 regulator-min-microvolt = < 725000>; 60 74 regulator-max-microvolt = <1500000>; 61 75 }; 62 76 63 - ldo3_reg: ldo3 { 77 + ldo3_reg: regulator@6 { 78 + reg = <6>; 79 + regulator-compatible = "ldo3"; 64 80 regulator-min-microvolt = <1250000>; 65 81 regulator-max-microvolt = <3300000>; 66 82 }; 67 83 68 - ldo4_reg: ldo4 { 84 + ldo4_reg: regulator@7 { 85 + reg = <7>; 86 + regulator-compatible = "ldo4"; 69 87 regulator-min-microvolt = <1700000>; 70 88 regulator-max-microvolt = <2475000>; 71 89 }; 72 90 73 - ldo5_reg: ldo5 { 91 + ldo5_reg: regulator@8 { 92 + reg = <8>; 93 + regulator-compatible = "ldo5"; 74 94 regulator-min-microvolt = <1250000>; 75 95 regulator-max-microvolt = <3300000>; 76 96 }; 77 97 78 - ldo6_reg: ldo6 { 98 + ldo6_reg: regulator@9 { 99 + reg = <9>; 100 + regulator-compatible = "ldo6"; 79 101 regulator-min-microvolt = <1250000>; 80 102 regulator-max-microvolt = <3300000>; 81 103 }; 82 104 83 - ldo7_reg: ldo7 { 105 + ldo7_reg: regulator@10 { 106 + reg = <10>; 107 + regulator-compatible = "ldo7"; 84 108 regulator-min-microvolt = <1250000>; 85 109 regulator-max-microvolt = <3300000>; 86 110 }; 87 111 88 - ldo8_reg: ldo8 { 112 + ldo8_reg: regulator@11 { 113 + reg = <11>; 114 + regulator-compatible = "ldo8"; 89 115 regulator-min-microvolt = <1250000>; 90 116 regulator-max-microvolt = <3300000>; 91 117 }; 92 118 93 - ldo9_reg: ldo9 { 119 + ldo9_reg: regulator@12 { 120 + reg = <12>; 121 + regulator-compatible = "ldo9"; 94 122 regulator-min-microvolt = <1250000>; 95 123 regulator-max-microvolt = <3300000>; 96 124 };