blob: 829e73364538de2023b6831e81a262daeb2d986e [file] [log] [blame]
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +05301/*
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +05302 * Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +05303 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#include <dt-bindings/msm/power-on.h>
Himanshu Agrawal9a9a6b42018-06-29 13:08:52 +053015#include <dt-bindings/spmi/spmi.h>
16#include <dt-bindings/interrupt-controller/irq.h>
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +053017
18&spmi_bus {
19
20 qcom,pmi8937@2 {
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +053021 compatible ="qcom,spmi-pmic";
22 reg = <0x2 SPMI_USID>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +053023 #address-cells = <1>;
24 #size-cells = <1>;
25
26 pmi8937_revid: qcom,revid@100 {
27 compatible = "qcom,qpnp-revid";
28 reg = <0x100 0x100>;
29 };
30
31 qcom,power-on@800 {
32 compatible = "qcom,qpnp-power-on";
33 reg = <0x800 0x100>;
34 qcom,secondary-pon-reset;
35 qcom,hard-reset-poweroff-type =
36 <PON_POWER_OFF_SHUTDOWN>;
37
38 pon_perph_reg: qcom,pon_perph_reg {
39 regulator-name = "pon_spare_reg";
40 qcom,pon-spare-reg-addr = <0x8c>;
41 qcom,pon-spare-reg-bit = <1>;
42 };
43 };
44
45 pmi8937_vadc: vadc@3100 {
46 compatible = "qcom,qpnp-vadc";
47 reg = <0x3100 0x100>;
48 #address-cells = <1>;
49 #size-cells = <0>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +053050 interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +053051 interrupt-names = "eoc-int-en-set";
52 qcom,adc-bit-resolution = <15>;
53 qcom,adc-vdd-reference = <1800>;
54 qcom,vadc-poll-eoc;
55
56 chan@0 {
57 label = "usbin";
58 reg = <0>;
59 qcom,decimation = <0>;
60 qcom,pre-div-channel-scaling = <4>;
61 qcom,calibration-type = "absolute";
62 qcom,scale-function = <0>;
63 qcom,hw-settle-time = <0>;
64 qcom,fast-avg-setup = <0>;
65 };
66
67 chan@1 {
68 label = "dcin";
69 reg = <1>;
70 qcom,decimation = <0>;
71 qcom,pre-div-channel-scaling = <4>;
72 qcom,calibration-type = "absolute";
73 qcom,scale-function = <0>;
74 qcom,hw-settle-time = <0>;
75 qcom,fast-avg-setup = <0>;
76 };
77
78 chan@3 {
79 label = "vchg_sns";
80 reg = <3>;
81 qcom,decimation = <0>;
82 qcom,pre-div-channel-scaling = <1>;
83 qcom,calibration-type = "absolute";
84 qcom,scale-function = <0>;
85 qcom,hw-settle-time = <0>;
86 qcom,fast-avg-setup = <0>;
87 };
88
89 chan@9 {
90 label = "ref_625mv";
91 reg = <9>;
92 qcom,decimation = <0>;
93 qcom,pre-div-channel-scaling = <0>;
94 qcom,calibration-type = "absolute";
95 qcom,scale-function = <0>;
96 qcom,hw-settle-time = <0>;
97 qcom,fast-avg-setup = <0>;
98 };
99
100 chan@a {
101 label = "ref_1250v";
102 reg = <0xa>;
103 qcom,decimation = <0>;
104 qcom,pre-div-channel-scaling = <0>;
105 qcom,calibration-type = "absolute";
106 qcom,scale-function = <0>;
107 qcom,hw-settle-time = <0>;
108 qcom,fast-avg-setup = <0>;
109 };
110
111 chan@d {
112 label = "chg_temp";
113 reg = <0xd>;
114 qcom,decimation = <0>;
115 qcom,pre-div-channel-scaling = <0>;
116 qcom,calibration-type = "absolute";
117 qcom,scale-function = <16>;
118 qcom,hw-settle-time = <0>;
119 qcom,fast-avg-setup = <0>;
120 };
121
122 chan@43 {
123 label = "usb_dp";
124 reg = <0x43>;
125 qcom,decimation = <0>;
126 qcom,pre-div-channel-scaling = <1>;
127 qcom,calibration-type = "absolute";
128 qcom,scale-function = <0>;
129 qcom,hw-settle-time = <0>;
130 qcom,fast-avg-setup = <0>;
131 };
132
133 chan@44 {
134 label = "usb_dm";
135 reg = <0x44>;
136 qcom,decimation = <0>;
137 qcom,pre-div-channel-scaling = <1>;
138 qcom,calibration-type = "absolute";
139 qcom,scale-function = <0>;
140 qcom,hw-settle-time = <0>;
141 qcom,fast-avg-setup = <0>;
142 };
143 };
144
145 pmi8937_mpps: mpps {
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530146 compatible = "qcom,spmi-mpp";
147 reg = <0xa000 0x400>;
148 interrupts = <0x2 0xa0 0 IRQ_TYPE_NONE>,
149 <0x2 0xa1 0 IRQ_TYPE_NONE>,
150 <0x2 0xa2 0 IRQ_TYPE_NONE>,
151 <0x2 0xa3 0 IRQ_TYPE_NONE>;
152 interrupt-names = "pmi8937_mpp1", "pmi8937_mpp2",
153 "pmi8937_mpp3", "pmi8937_mpp4";
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530154 gpio-controller;
155 #gpio-cells = <2>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530156 };
157
Tirupathi Reddy766b0f32018-01-30 11:19:22 +0530158 qpnp_smbcharger: qcom,qpnp-smbcharger {
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530159 compatible = "qcom,qpnp-smbcharger";
160 #address-cells = <1>;
161 #size-cells = <1>;
162
163 qcom,iterm-ma = <100>;
164 qcom,float-voltage-mv = <4200>;
165 qcom,resume-delta-mv = <200>;
166 qcom,chg-inhibit-fg;
167 qcom,rparasitic-uohm = <100000>;
168 qcom,bms-psy-name = "bms";
169 qcom,thermal-mitigation = <1500 700 600 0>;
170 qcom,parallel-usb-min-current-ma = <1400>;
171 qcom,parallel-usb-9v-min-current-ma = <900>;
172 qcom,parallel-allowed-lowering-ma = <500>;
173 qcom,pmic-revid = <&pmi8937_revid>;
174 qcom,force-aicl-rerun;
175 qcom,aicl-rerun-period-s = <180>;
176 qcom,autoadjust-vfloat;
177
178 qcom,chgr@1000 {
179 reg = <0x1000 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530180 interrupts = <0x2 0x10 0x0 IRQ_TYPE_NONE>,
181 <0x2 0x10 0x1 IRQ_TYPE_NONE>,
182 <0x2 0x10 0x2 IRQ_TYPE_NONE>,
183 <0x2 0x10 0x3 IRQ_TYPE_NONE>,
184 <0x2 0x10 0x4 IRQ_TYPE_NONE>,
185 <0x2 0x10 0x5 IRQ_TYPE_NONE>,
186 <0x2 0x10 0x6 IRQ_TYPE_NONE>,
187 <0x2 0x10 0x7 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530188
189 interrupt-names = "chg-error",
190 "chg-inhibit",
191 "chg-prechg-sft",
192 "chg-complete-chg-sft",
193 "chg-p2f-thr",
194 "chg-rechg-thr",
195 "chg-taper-thr",
196 "chg-tcc-thr";
197 };
198
199 qcom,otg@1100 {
200 reg = <0x1100 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530201 interrupts = <0x2 0x11 0x0 IRQ_TYPE_NONE>,
202 <0x2 0x11 0x1 IRQ_TYPE_NONE>,
203 <0x2 0x11 0x3 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530204 interrupt-names = "otg-fail",
205 "otg-oc",
206 "usbid-change";
207 };
208
209 qcom,bat-if@1200 {
210 reg = <0x1200 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530211 interrupts = <0x2 0x12 0x0 IRQ_TYPE_NONE>,
212 <0x2 0x12 0x1 IRQ_TYPE_NONE>,
213 <0x2 0x12 0x2 IRQ_TYPE_NONE>,
214 <0x2 0x12 0x3 IRQ_TYPE_NONE>,
215 <0x2 0x12 0x4 IRQ_TYPE_NONE>,
216 <0x2 0x12 0x5 IRQ_TYPE_NONE>,
217 <0x2 0x12 0x6 IRQ_TYPE_NONE>,
218 <0x2 0x12 0x7 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530219
220 interrupt-names = "batt-hot",
221 "batt-warm",
222 "batt-cold",
223 "batt-cool",
224 "batt-ov",
225 "batt-low",
226 "batt-missing",
227 "batt-term-missing";
228 };
229
230 qcom,usb-chgpth@1300 {
231 reg = <0x1300 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530232 interrupts = <0x2 0x13 0x0 IRQ_TYPE_NONE>,
233 <0x2 0x13 0x1 IRQ_TYPE_NONE>,
234 <0x2 0x13 0x2 IRQ_TYPE_NONE>,
235 <0x2 0x13 0x5 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530236
237 interrupt-names = "usbin-uv",
238 "usbin-ov",
239 "usbin-src-det",
240 "aicl-done";
241 };
242
243 qcom,dc-chgpth@1400 {
244 reg = <0x1400 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530245 interrupts = <0x2 0x14 0x0 IRQ_TYPE_NONE>,
246 <0x2 0x14 0x1 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530247 interrupt-names = "dcin-uv",
248 "dcin-ov";
249 };
250
251 qcom,chgr-misc@1600 {
252 reg = <0x1600 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530253 interrupts = <0x2 0x16 0x0 IRQ_TYPE_NONE>,
254 <0x2 0x16 0x1 IRQ_TYPE_NONE>,
255 <0x2 0x16 0x2 IRQ_TYPE_NONE>,
256 <0x2 0x16 0x3 IRQ_TYPE_NONE>,
257 <0x2 0x16 0x4 IRQ_TYPE_NONE>,
258 <0x2 0x16 0x5 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530259
260 interrupt-names = "power-ok",
261 "temp-shutdown",
262 "wdog-timeout",
263 "flash-fail",
264 "otst2",
265 "otst3";
266 };
267
268 smbcharger_charger_otg: qcom,smbcharger-boost-otg {
269 regulator-name = "smbcharger_charger_otg";
270 };
271 };
272
Tirupathi Reddy766b0f32018-01-30 11:19:22 +0530273 qpnp_fg: qcom,fg {
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530274 compatible = "qcom,qpnp-fg";
275 #address-cells = <1>;
276 #size-cells = <1>;
277 qcom,resume-soc = <95>;
278 status = "okay";
279 qcom,bcl-lm-threshold-ma = <127>;
280 qcom,bcl-mh-threshold-ma = <405>;
281 qcom,fg-iterm-ma = <150>;
282 qcom,fg-chg-iterm-ma = <100>;
283 qcom,pmic-revid = <&pmi8937_revid>;
284 qcom,fg-cutoff-voltage-mv = <3500>;
285 qcom,cycle-counter-en;
286 qcom,capacity-learning-on;
287
288 qcom,fg-soc@4000 {
289 status = "okay";
290 reg = <0x4000 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530291 interrupts = <0x2 0x40 0x0 IRQ_TYPE_NONE>,
292 <0x2 0x40 0x1 IRQ_TYPE_NONE>,
293 <0x2 0x40 0x2 IRQ_TYPE_NONE>,
294 <0x2 0x40 0x3 IRQ_TYPE_NONE>,
295 <0x2 0x40 0x4 IRQ_TYPE_NONE>,
296 <0x2 0x40 0x5 IRQ_TYPE_NONE>,
297 <0x2 0x40 0x6 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530298
299 interrupt-names = "high-soc",
300 "low-soc",
301 "full-soc",
302 "empty-soc",
303 "delta-soc",
304 "first-est-done",
305 "update-soc";
306 };
307
308 qcom,fg-batt@4100 {
309 reg = <0x4100 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530310 interrupts = <0x2 0x41 0x0 IRQ_TYPE_NONE>,
311 <0x2 0x41 0x1 IRQ_TYPE_NONE>,
312 <0x2 0x41 0x2 IRQ_TYPE_NONE>,
313 <0x2 0x41 0x3 IRQ_TYPE_NONE>,
314 <0x2 0x41 0x4 IRQ_TYPE_NONE>,
315 <0x2 0x41 0x5 IRQ_TYPE_NONE>,
316 <0x2 0x41 0x6 IRQ_TYPE_NONE>,
317 <0x2 0x41 0x7 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530318
319 interrupt-names = "soft-cold",
320 "soft-hot",
321 "vbatt-low",
322 "batt-ided",
323 "batt-id-req",
324 "batt-unknown",
325 "batt-missing",
326 "batt-match";
327 };
328
329 qcom,revid-tp-rev@1f1 {
330 reg = <0x1f1 0x1>;
331 };
332
333 qcom,fg-memif@4400 {
334 status = "okay";
335 reg = <0x4400 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530336 interrupts = <0x2 0x44 0x0 IRQ_TYPE_NONE>,
337 <0x2 0x44 0x2 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530338
339 interrupt-names = "mem-avail",
340 "data-rcvry-sug";
341 };
342 };
343
344 bcl@4200 {
345 compatible = "qcom,msm-bcl";
346 reg = <0x4200 0xff>;
347 reg-names = "fg_user_adc";
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530348 interrupts = <0x2 0x42 0x0 IRQ_TYPE_NONE>,
349 <0x2 0x42 0x1 IRQ_TYPE_NONE>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530350 interrupt-names = "bcl-high-ibat-int",
351 "bcl-low-vbat-int";
352 qcom,vbat-scaling-factor = <39000>;
353 qcom,vbat-gain-numerator = <1>;
354 qcom,vbat-gain-denominator = <128>;
355 qcom,vbat-polling-delay-ms = <100>;
356 qcom,ibat-scaling-factor = <39000>;
357 qcom,ibat-gain-numerator = <1>;
358 qcom,ibat-gain-denominator = <128>;
359 qcom,ibat-offset-numerator = <1200>;
360 qcom,ibat-offset-denominator = <1>;
361 qcom,ibat-polling-delay-ms = <100>;
362 };
363
364 qcom,leds@a100 {
365 compatible = "qcom,leds-qpnp";
366 reg = <0xa100 0x100>;
367 label = "mpp";
368 };
369 };
370
371 qcom,pmi8937@3 {
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530372 compatible ="qcom,spmi-pmic";
373 reg = <0x3 SPMI_USID>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530374 #address-cells = <1>;
375 #size-cells = <1>;
376
377 pmi8937_pwm: pwm@b000 {
378 status = "disabled";
379 compatible = "qcom,qpnp-pwm";
380 reg = <0xb000 0x100>;
381 reg-names = "qpnp-lpg-channel-base";
382 qcom,channel-id = <0>;
383 qcom,supported-sizes = <6>, <9>;
384 #pwm-cells = <2>;
385 };
386
387 wled: qcom,leds@d800 {
388 compatible = "qcom,qpnp-wled";
389 reg = <0xd800 0x100>,
390 <0xd900 0x100>;
391 reg-names = "qpnp-wled-ctrl-base",
392 "qpnp-wled-sink-base";
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530393 interrupts = <0x3 0xd8 0x2 IRQ_TYPE_EDGE_RISING>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530394 interrupt-names = "sc-irq";
395 status = "okay";
396 linux,name = "wled";
397 linux,default-trigger = "bkl-trigger";
398 qcom,fdbk-output = "auto";
399 qcom,vref-mv = <350>;
400 qcom,switch-freq-khz = <800>;
401 qcom,ovp-mv = <29500>;
402 qcom,ilim-ma = <980>;
403 qcom,boost-duty-ns = <26>;
404 qcom,mod-freq-khz = <9600>;
405 qcom,dim-mode = "hybrid";
406 qcom,dim-method = "linear";
407 qcom,hyb-thres = <625>;
408 qcom,sync-dly-us = <800>;
409 qcom,fs-curr-ua = <20000>;
410 qcom,led-strings-list = [00 01];
411 qcom,en-ext-pfet-sc-pro;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530412 qcom,pmic-revid = <&pmi8937_revid>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530413 qcom,cons-sync-write-delay-us = <1000>;
414 };
415
416 flash_led: qcom,leds@d300 {
417 compatible = "qcom,qpnp-flash-led";
418 status = "okay";
419 reg = <0xd300 0x100>;
420 label = "flash";
421 qcom,headroom = <500>;
422 qcom,startup-dly = <128>;
423 qcom,clamp-curr = <200>;
424 qcom,pmic-charger-support;
425 qcom,self-check-enabled;
426 qcom,thermal-derate-enabled;
427 qcom,thermal-derate-threshold = <100>;
428 qcom,thermal-derate-rate = "5_PERCENT";
429 qcom,current-ramp-enabled;
430 qcom,ramp_up_step = "6P7_US";
431 qcom,ramp_dn_step = "6P7_US";
432 qcom,vph-pwr-droop-enabled;
433 qcom,vph-pwr-droop-threshold = <3000>;
434 qcom,vph-pwr-droop-debounce-time = <10>;
435 qcom,headroom-sense-ch0-enabled;
436 qcom,headroom-sense-ch1-enabled;
437 qcom,pmic-revid = <&pmi8937_revid>;
438
439 pmi8937_flash0: qcom,flash_0 {
440 label = "flash";
441 qcom,led-name = "led:flash_0";
442 qcom,default-led-trigger =
443 "flash0_trigger";
444 qcom,max-current = <1000>;
445 qcom,duration = <1280>;
446 qcom,id = <0>;
447 qcom,current = <625>;
448 };
449
450 pmi8937_flash1: qcom,flash_1 {
451 label = "flash";
452 qcom,led-name = "led:flash_1";
453 qcom,default-led-trigger =
454 "flash1_trigger";
455 qcom,max-current = <1000>;
456 qcom,duration = <1280>;
457 qcom,id = <1>;
458 qcom,current = <625>;
459 };
460
461 pmi8937_torch0: qcom,torch_0 {
462 label = "torch";
463 qcom,led-name = "led:torch_0";
464 qcom,default-led-trigger =
465 "torch0_trigger";
466 qcom,max-current = <200>;
467 qcom,id = <0>;
468 qcom,current = <120>;
469 };
470
471 pmi8937_torch1: qcom,torch_1 {
472 label = "torch";
473 qcom,led-name = "led:torch_1";
474 qcom,default-led-trigger =
475 "torch1_trigger";
476 qcom,max-current = <200>;
477 qcom,id = <1>;
478 qcom,current = <120>;
479 };
480
481 pmi8937_switch: qcom,switch {
482 label = "switch";
483 qcom,led-name = "led:switch";
484 qcom,default-led-trigger =
485 "switch_trigger";
486 qcom,max-current = <1000>;
487 qcom,duration = <1280>;
488 qcom,id = <2>;
489 qcom,current = <625>;
490 reg0 {
491 regulator-name = "pon_spare_reg";
492 };
493 };
494 };
495
Himanshu Agrawal9a9a6b42018-06-29 13:08:52 +0530496 pmi_haptic: qcom,haptics@c000 {
497 compatible = "qcom,qpnp-haptics";
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530498 reg = <0xc000 0x100>;
Tirupathi Reddyc971c3d2017-12-18 11:48:11 +0530499 interrupts = <0x3 0xc0 0x0 IRQ_TYPE_EDGE_BOTH>,
500 <0x3 0xc0 0x1 IRQ_TYPE_EDGE_BOTH>;
Himanshu Agrawal9a9a6b42018-06-29 13:08:52 +0530501 interrupt-names = "hap-sc-irq", "hap-play-irq";
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530502 qcom,pmic-revid = <&pmi8937_revid>;
503 vcc_pon-supply = <&pon_perph_reg>;
504 qcom,play-mode = "direct";
505 qcom,wave-play-rate-us = <5263>;
Himanshu Agrawal9a9a6b42018-06-29 13:08:52 +0530506 qcom,actuator-type = <0>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530507 qcom,wave-shape = "square";
508 qcom,vmax-mv = <2000>;
509 qcom,ilim-ma = <800>;
510 qcom,sc-deb-cycles = <8>;
511 qcom,int-pwm-freq-khz = <505>;
512 qcom,en-brake;
Himanshu Agrawal9a9a6b42018-06-29 13:08:52 +0530513 qcom,brake-pattern = <0x3 0x3 0x0 0x0>;
514 qcom,wave-samples = <0x3e 0x3e 0x3e 0x3e 0x3e
515 0x3e 0x3e 0x3e>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530516 qcom,wave-rep-cnt = <1>;
517 qcom,wave-samp-rep-cnt = <1>;
Tirupathi Reddy4a9ce7e2017-12-15 16:54:38 +0530518 };
519 };
520};