1 Qualcomm Resource Power Manager (RPM)
3 This driver is used to interface with the Resource Power Manager (RPM) found in
4 various Qualcomm platforms. The RPM allows each component in the system to vote
5 for state of the system resources, such as clocks, regulators and bus
11 Definition: must be one of:
20 Value type: <prop-encoded-array>
21 Definition: base address and size of the RPM's message ram
25 Value type: <prop-encoded-array>
26 Definition: three entries specifying the RPM's:
27 1. acknowledgement interrupt
33 Value type: <string-array>
34 Definition: must be the three strings "ack", "err" and "wakeup", in order
38 Value type: <prop-encoded-array>
40 Definition: three entries specifying the outgoing ipc bit used for
42 - phandle to a syscon node representing the apcs registers
43 - u32 representing offset to the register within the syscon
44 - u32 representing the ipc bit within the register
49 The RPM exposes resources to its subnodes. The below bindings specify the set
50 of valid subnodes that can operate on these resources.
54 Regulator nodes are identified by their compatible:
59 Definition: must be one of:
60 "qcom,rpm-pm8058-regulators"
61 "qcom,rpm-pm8901-regulators"
62 "qcom,rpm-pm8921-regulators"
64 - vdd_l0_l1_lvs-supply:
65 - vdd_l2_l11_l12-supply:
66 - vdd_l3_l4_l5-supply:
77 - vdd_l23_l24_l25-supply:
84 Usage: optional (pm8058 only)
86 Definition: reference to regulator supplying the input pin, as
87 described in the data sheet
106 Usage: optional (pm8901 only)
107 Value type: <phandle>
108 Definition: reference to regulator supplying the input pin, as
109 described in the data sheet
111 - vdd_l1_l2_l12_l18-supply:
112 - vdd_l3_l15_l17-supply:
114 - vdd_l5_l8_l16-supply:
117 - vdd_l10_l22-supply:
118 - vdd_l21_l23_l29-supply:
133 - vin_lvs1_3_6-supply:
135 - vin_lvs4_5_7-supply:
136 Usage: optional (pm8921 only)
137 Value type: <phandle>
138 Definition: reference to regulator supplying the input pin, as
139 described in the data sheet
141 The regulator node houses sub-nodes for each regulator within the device. Each
142 sub-node is identified using the node's name, with valid values listed for each
146 l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15,
147 l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, s0, s1, s2, s3, s4,
151 l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
155 s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
156 l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
157 l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
160 The content of each sub-node is defined by the standard binding for regulators -
161 see regulator.txt - with additional custom properties described below:
163 === Switch-mode Power Supply regulator custom properties
168 Definition: enable pull down of the regulator when inactive
170 - qcom,switch-mode-frequency:
173 Definition: Frequency (Hz) of the switch-mode power supply;
175 19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
176 2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
177 1480000, 1370000, 1280000, 1200000
180 Usage: optional (default if no other qcom,force-mode is specified)
182 Definition: indicates that the regulator should be forced to a
183 particular mode, valid values are:
184 QCOM_RPM_FORCE_MODE_NONE - do not force any mode
185 QCOM_RPM_FORCE_MODE_LPM - force into low power mode
186 QCOM_RPM_FORCE_MODE_HPM - force into high power mode
187 QCOM_RPM_FORCE_MODE_AUTO - allow regulator to automatically
188 select its own mode based on
189 realtime current draw, only for:
190 pm8921 smps and ftsmps
192 - qcom,power-mode-hysteretic:
195 Definition: select that the power supply should operate in hysteretic
196 mode, instead of the default pwm mode
198 === Low-dropout regulator custom properties
203 Definition: enable pull down of the regulator when inactive
208 Definition: indicates that the regulator should not be forced to any
209 particular mode, valid values are:
210 QCOM_RPM_FORCE_MODE_NONE - do not force any mode
211 QCOM_RPM_FORCE_MODE_LPM - force into low power mode
212 QCOM_RPM_FORCE_MODE_HPM - force into high power mode
213 QCOM_RPM_FORCE_MODE_BYPASS - set regulator to use bypass
214 mode, i.e. to act as a switch
215 and not regulate, only for:
216 pm8921 pldo, nldo and nldo1200
218 === Negative Charge Pump custom properties
220 - qcom,switch-mode-frequency:
223 Definition: Frequency (Hz) of the swith mode power supply;
225 19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
226 2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
227 1480000, 1370000, 1280000, 1200000
231 #include <dt-bindings/mfd/qcom-rpm.h>
234 compatible = "qcom,rpm-msm8960";
235 reg = <0x108000 0x1000>;
236 qcom,ipc = <&apcs 0x8 2>;
238 interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
239 interrupt-names = "ack", "err", "wakeup";
242 compatible = "qcom,rpm-pm8921-regulators";
243 vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
246 regulator-min-microvolt = <1225000>;
247 regulator-max-microvolt = <1225000>;
251 qcom,switch-mode-frequency = <3200000>;
255 regulator-min-microvolt = <1800000>;
256 regulator-max-microvolt = <1800000>;
258 qcom,switch-mode-frequency = <1600000>;
261 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;