Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / mfd / qcom-rpm.txt
1 Qualcomm Resource Power Manager (RPM)
2
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.
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
48 The RPM exposes resources to its subnodes. The below bindings specify the set
49 of valid subnodes that can operate on these resources.
50
51 == Regulators
52
53 Regulator 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
140 The regulator node houses sub-nodes for each regulator within the device. Each
141 sub-node is identified using the node's name, with valid values listed for each
142 of the pmics below.
143
144 pm8058:
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
149 pm8901:
150         l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
151         mvs
152
153 pm8921:
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
159 The content of each sub-node is defined by the standard binding for regulators -
160 see 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