blob: 9bc21d12fe4fc0727d91d4e3e401584668ae1677 [file] [log] [blame]
Umang Agrawal16b11602017-12-21 15:32:55 +05301/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#include <dt-bindings/interrupt-controller/irq.h>
14#include <dt-bindings/spmi/spmi.h>
15#include <dt-bindings/msm/power-on.h>
16
17&spmi_bus {
18 qcom,pmi632@2 {
19 compatible = "qcom,spmi-pmic";
20 reg = <0x2 SPMI_USID>;
21 #address-cells = <2>;
22 #size-cells = <0>;
23
24 pmi632_revid: qcom,revid@100 {
25 compatible = "qcom,qpnp-revid";
26 reg = <0x100 0x100>;
27 };
28
29 pmi632_pon: qcom,power-on@800 {
30 compatible = "qcom,qpnp-power-on";
31 reg = <0x800 0x100>;
32 qcom,secondary-pon-reset;
33 };
34
Jishnu Prakash292e28c2018-01-18 11:28:34 +053035 pmi632_vadc: vadc@3100 {
36 compatible = "qcom,qpnp-vadc-hc";
37 reg = <0x3100 0x100>;
38 #address-cells = <1>;
39 #size-cells = <0>;
40 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
41 interrupt-names = "eoc-int-en-set";
42 qcom,adc-vdd-reference = <1875>;
43 qcom,adc-full-scale-code = <0x70e4>;
44
45 chan@0 {
46 label = "ref_gnd";
47 reg = <0>;
48 qcom,decimation = <2>;
49 qcom,pre-div-channel-scaling = <0>;
50 qcom,calibration-type = "absolute";
51 qcom,scale-function = <0>;
52 qcom,hw-settle-time = <0>;
53 qcom,fast-avg-setup = <0>;
54 qcom,cal-val = <0>;
55 };
56
57 chan@1 {
58 label = "ref_1250v";
59 reg = <1>;
60 qcom,decimation = <2>;
61 qcom,pre-div-channel-scaling = <0>;
62 qcom,calibration-type = "absolute";
63 qcom,scale-function = <0>;
64 qcom,hw-settle-time = <0>;
65 qcom,fast-avg-setup = <0>;
66 qcom,cal-val = <0>;
67 };
68
69 chan@83 {
70 label = "vph_pwr";
71 reg = <0x83>;
72 qcom,decimation = <2>;
73 qcom,pre-div-channel-scaling = <1>;
74 qcom,calibration-type = "absolute";
75 qcom,scale-function = <0>;
76 qcom,hw-settle-time = <0>;
77 qcom,fast-avg-setup = <0>;
78 qcom,cal-val = <0>;
79 };
80
81 chan@84 {
82 label = "vbat_sns";
83 reg = <0x84>;
84 qcom,decimation = <2>;
85 qcom,pre-div-channel-scaling = <1>;
86 qcom,calibration-type = "absolute";
87 qcom,scale-function = <0>;
88 qcom,hw-settle-time = <0>;
89 qcom,fast-avg-setup = <0>;
90 qcom,cal-val = <0>;
91 };
92
93 chan@6 {
94 label = "die_temp";
95 reg = <6>;
96 qcom,decimation = <2>;
97 qcom,pre-div-channel-scaling = <0>;
98 qcom,calibration-type = "absolute";
99 qcom,scale-function = <19>;
100 qcom,hw-settle-time = <0>;
101 qcom,fast-avg-setup = <0>;
102 qcom,cal-val = <0>;
103 };
104
105 chan@7 {
106 label = "usb_in_i";
107 reg = <7>;
108 qcom,decimation = <2>;
109 qcom,pre-div-channel-scaling = <0>;
110 qcom,calibration-type = "absolute";
111 qcom,scale-function = <21>;
112 qcom,hw-settle-time = <0>;
113 qcom,fast-avg-setup = <0>;
114 qcom,cal-val = <0>;
115 };
116
117 chan@8 {
118 label = "usb_in_v";
119 reg = <8>;
120 qcom,decimation = <2>;
121 qcom,pre-div-channel-scaling = <8>;
122 qcom,calibration-type = "absolute";
123 qcom,scale-function = <0>;
124 qcom,hw-settle-time = <0>;
125 qcom,fast-avg-setup = <0>;
126 qcom,cal-val = <0>;
127 };
128
129 chan@9 {
130 label = "chg_temp";
131 reg = <9>;
132 qcom,decimation = <2>;
133 qcom,pre-div-channel-scaling = <0>;
134 qcom,calibration-type = "absolute";
135 qcom,scale-function = <18>;
136 qcom,hw-settle-time = <0>;
137 qcom,fast-avg-setup = <0>;
138 qcom,cal-val = <0>;
139 };
140
141 chan@4a {
142 label = "bat_therm";
143 reg = <0x4a>;
144 qcom,decimation = <2>;
145 qcom,pre-div-channel-scaling = <0>;
146 qcom,calibration-type = "ratiometric";
147 qcom,scale-function = <17>;
148 qcom,hw-settle-time = <0>;
149 qcom,fast-avg-setup = <0>;
150 qcom,cal-val = <0>;
151 };
152
153 chan@4b {
154 label = "bat_id";
155 reg = <0x4b>;
156 qcom,decimation = <2>;
157 qcom,pre-div-channel-scaling = <0>;
158 qcom,calibration-type = "ratiometric";
159 qcom,scale-function = <0>;
160 qcom,hw-settle-time = <0>;
161 qcom,fast-avg-setup = <0>;
162 qcom,cal-val = <0>;
163 };
164
165 chan@4c {
166 label = "xo_therm";
167 reg = <0x4c>;
168 qcom,decimation = <2>;
169 qcom,pre-div-channel-scaling = <0>;
170 qcom,calibration-type = "ratiometric";
171 qcom,scale-function = <4>;
172 qcom,hw-settle-time = <8>;
173 qcom,fast-avg-setup = <0>;
174 };
175
176
177 chan@1e {
178 label = "mid_chg";
179 reg = <0x1e>;
180 qcom,decimation = <2>;
181 qcom,pre-div-channel-scaling = <3>;
182 qcom,calibration-type = "absolute";
183 qcom,scale-function = <0>;
184 qcom,hw-settle-time = <0>;
185 qcom,fast-avg-setup = <0>;
186 qcom,cal-val = <0>;
187 };
188
189 };
190
Umang Agrawal16b11602017-12-21 15:32:55 +0530191 pmi632_tz: qcom,temp-alarm@2400 {
192 compatible = "qcom,qpnp-temp-alarm";
193 reg = <0x2400 0x100>;
194 interrupts = <0x2 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
195 label = "pmi632_tz";
196 #thermal-sensor-cells = <0>;
197 };
198
199 pmi632_gpios: pinctrl@c000 {
200 compatible = "qcom,spmi-gpio";
201 reg = <0xc000 0x800>;
202 interrupts = <0x2 0xc1 0 IRQ_TYPE_NONE>,
203 <0x2 0xc2 0 IRQ_TYPE_NONE>,
204 <0x2 0xc3 0 IRQ_TYPE_NONE>,
205 <0x2 0xc4 0 IRQ_TYPE_NONE>,
206 <0x2 0xc5 0 IRQ_TYPE_NONE>,
207 <0x2 0xc6 0 IRQ_TYPE_NONE>,
Umang Agrawalfbbfb7f2017-12-29 19:27:01 +0530208 <0x2 0xc7 0 IRQ_TYPE_NONE>;
Umang Agrawal16b11602017-12-21 15:32:55 +0530209 interrupt-names = "pmi632_gpio2", "pmi632_gpio3",
210 "pmi632_gpio4", "pmi632_gpio5",
211 "pmi632_gpio6", "pmi632_gpio7",
212 "pmi632_gpio8";
213 gpio-controller;
214 #gpio-cells = <2>;
215 qcom,gpios-disallowed = <1>;
216 };
Ashay Jaiswal4e9d1d12018-02-11 14:56:48 +0530217
218 pmi632_charger: qcom,qpnp-smb5 {
219 compatible = "qcom,qpnp-smb5";
220 #address-cells = <1>;
221 #size-cells = <1>;
222
223 qcom,pmic-revid = <&pmi632_revid>;
224 dpdm-supply = <&qusb_phy>;
225
226 qcom,chgr@1000 {
227 reg = <0x1000 0x100>;
228 interrupts =
229 <0x2 0x10 0x0 IRQ_TYPE_EDGE_RISING>,
230 <0x2 0x10 0x1 IRQ_TYPE_EDGE_RISING>,
231 <0x2 0x10 0x2 IRQ_TYPE_EDGE_RISING>,
232 <0x2 0x10 0x3 IRQ_TYPE_EDGE_RISING>,
233 <0x2 0x10 0x4 IRQ_TYPE_EDGE_RISING>,
234 <0x2 0x10 0x5 IRQ_TYPE_EDGE_RISING>,
235 <0x2 0x10 0x6 IRQ_TYPE_LEVEL_HIGH>,
236 <0x2 0x10 0x7 IRQ_TYPE_LEVEL_HIGH>;
237
238 interrupt-names = "chgr-error",
239 "chg-state-change",
240 "step-chg-state-change",
241 "step-chg-soc-update-fail",
242 "step-chg-soc-update-req",
243 "fg-fvcal-qualified",
244 "vph-alarm",
245 "vph-drop-prechg";
246 };
247
248 qcom,dcdc@1100 {
249 reg = <0x1100 0x100>;
250 interrupts =
251 <0x2 0x11 0x0 IRQ_TYPE_EDGE_RISING>,
252 <0x2 0x11 0x1 IRQ_TYPE_EDGE_RISING>,
253 <0x2 0x11 0x2 IRQ_TYPE_EDGE_RISING>,
254 <0x2 0x11 0x3 IRQ_TYPE_LEVEL_HIGH>,
255 <0x2 0x11 0x4 IRQ_TYPE_EDGE_BOTH>,
256 <0x2 0x11 0x5 IRQ_TYPE_EDGE_BOTH>,
257 <0x2 0x11 0x6 IRQ_TYPE_EDGE_RISING>,
258 <0x2 0x11 0x7 IRQ_TYPE_EDGE_BOTH>;
259
260 interrupt-names = "otg-fail",
261 "otg-oc-disable-sw",
262 "otg-oc-hiccup",
263 "bsm-active",
264 "high-duty-cycle",
265 "input-current-limiting",
266 "concurrent-mode-disable",
267 "switcher-power-ok";
268 };
269
270 qcom,batif@1200 {
271 reg = <0x1200 0x100>;
272 interrupts =
273 <0x2 0x12 0x0 IRQ_TYPE_EDGE_RISING>,
274 <0x2 0x12 0x1 IRQ_TYPE_EDGE_RISING>,
275 <0x2 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
276 <0x2 0x12 0x3 IRQ_TYPE_EDGE_BOTH>,
277 <0x2 0x12 0x4 IRQ_TYPE_EDGE_BOTH>,
278 <0x2 0x12 0x5 IRQ_TYPE_EDGE_BOTH>,
279 <0x2 0x12 0x6 IRQ_TYPE_EDGE_BOTH>,
280 <0x2 0x12 0x7 IRQ_TYPE_LEVEL_HIGH>;
281
282 interrupt-names = "bat-temp",
283 "all-chnl-conv-done",
284 "bat-ov",
285 "bat-low",
286 "bat-therm-or-id-missing",
287 "bat-terminal-missing",
288 "buck-oc",
289 "vph-ov";
290 };
291
292 qcom,usb@1300 {
293 reg = <0x1300 0x100>;
294 interrupts =
295 <0x2 0x13 0x0 IRQ_TYPE_EDGE_BOTH>,
296 <0x2 0x13 0x1 IRQ_TYPE_EDGE_BOTH>,
297 <0x2 0x13 0x2 IRQ_TYPE_EDGE_BOTH>,
298 <0x2 0x13 0x3 IRQ_TYPE_EDGE_BOTH>,
299 <0x2 0x13 0x4 IRQ_TYPE_LEVEL_HIGH>,
300 <0x2 0x13 0x5 IRQ_TYPE_LEVEL_HIGH>,
301 <0x2 0x13 0x6 IRQ_TYPE_EDGE_RISING>,
302 <0x2 0x13 0x7 IRQ_TYPE_EDGE_RISING>;
303
304 interrupt-names = "usbin-collapse",
305 "usbin-vashdn",
306 "usbin-uv",
307 "usbin-ov",
308 "usbin-plugin",
309 "usbin-revi-change",
310 "usbin-src-change",
311 "usbin-icl-change";
312 };
313
314 qcom,typec@1500 {
315 reg = <0x1500 0x100>;
316 interrupts =
317 <0x2 0x15 0x0 IRQ_TYPE_EDGE_BOTH>,
318 <0x2 0x15 0x1 IRQ_TYPE_LEVEL_HIGH>,
319 <0x2 0x15 0x2 IRQ_TYPE_EDGE_RISING>,
320 <0x2 0x15 0x3 IRQ_TYPE_LEVEL_HIGH>,
321 <0x2 0x15 0x4 IRQ_TYPE_EDGE_RISING>,
322 <0x2 0x15 0x5 IRQ_TYPE_EDGE_RISING>,
323 <0x2 0x15 0x6 IRQ_TYPE_LEVEL_HIGH>,
324 <0x2 0x15 0x7 IRQ_TYPE_EDGE_RISING>;
325
326 interrupt-names = "typec-or-rid-detect-change",
327 "typec-vpd-detect",
328 "typec-cc-state-change",
329 "typec-vconn-oc",
330 "typec-vbus-change",
331 "typec-attach-detach",
332 "typec-legacy-cable-detect",
333 "typec-try-snk-src-detect";
334 };
335
336 qcom,misc@1600 {
337 reg = <0x1600 0x100>;
338 interrupts =
339 <0x2 0x16 0x0 IRQ_TYPE_EDGE_RISING>,
340 <0x2 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
341 <0x2 0x16 0x2 IRQ_TYPE_LEVEL_HIGH>,
342 <0x2 0x16 0x3 IRQ_TYPE_LEVEL_HIGH>,
343 <0x2 0x16 0x4 IRQ_TYPE_LEVEL_HIGH>,
344 <0x2 0x16 0x5 IRQ_TYPE_EDGE_RISING>,
345 <0x2 0x16 0x6 IRQ_TYPE_EDGE_FALLING>,
346 <0x2 0x16 0x7 IRQ_TYPE_EDGE_RISING>;
347
348 interrupt-names = "wdog-snarl",
349 "wdog-bark",
350 "aicl-fail",
351 "aicl-done",
352 "smb-en",
353 "imp-trigger",
354 "temp-change",
355 "temp-change-smb";
356 };
357
Ashay Jaiswal3ee6df62018-02-19 17:02:16 +0530358 qcom,schgm-flash@a600 {
359 reg = <0xa600 0x100>;
360 interrupts =
361 <0x2 0xa6 0x2 IRQ_TYPE_EDGE_RISING>,
362 <0x2 0xa6 0x5 IRQ_TYPE_EDGE_RISING>,
363 <0x2 0xa6 0x6 IRQ_TYPE_EDGE_RISING>,
364 <0x2 0xa6 0x7 IRQ_TYPE_EDGE_BOTH>;
365
366 interrupt-names = "flash-state-change",
367 "ilim1-s1",
368 "ilim2-s2",
369 "vreg-ok";
370 };
371
Ashay Jaiswal4e9d1d12018-02-11 14:56:48 +0530372 smb5_vbus: qcom,smb5-vbus {
373 regulator-name = "smb5-vbus";
374 };
375 };
Anirudh Ghayalb4b52282018-02-16 19:56:15 +0530376
377 pmi632_qg: qpnp,qg {
378 compatible = "qcom,qpnp-qg";
379 #address-cells = <1>;
380 #size-cells = <1>;
381
382 qcom,vbatt-empty-mv = <3200>;
383 qcom,vbatt-low-mv = <3500>;
384 qcom,vbatt-cutoff-mv = <3400>;
385 qcom,qg-iterm-ma = <100>;
386
387 qcom,qg-vadc = <&pmi632_vadc>;
388 qcom,pmic-revid = <&pmi632_revid>;
389
390 qcom,qgauge@4800 {
391 status = "okay";
392 reg = <0x4800 0x100>;
393 interrupts = <0x2 0x48 0x0 IRQ_TYPE_EDGE_BOTH>,
394 <0x2 0x48 0x1 IRQ_TYPE_EDGE_BOTH>,
395 <0x2 0x48 0x2 IRQ_TYPE_EDGE_BOTH>,
396 <0x2 0x48 0x3 IRQ_TYPE_EDGE_BOTH>,
397 <0x2 0x48 0x4 IRQ_TYPE_EDGE_BOTH>;
398 interrupt-names = "qg-batt-missing",
399 "qg-vbat-low",
400 "qg-vbat-empty",
401 "qg-fifo-done",
402 "qg-good-ocv";
403 };
404
405 qcom,qg-sdam@b100 {
406 status = "okay";
407 reg = <0xb100 0x100>;
408 };
409 };
Umang Agrawal16b11602017-12-21 15:32:55 +0530410 };
411
412 pmi632_3: qcom,pmi632@3 {
413 compatible ="qcom,spmi-pmic";
414 reg = <0x3 SPMI_USID>;
415 #address-cells = <2>;
416 #size-cells = <0>;
417
Tirupathi Reddy08968e82018-01-09 16:58:28 +0530418 pmi632_vib: qcom,vibrator@5700 {
419 compatible = "qcom,qpnp-vibrator-ldo";
420 reg = <0x5700 0x100>;
Tirupathi Reddy398336a2018-02-02 09:01:15 +0530421 qcom,vib-ldo-volt-uv = <3000000>;
Tirupathi Reddy08968e82018-01-09 16:58:28 +0530422 qcom,vib-overdrive-volt-uv = <3544000>;
423 };
424
Umang Agrawal16b11602017-12-21 15:32:55 +0530425 pmi632_pwm_1: pwm@b300 {
426 compatible = "qcom,qpnp-pwm";
427 reg = <0xb300 0x100>;
428 reg-names = "qpnp-lpg-channel-base";
429 qcom,channel-id = <1>;
430 qcom,supported-sizes = <6>, <9>;
431 #pwm-cells = <2>;
432 status = "disabled";
433 };
434
435 pmi632_pwm_2: pwm@b400 {
436 compatible = "qcom,qpnp-pwm";
437 reg = <0xb400 0x100>;
438 reg-names = "qpnp-lpg-channel-base";
439 qcom,channel-id = <2>;
440 qcom,supported-sizes = <6>, <9>;
441 #pwm-cells = <2>;
442 status = "disabled";
443 };
444
445 pmi632_pwm_3: pwm@b500 {
446 compatible = "qcom,qpnp-pwm";
447 reg = <0xb500 0x100>;
448 reg-names = "qpnp-lpg-channel-base";
449 qcom,channel-id = <3>;
450 qcom,supported-sizes = <6>, <9>;
451 #pwm-cells = <2>;
452 status = "disabled";
453 };
454
455 pmi632_pwm_4: pwm@b600 {
456 compatible = "qcom,qpnp-pwm";
457 reg = <0xb600 0x100>;
458 reg-names = "qpnp-lpg-channel-base";
459 qcom,channel-id = <4>;
460 qcom,supported-sizes = <6>, <9>;
461 #pwm-cells = <2>;
462 status = "disabled";
463 };
464
465 pmi632_pwm_5: pwm@b700 {
466 compatible = "qcom,qpnp-pwm";
467 reg = <0xb700 0x100>;
468 reg-names = "qpnp-lpg-channel-base";
469 qcom,channel-id = <5>;
470 qcom,supported-sizes = <6>, <9>;
471 #pwm-cells = <2>;
472 status = "disabled";
473 };
Kiran Gunda833a5c72018-01-09 18:34:42 +0530474
475 pmi632_lcdb: qpnp-lcdb@ec00 {
476 compatible = "qcom,qpnp-lcdb-regulator";
477 #address-cells = <1>;
478 #size-cells = <1>;
479 reg = <0xec00 0x100>;
480 interrupts = <0x3 0xec 0x1 IRQ_TYPE_EDGE_RISING>;
481 interrupt-names = "sc-irq";
482
483 qcom,pmic-revid = <&pmi632_revid>;
484
485 lcdb_ldo_vreg: ldo {
486 label = "ldo";
487 regulator-name = "lcdb_ldo";
488 regulator-min-microvolt = <4000000>;
489 regulator-max-microvolt = <6000000>;
490 };
491
492 lcdb_ncp_vreg: ncp {
493 label = "ncp";
494 regulator-name = "lcdb_ncp";
495 regulator-min-microvolt = <4000000>;
496 regulator-max-microvolt = <6000000>;
497 };
498 };
Umang Agrawal16b11602017-12-21 15:32:55 +0530499 };
500};