blob: ce6da0f2a9bfd6b0e3e13ff851b74b52e0bb5208 [file] [log] [blame]
David Keitel84987112013-02-11 13:26:30 -08001/* Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
Kenneth Heitkee5804002012-11-15 17:50:07 -07002 *
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&spmi_bus {
14 #address-cells = <1>;
15 #size-cells = <0>;
16 interrupt-controller;
17 #interrupt-cells = <3>;
David Keitel84987112013-02-11 13:26:30 -080018
David Keitel4109e952013-02-07 20:22:13 -080019 qcom,pm8226@0 {
20 spmi-slave-container;
21 reg = <0x0>;
22 #address-cells = <1>;
23 #size-cells = <1>;
24
Amy Malochef8225942013-03-04 12:16:29 -080025 qcom,power-on@800 {
26 compatible = "qcom,qpnp-power-on";
27 reg = <0x800 0x100>;
28 interrupts = <0x0 0x8 0x0>,
29 <0x0 0x8 0x1>,
30 <0x0 0x8 0x4>;
31 interrupt-names = "kpdpwr", "resin", "resin-bark";
32 qcom,pon-dbc-delay = <15625>;
33 qcom,system-reset;
34
35 qcom,pon_1 {
36 qcom,pon-type = <0>;
37 qcom,pull-up = <1>;
38 linux,code = <116>;
39 };
40
41 qcom,pon_2 {
42 qcom,pon-type = <1>;
43 qcom,support-reset = <1>;
44 qcom,pull-up = <1>;
45 qcom,s1-timer = <0>;
46 qcom,s2-timer = <2000>;
47 qcom,s2-type = <1>;
48 linux,code = <114>;
49 };
50 };
51
David Keitelc51a7e52013-03-02 00:14:48 -080052 pm8226_chg: qcom,charger {
53 spmi-dev-container;
54 compatible = "qcom,qpnp-charger";
55 #address-cells = <1>;
56 #size-cells = <1>;
57 status = "disabled";
58
59 qcom,chg-vddmax-mv = <4200>;
60 qcom,chg-vddsafe-mv = <4200>;
61 qcom,chg-vinmin-mv = <4200>;
62 qcom,chg-vbatdet-mv = <4100>;
63 qcom,chg-ibatmax-ma = <1500>;
64 qcom,chg-ibatterm-ma = <200>;
65 qcom,chg-ibatsafe-ma = <1500>;
66 qcom,chg-thermal-mitigation = <1500 700 600 325>;
67
68 qcom,chg-chgr@1000 {
69 status = "disabled";
70 reg = <0x1000 0x100>;
71 interrupts = <0x0 0x10 0x0>,
72 <0x0 0x10 0x1>,
73 <0x0 0x10 0x2>,
74 <0x0 0x10 0x3>,
75 <0x0 0x10 0x4>,
76 <0x0 0x10 0x5>,
77 <0x0 0x10 0x6>,
78 <0x0 0x10 0x7>;
79
80 interrupt-names = "vbat-det-lo",
81 "vbat-det-hi",
82 "chgwdog",
83 "state-change",
84 "trkl-chg-on",
85 "fast-chg-on",
86 "chg-failed",
87 "chg-done";
88 };
89
90 qcom,chg-buck@1100 {
91 status = "disabled";
92 reg = <0x1100 0x100>;
93 interrupts = <0x0 0x11 0x0>,
94 <0x0 0x11 0x1>,
95 <0x0 0x11 0x2>,
96 <0x0 0x11 0x3>,
97 <0x0 0x11 0x4>,
98 <0x0 0x11 0x5>,
99 <0x0 0x11 0x6>;
100
101 interrupt-names = "vbat-ov",
102 "vreg-ov",
103 "overtemp",
104 "vchg-loop",
105 "ichg-loop",
106 "ibat-loop",
107 "vdd-loop";
108 };
109
110 qcom,chg-bat-if@1200 {
111 status = "disabled";
112 reg = <0x1200 0x100>;
113 interrupts = <0x0 0x12 0x0>,
114 <0x0 0x12 0x1>,
115 <0x0 0x12 0x2>,
116 <0x0 0x12 0x3>,
117 <0x0 0x12 0x4>;
118
119 interrupt-names = "batt-pres",
120 "bat-temp-ok",
121 "bat-fet-on",
122 "vcp-on",
123 "psi";
124
125 };
126
127 qcom,chg-usb-chgpth@1300 {
128 status = "disabled";
129 reg = <0x1300 0x100>;
130 interrupts = <0 0x13 0x0>,
131 <0 0x13 0x1>,
132 <0x0 0x13 0x2>;
133
134 interrupt-names = "coarse-det-usb",
135 "usbin-valid",
136 "chg-gone";
137 };
138
139 qcom,chg-boost@1500 {
140 status = "disabled";
141 reg = <0x1500 0x100>;
142 interrupts = <0x0 0x15 0x0>,
143 <0x0 0x15 0x1>;
144
145 interrupt-names = "boost-pwr-ok",
146 "limit-error";
147 };
148
149 qcom,chg-misc@1600 {
150 status = "disabled";
151 reg = <0x1600 0x100>;
152 };
153 };
154
Xiaozhe Shicb59c9d2013-03-19 10:43:07 -0700155 pm8226_bms: qcom,bms {
156 spmi-dev-container;
157 compatible = "qcom,qpnp-bms";
158 #address-cells = <1>;
159 #size-cells = <1>;
160 status = "disabled";
161
162 qcom,r-sense-uohm = <10000>;
163 qcom,v-cutoff-uv = <3400000>;
164 qcom,max-voltage-uv = <4200000>;
165 qcom,r-conn-mohm = <18>;
166 qcom,shutdown-soc-valid-limit = <20>;
167 qcom,adjust-soc-low-threshold = <25>;
168 qcom,adjust-soc-high-threshold = <45>;
169 qcom,ocv-voltage-high-threshold-uv = <3750000>;
170 qcom,ocv-voltage-low-threshold-uv = <3650000>;
171 qcom,low-soc-calculate-soc-threshold = <15>;
172 qcom,low-soc-calculate-soc-ms = <5000>;
173 qcom,calculate-soc-ms = <20000>;
174 qcom,chg-term-ua = <100000>;
175 qcom,batt-type = <0>;
176
177 qcom,bms-iadc@3800 {
178 reg = <0x3800 0x100>;
179 };
180
181 qcom,bms-bms@4000 {
182 reg = <0x4000 0x100>;
183 interrupts = <0x0 0x40 0x0>,
184 <0x0 0x40 0x1>,
185 <0x0 0x40 0x2>,
186 <0x0 0x40 0x3>,
187 <0x0 0x40 0x4>,
188 <0x0 0x40 0x5>,
189 <0x0 0x40 0x6>,
190 <0x0 0x40 0x7>;
191
192 interrupt-names = "vsense_for_r",
193 "vsense_avg",
194 "sw_cc_thr",
195 "ocv_thr",
196 "charge_begin",
197 "good_ocv",
198 "ocv_for_r",
199 "cc_thr";
200 };
201 };
202
David Keitel4109e952013-02-07 20:22:13 -0800203 pm8226_gpios: gpios {
204 spmi-dev-container;
205 compatible = "qcom,qpnp-pin";
206 gpio-controller;
207 #gpio-cells = <2>;
208 #address-cells = <1>;
209 #size-cells = <1>;
210 label = "pm8226-gpio";
211
212 gpio@c000 {
213 reg = <0xc000 0x100>;
214 qcom,pin-num = <1>;
215 };
216
217 gpio@c100 {
218 reg = <0xc100 0x100>;
219 qcom,pin-num = <2>;
220 };
221
222 gpio@c200 {
223 reg = <0xc200 0x100>;
224 qcom,pin-num = <3>;
225 };
226
227 gpio@c300 {
228 reg = <0xc300 0x100>;
229 qcom,pin-num = <4>;
230 };
231
232 gpio@c400 {
233 reg = <0xc400 0x100>;
234 qcom,pin-num = <5>;
235 };
236
237 gpio@c500 {
238 reg = <0xc500 0x100>;
239 qcom,pin-num = <6>;
240 };
241
242 gpio@c600 {
243 reg = <0xc600 0x100>;
244 qcom,pin-num = <7>;
245 };
246
247 gpio@c700 {
248 reg = <0xc700 0x100>;
249 qcom,pin-num = <8>;
250 };
251 };
252
253 pm8226_mpps: mpps {
254 spmi-dev-container;
255 compatible = "qcom,qpnp-pin";
256 gpio-controller;
257 #gpio-cells = <2>;
258 #address-cells = <1>;
259 #size-cells = <1>;
260 label = "pm8226-mpp";
261
262 mpp@a000 {
263 reg = <0xa000 0x100>;
264 qcom,pin-num = <1>;
265 };
266
267 mpp@a100 {
268 reg = <0xa100 0x100>;
269 qcom,pin-num = <2>;
270 };
271
272 mpp@a200 {
273 reg = <0xa200 0x100>;
274 qcom,pin-num = <3>;
275 };
276
277 mpp@a300 {
278 reg = <0xa300 0x100>;
279 qcom,pin-num = <4>;
280 };
281
282 mpp@a400 {
283 reg = <0xa400 0x100>;
284 qcom,pin-num = <5>;
285 };
286
287 mpp@a500 {
288 reg = <0xa500 0x100>;
289 qcom,pin-num = <6>;
290 };
291
292 mpp@a600 {
293 reg = <0xa600 0x100>;
294 qcom,pin-num = <7>;
295 };
296
297 mpp@a700 {
298 reg = <0xa700 0x100>;
299 qcom,pin-num = <8>;
300 };
301 };
Siddartha Mohanadossae99e772013-02-19 15:44:40 -0800302
303 pm8226_vadc: vadc@3100 {
304 compatible = "qcom,qpnp-vadc";
305 reg = <0x3100 0x100>;
306 #address-cells = <1>;
307 #size-cells = <0>;
308 interrupts = <0x0 0x31 0x0>;
309 interrupt-names = "eoc-int-en-set";
310 qcom,adc-bit-resolution = <15>;
311 qcom,adc-vdd-reference = <1800>;
312
313 chan@8 {
314 label = "die_temp";
315 reg = <8>;
316 qcom,decimation = <0>;
317 qcom,pre-div-channel-scaling = <0>;
318 qcom,calibration-type = "absolute";
319 qcom,scale-function = <3>;
320 qcom,hw-settle-time = <0>;
321 qcom,fast-avg-setup = <0>;
322 };
323
324 chan@9 {
325 label = "ref_625mv";
326 reg = <9>;
327 qcom,decimation = <0>;
328 qcom,pre-div-channel-scaling = <0>;
329 qcom,calibration-type = "absolute";
330 qcom,scale-function = <0>;
331 qcom,hw-settle-time = <0>;
332 qcom,fast-avg-setup = <0>;
333 };
334
335 chan@a {
336 label = "ref_1250v";
337 reg = <0xa>;
338 qcom,decimation = <0>;
339 qcom,pre-div-channel-scaling = <0>;
340 qcom,calibration-type = "absolute";
341 qcom,scale-function = <0>;
342 qcom,hw-settle-time = <0>;
343 qcom,fast-avg-setup = <0>;
344 };
345 };
346
347 iadc@3600 {
348 compatible = "qcom,qpnp-iadc";
349 reg = <0x3600 0x100>;
350 #address-cells = <1>;
351 #size-cells = <0>;
352 interrupts = <0x0 0x36 0x0>;
353 interrupt-names = "eoc-int-en-set";
354 qcom,adc-bit-resolution = <16>;
355 qcom,adc-vdd-reference = <1800>;
356 qcom,rsense = <1500>;
357
358 chan@0 {
359 label = "internal_rsense";
360 reg = <0>;
361 qcom,decimation = <0>;
362 qcom,pre-div-channel-scaling = <1>;
363 qcom,calibration-type = "absolute";
364 qcom,scale-function = <0>;
365 qcom,hw-settle-time = <0>;
366 qcom,fast-avg-setup = <0>;
367 };
368 };
Ashay Jaiswalc51f7e92013-03-11 10:25:58 +0530369
370 qcom,pm8226_rtc {
371 spmi-dev-container;
372 compatible = "qcom,qpnp-rtc";
373 #address-cells = <1>;
374 #size-cells = <1>;
375 qcom,qpnp-rtc-write = <0>;
376 qcom,qpnp-rtc-alarm-pwrup = <0>;
377
378 qcom,pm8226_rtc_rw@6000 {
379 reg = <0x6000 0x100>;
380 };
381 qcom,pm8226_rtc_alarm@6100 {
382 reg = <0x6100 0x100>;
383 interrupts = <0x0 0x61 0x1>;
384 };
385 };
David Keitel4109e952013-02-07 20:22:13 -0800386 };
387
David Keitel84987112013-02-11 13:26:30 -0800388 qcom,pm8226@1 {
389 spmi-slave-container;
390 reg = <0x1>;
391 #address-cells = <1>;
392 #size-cells = <1>;
393
394 regulator@1400 {
395 regulator-name = "8226_s1";
396 spmi-dev-container;
397 #address-cells = <1>;
398 #size-cells = <1>;
399 compatible = "qcom,qpnp-regulator";
400 reg = <0x1400 0x300>;
401 status = "disabled";
402
403 qcom,ctl@1400 {
404 reg = <0x1400 0x100>;
405 };
406 qcom,ps@1500 {
407 reg = <0x1500 0x100>;
408 };
409 qcom,freq@1600 {
410 reg = <0x1600 0x100>;
411 };
412 };
413
414 regulator@1700 {
415 regulator-name = "8226_s2";
416 spmi-dev-container;
417 #address-cells = <1>;
418 #size-cells = <1>;
419 compatible = "qcom,qpnp-regulator";
420 reg = <0x1700 0x300>;
421 status = "disabled";
422
423 qcom,ctl@1700 {
424 reg = <0x1700 0x100>;
425 };
426 qcom,ps@1800 {
427 reg = <0x1800 0x100>;
428 };
429 qcom,freq@1900 {
430 reg = <0x1900 0x100>;
431 };
432 };
433
434 regulator@1a00 {
435 regulator-name = "8226_s3";
436 spmi-dev-container;
437 #address-cells = <1>;
438 #size-cells = <1>;
439 compatible = "qcom,qpnp-regulator";
440 reg = <0x1a00 0x300>;
441 status = "disabled";
442
443 qcom,ctl@1a00 {
444 reg = <0x1a00 0x100>;
445 };
446 qcom,ps@1b00 {
447 reg = <0x1b00 0x100>;
448 };
449 qcom,freq@1c00 {
450 reg = <0x1c00 0x100>;
451 };
452 };
453
454 regulator@1d00 {
455 regulator-name = "8226_s4";
456 spmi-dev-container;
457 #address-cells = <1>;
458 #size-cells = <1>;
459 compatible = "qcom,qpnp-regulator";
460 reg = <0x1d00 0x300>;
461 status = "disabled";
462
463 qcom,ctl@1d00 {
464 reg = <0x1d00 0x100>;
465 };
466 qcom,ps@1e00 {
467 reg = <0x1e00 0x100>;
468 };
469 qcom,freq@1f00 {
470 reg = <0x1f00 0x100>;
471 };
472 };
473
474 regulator@2000 {
475 regulator-name = "8226_s5";
476 spmi-dev-container;
477 #address-cells = <1>;
478 #size-cells = <1>;
479 compatible = "qcom,qpnp-regulator";
480 reg = <0x2000 0x300>;
481 status = "disabled";
482
483 qcom,ctl@2000 {
484 reg = <0x2000 0x100>;
485 };
486 qcom,ps@2100 {
487 reg = <0x2100 0x100>;
488 };
489 qcom,freq@2200 {
490 reg = <0x2200 0x100>;
491 };
492 };
493
494 regulator@4000 {
495 regulator-name = "8226_l1";
496 reg = <0x4000 0x100>;
497 compatible = "qcom,qpnp-regulator";
498 status = "disabled";
499 };
500
501 regulator@4100 {
502 regulator-name = "8226_l2";
503 reg = <0x4100 0x100>;
504 compatible = "qcom,qpnp-regulator";
505 status = "disabled";
506 };
507
508 regulator@4200 {
509 regulator-name = "8226_l3";
510 reg = <0x4200 0x100>;
511 compatible = "qcom,qpnp-regulator";
512 status = "disabled";
513 };
514
515 regulator@4300 {
516 regulator-name = "8226_l4";
517 reg = <0x4300 0x100>;
518 compatible = "qcom,qpnp-regulator";
519 status = "disabled";
520 };
521
522 regulator@4400 {
523 regulator-name = "8226_l5";
524 reg = <0x4400 0x100>;
525 compatible = "qcom,qpnp-regulator";
526 status = "disabled";
527 };
528
529 regulator@4500 {
530 regulator-name = "8226_l6";
531 reg = <0x4500 0x100>;
532 compatible = "qcom,qpnp-regulator";
533 status = "disabled";
534 };
535
536 regulator@4600 {
537 regulator-name = "8226_l7";
538 reg = <0x4600 0x100>;
539 compatible = "qcom,qpnp-regulator";
540 status = "disabled";
541 };
542
543 regulator@4700 {
544 regulator-name = "8226_l8";
545 reg = <0x4700 0x100>;
546 compatible = "qcom,qpnp-regulator";
547 status = "disabled";
548 };
549
550 regulator@4800 {
551 regulator-name = "8226_l9";
552 reg = <0x4800 0x100>;
553 compatible = "qcom,qpnp-regulator";
554 status = "disabled";
555 };
556
557 regulator@4900 {
558 regulator-name = "8226_l10";
559 reg = <0x4900 0x100>;
560 compatible = "qcom,qpnp-regulator";
561 status = "disabled";
562 };
563
564 regulator@4b00 {
565 regulator-name = "8226_l12";
566 reg = <0x4b00 0x100>;
567 compatible = "qcom,qpnp-regulator";
568 status = "disabled";
569 };
570
571 regulator@4d00 {
572 regulator-name = "8226_l14";
573 reg = <0x4d00 0x100>;
574 compatible = "qcom,qpnp-regulator";
575 status = "disabled";
576 };
577
578 regulator@4e00 {
579 regulator-name = "8226_l15";
580 reg = <0x4e00 0x100>;
581 compatible = "qcom,qpnp-regulator";
582 status = "disabled";
583 };
584
585 regulator@4f00 {
586 regulator-name = "8226_l16";
587 reg = <0x4f00 0x100>;
588 compatible = "qcom,qpnp-regulator";
589 status = "disabled";
590 };
591
592 regulator@5000 {
593 regulator-name = "8226_l17";
594 reg = <0x5000 0x100>;
595 compatible = "qcom,qpnp-regulator";
596 status = "disabled";
597 };
598
599 regulator@5100 {
600 regulator-name = "8226_l18";
601 reg = <0x5100 0x100>;
602 compatible = "qcom,qpnp-regulator";
603 status = "disabled";
604 };
605
606 regulator@5200 {
607 regulator-name = "8226_l19";
608 reg = <0x5200 0x100>;
609 compatible = "qcom,qpnp-regulator";
610 status = "disabled";
611 };
612
613 regulator@5300 {
614 regulator-name = "8226_l20";
615 reg = <0x5300 0x100>;
616 compatible = "qcom,qpnp-regulator";
617 status = "disabled";
618 };
619
620 regulator@5400 {
621 regulator-name = "8226_l21";
622 reg = <0x5400 0x100>;
623 compatible = "qcom,qpnp-regulator";
624 status = "disabled";
625 };
626
627 regulator@5500 {
628 regulator-name = "8226_l22";
629 reg = <0x5500 0x100>;
630 compatible = "qcom,qpnp-regulator";
631 status = "disabled";
632 };
633
634 regulator@5600 {
635 regulator-name = "8226_l23";
636 reg = <0x5600 0x100>;
637 compatible = "qcom,qpnp-regulator";
638 status = "disabled";
639 };
640
641 regulator@5700 {
642 regulator-name = "8226_l24";
643 reg = <0x5700 0x100>;
644 compatible = "qcom,qpnp-regulator";
645 status = "disabled";
646 };
647
648 regulator@5900 {
649 regulator-name = "8226_l26";
650 reg = <0x5900 0x100>;
651 compatible = "qcom,qpnp-regulator";
652 status = "disabled";
653 };
654
655 regulator@5a00 {
656 regulator-name = "8226_l27";
657 reg = <0x5a00 0x100>;
658 compatible = "qcom,qpnp-regulator";
659 status = "disabled";
660 };
661
662 regulator@5b00 {
663 regulator-name = "8226_l28";
664 reg = <0x5b00 0x100>;
665 compatible = "qcom,qpnp-regulator";
666 status = "disabled";
667 };
668
Amy Maloched699b942013-03-03 15:47:52 -0800669 qcom,leds@d800 {
670 compatible = "qcom,leds-qpnp";
671 reg = <0xd800 0x100>;
672 label = "wled";
673 };
674
David Keitel84987112013-02-11 13:26:30 -0800675 regulator@8000 {
676 regulator-name = "8226_lvs1";
677 reg = <0x8000 0x100>;
678 compatible = "qcom,qpnp-regulator";
679 status = "disabled";
680 };
681 };
Kenneth Heitkee5804002012-11-15 17:50:07 -0700682};