1Qualcomm Resource Power Manager (RPM) 2 3This driver is used to interface with the Resource Power Manager (RPM) found in 4various Qualcomm platforms. The RPM allows each component in the system to vote 5for state of the system resources, such as clocks, regulators and bus 6frequencies. 7 8- compatible: 9 Usage: required 10 Value type: <string> 11 Definition: must be one of: 12 "qcom,rpm-apq8064" 13 "qcom,rpm-msm8660" 14 "qcom,rpm-msm8960" 15 "qcom,rpm-ipq8064" 16 17- reg: 18 Usage: required 19 Value type: <prop-encoded-array> 20 Definition: base address and size of the RPM's message ram 21 22- interrupts: 23 Usage: required 24 Value type: <prop-encoded-array> 25 Definition: three entries specifying the RPM's: 26 1. acknowledgement interrupt 27 2. error interrupt 28 3. wakeup interrupt 29 30- interrupt-names: 31 Usage: required 32 Value type: <string-array> 33 Definition: must be the three strings "ack", "err" and "wakeup", in order 34 35- qcom,ipc: 36 Usage: required 37 Value type: <prop-encoded-array> 38 39 Definition: three entries specifying the outgoing ipc bit used for 40 signaling the RPM: 41 - phandle to a syscon node representing the apcs registers 42 - u32 representing offset to the register within the syscon 43 - u32 representing the ipc bit within the register 44 45 46= SUBNODES 47 48The RPM exposes resources to its subnodes. The below bindings specify the set 49of valid subnodes that can operate on these resources. 50 51== Regulators 52 53Regulator nodes are identified by their compatible: 54 55- compatible: 56 Usage: required 57 Value type: <string> 58 Definition: must be one of: 59 "qcom,rpm-pm8058-regulators" 60 "qcom,rpm-pm8901-regulators" 61 "qcom,rpm-pm8921-regulators" 62 63- vdd_l0_l1_lvs-supply: 64- vdd_l2_l11_l12-supply: 65- vdd_l3_l4_l5-supply: 66- vdd_l6_l7-supply: 67- vdd_l8-supply: 68- vdd_l9-supply: 69- vdd_l10-supply: 70- vdd_l13_l16-supply: 71- vdd_l14_l15-supply: 72- vdd_l17_l18-supply: 73- vdd_l19_l20-supply: 74- vdd_l21-supply: 75- vdd_l22-supply: 76- vdd_l23_l24_l25-supply: 77- vdd_ncp-supply: 78- vdd_s0-supply: 79- vdd_s1-supply: 80- vdd_s2-supply: 81- vdd_s3-supply: 82- vdd_s4-supply: 83 Usage: optional (pm8058 only) 84 Value type: <phandle> 85 Definition: reference to regulator supplying the input pin, as 86 described in the data sheet 87 88- lvs0_in-supply: 89- lvs1_in-supply: 90- lvs2_in-supply: 91- lvs3_in-supply: 92- mvs_in-supply: 93- vdd_l0-supply: 94- vdd_l1-supply: 95- vdd_l2-supply: 96- vdd_l3-supply: 97- vdd_l4-supply: 98- vdd_l5-supply: 99- vdd_l6-supply: 100- vdd_s0-supply: 101- vdd_s1-supply: 102- vdd_s2-supply: 103- vdd_s3-supply: 104- vdd_s4-supply: 105 Usage: optional (pm8901 only) 106 Value type: <phandle> 107 Definition: reference to regulator supplying the input pin, as 108 described in the data sheet 109 110- vdd_l1_l2_l12_l18-supply: 111- vdd_l3_l15_l17-supply: 112- vdd_l4_l14-supply: 113- vdd_l5_l8_l16-supply: 114- vdd_l6_l7-supply: 115- vdd_l9_l11-supply: 116- vdd_l10_l22-supply: 117- vdd_l21_l23_l29-supply: 118- vdd_l24-supply: 119- vdd_l25-supply: 120- vdd_l26-supply: 121- vdd_l27-supply: 122- vdd_l28-supply: 123- vdd_ncp-supply: 124- vdd_s1-supply: 125- vdd_s2-supply: 126- vdd_s4-supply: 127- vdd_s5-supply: 128- vdd_s6-supply: 129- vdd_s7-supply: 130- vdd_s8-supply: 131- vin_5vs-supply: 132- vin_lvs1_3_6-supply: 133- vin_lvs2-supply: 134- vin_lvs4_5_7-supply: 135 Usage: optional (pm8921 only) 136 Value type: <phandle> 137 Definition: reference to regulator supplying the input pin, as 138 described in the data sheet 139 140The regulator node houses sub-nodes for each regulator within the device. Each 141sub-node is identified using the node's name, with valid values listed for each 142of the pmics below. 143 144pm8058: 145 l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15, 146 l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, s0, s1, s2, s3, s4, 147 lvs0, lvs1, ncp 148 149pm8901: 150 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3, 151 mvs 152 153pm8921: 154 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, 155 l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28, 156 l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch, 157 ncp 158 159The content of each sub-node is defined by the standard binding for regulators - 160see regulator.txt - with additional custom properties described below: 161 162=== Switch-mode Power Supply regulator custom properties 163 164- bias-pull-down: 165 Usage: optional 166 Value type: <empty> 167 Definition: enable pull down of the regulator when inactive 168 169- qcom,switch-mode-frequency: 170 Usage: required 171 Value type: <u32> 172 Definition: Frequency (Hz) of the switch-mode power supply; 173 must be one of: 174 19200000, 9600000, 6400000, 4800000, 3840000, 3200000, 175 2740000, 2400000, 2130000, 1920000, 1750000, 1600000, 176 1480000, 1370000, 1280000, 1200000 177 178- qcom,force-mode: 179 Usage: optional (default if no other qcom,force-mode is specified) 180 Value type: <u32> 181 Defintion: indicates that the regulator should be forced to a 182 particular mode, valid values are: 183 QCOM_RPM_FORCE_MODE_NONE - do not force any mode 184 QCOM_RPM_FORCE_MODE_LPM - force into low power mode 185 QCOM_RPM_FORCE_MODE_HPM - force into high power mode 186 QCOM_RPM_FORCE_MODE_AUTO - allow regulator to automatically 187 select its own mode based on 188 realtime current draw, only for: 189 pm8921 smps and ftsmps 190 191- qcom,power-mode-hysteretic: 192 Usage: optional 193 Value type: <empty> 194 Definition: select that the power supply should operate in hysteretic 195 mode, instead of the default pwm mode 196 197=== Low-dropout regulator custom properties 198 199- bias-pull-down: 200 Usage: optional 201 Value type: <empty> 202 Definition: enable pull down of the regulator when inactive 203 204- qcom,force-mode: 205 Usage: optional 206 Value type: <u32> 207 Defintion: indicates that the regulator should not be forced to any 208 particular mode, valid values are: 209 QCOM_RPM_FORCE_MODE_NONE - do not force any mode 210 QCOM_RPM_FORCE_MODE_LPM - force into low power mode 211 QCOM_RPM_FORCE_MODE_HPM - force into high power mode 212 QCOM_RPM_FORCE_MODE_BYPASS - set regulator to use bypass 213 mode, i.e. to act as a switch 214 and not regulate, only for: 215 pm8921 pldo, nldo and nldo1200 216 217=== Negative Charge Pump custom properties 218 219- qcom,switch-mode-frequency: 220 Usage: required 221 Value type: <u32> 222 Definition: Frequency (Hz) of the swith mode power supply; 223 must be one of: 224 19200000, 9600000, 6400000, 4800000, 3840000, 3200000, 225 2740000, 2400000, 2130000, 1920000, 1750000, 1600000, 226 1480000, 1370000, 1280000, 1200000 227 228= EXAMPLE 229 230 #include <dt-bindings/mfd/qcom-rpm.h> 231 232 rpm@108000 { 233 compatible = "qcom,rpm-msm8960"; 234 reg = <0x108000 0x1000>; 235 qcom,ipc = <&apcs 0x8 2>; 236 237 interrupts = <0 19 0>, <0 21 0>, <0 22 0>; 238 interrupt-names = "ack", "err", "wakeup"; 239 240 regulators { 241 compatible = "qcom,rpm-pm8921-regulators"; 242 vdd_l1_l2_l12_l18-supply = <&pm8921_s4>; 243 244 s1 { 245 regulator-min-microvolt = <1225000>; 246 regulator-max-microvolt = <1225000>; 247 248 bias-pull-down; 249 250 qcom,switch-mode-frequency = <3200000>; 251 }; 252 253 pm8921_s4: s4 { 254 regulator-min-microvolt = <1800000>; 255 regulator-max-microvolt = <1800000>; 256 257 qcom,switch-mode-frequency = <1600000>; 258 bias-pull-down; 259 260 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>; 261 }; 262 }; 263 }; 264 265