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