ab8500: Add devicetree support for fuelgauge
[deliverable/linux.git] / arch / arm / boot / dts / dbx5x0.dtsi
1 /*
2 * Copyright 2012 Linaro Ltd
3 *
4 * The code contained herein is licensed under the GNU General Public
5 * License. You may obtain a copy of the GNU General Public License
6 * Version 2 or later at the following locations:
7 *
8 * http://www.opensource.org/licenses/gpl-license.html
9 * http://www.gnu.org/copyleft/gpl.html
10 */
11
12 /include/ "skeleton.dtsi"
13
14 / {
15 soc-u9500 {
16 #address-cells = <1>;
17 #size-cells = <1>;
18 compatible = "stericsson,db8500";
19 interrupt-parent = <&intc>;
20 ranges;
21
22 intc: interrupt-controller@a0411000 {
23 compatible = "arm,cortex-a9-gic";
24 #interrupt-cells = <3>;
25 #address-cells = <1>;
26 interrupt-controller;
27 reg = <0xa0411000 0x1000>,
28 <0xa0410100 0x100>;
29 };
30
31 L2: l2-cache {
32 compatible = "arm,pl310-cache";
33 reg = <0xa0412000 0x1000>;
34 interrupts = <0 13 4>;
35 cache-unified;
36 cache-level = <2>;
37 };
38
39 pmu {
40 compatible = "arm,cortex-a9-pmu";
41 interrupts = <0 7 0x4>;
42 };
43
44 timer@a0410600 {
45 compatible = "arm,cortex-a9-twd-timer";
46 reg = <0xa0410600 0x20>;
47 interrupts = <1 13 0x304>;
48 };
49
50 rtc@80154000 {
51 compatible = "arm,rtc-pl031", "arm,primecell";
52 reg = <0x80154000 0x1000>;
53 interrupts = <0 18 0x4>;
54 };
55
56 gpio0: gpio@8012e000 {
57 compatible = "stericsson,db8500-gpio",
58 "st,nomadik-gpio";
59 reg = <0x8012e000 0x80>;
60 interrupts = <0 119 0x4>;
61 interrupt-controller;
62 #interrupt-cells = <2>;
63 st,supports-sleepmode;
64 gpio-controller;
65 #gpio-cells = <2>;
66 gpio-bank = <0>;
67 };
68
69 gpio1: gpio@8012e080 {
70 compatible = "stericsson,db8500-gpio",
71 "st,nomadik-gpio";
72 reg = <0x8012e080 0x80>;
73 interrupts = <0 120 0x4>;
74 interrupt-controller;
75 #interrupt-cells = <2>;
76 st,supports-sleepmode;
77 gpio-controller;
78 #gpio-cells = <2>;
79 gpio-bank = <1>;
80 };
81
82 gpio2: gpio@8000e000 {
83 compatible = "stericsson,db8500-gpio",
84 "st,nomadik-gpio";
85 reg = <0x8000e000 0x80>;
86 interrupts = <0 121 0x4>;
87 interrupt-controller;
88 #interrupt-cells = <2>;
89 st,supports-sleepmode;
90 gpio-controller;
91 #gpio-cells = <2>;
92 gpio-bank = <2>;
93 };
94
95 gpio3: gpio@8000e080 {
96 compatible = "stericsson,db8500-gpio",
97 "st,nomadik-gpio";
98 reg = <0x8000e080 0x80>;
99 interrupts = <0 122 0x4>;
100 interrupt-controller;
101 #interrupt-cells = <2>;
102 st,supports-sleepmode;
103 gpio-controller;
104 #gpio-cells = <2>;
105 gpio-bank = <3>;
106 };
107
108 gpio4: gpio@8000e100 {
109 compatible = "stericsson,db8500-gpio",
110 "st,nomadik-gpio";
111 reg = <0x8000e100 0x80>;
112 interrupts = <0 123 0x4>;
113 interrupt-controller;
114 #interrupt-cells = <2>;
115 st,supports-sleepmode;
116 gpio-controller;
117 #gpio-cells = <2>;
118 gpio-bank = <4>;
119 };
120
121 gpio5: gpio@8000e180 {
122 compatible = "stericsson,db8500-gpio",
123 "st,nomadik-gpio";
124 reg = <0x8000e180 0x80>;
125 interrupts = <0 124 0x4>;
126 interrupt-controller;
127 #interrupt-cells = <2>;
128 st,supports-sleepmode;
129 gpio-controller;
130 #gpio-cells = <2>;
131 gpio-bank = <5>;
132 };
133
134 gpio6: gpio@8011e000 {
135 compatible = "stericsson,db8500-gpio",
136 "st,nomadik-gpio";
137 reg = <0x8011e000 0x80>;
138 interrupts = <0 125 0x4>;
139 interrupt-controller;
140 #interrupt-cells = <2>;
141 st,supports-sleepmode;
142 gpio-controller;
143 #gpio-cells = <2>;
144 gpio-bank = <6>;
145 };
146
147 gpio7: gpio@8011e080 {
148 compatible = "stericsson,db8500-gpio",
149 "st,nomadik-gpio";
150 reg = <0x8011e080 0x80>;
151 interrupts = <0 126 0x4>;
152 interrupt-controller;
153 #interrupt-cells = <2>;
154 st,supports-sleepmode;
155 gpio-controller;
156 #gpio-cells = <2>;
157 gpio-bank = <7>;
158 };
159
160 gpio8: gpio@a03fe000 {
161 compatible = "stericsson,db8500-gpio",
162 "st,nomadik-gpio";
163 reg = <0xa03fe000 0x80>;
164 interrupts = <0 127 0x4>;
165 interrupt-controller;
166 #interrupt-cells = <2>;
167 st,supports-sleepmode;
168 gpio-controller;
169 #gpio-cells = <2>;
170 gpio-bank = <8>;
171 };
172
173 pinctrl {
174 compatible = "stericsson,nmk_pinctrl";
175 };
176
177 usb@a03e0000 {
178 compatible = "stericsson,db8500-musb",
179 "mentor,musb";
180 reg = <0xa03e0000 0x10000>;
181 interrupts = <0 23 0x4>;
182 };
183
184 dma-controller@801C0000 {
185 compatible = "stericsson,db8500-dma40",
186 "stericsson,dma40";
187 reg = <0x801C0000 0x1000 0x40010000 0x800>;
188 interrupts = <0 25 0x4>;
189 };
190
191 prcmu@80157000 {
192 compatible = "stericsson,db8500-prcmu";
193 reg = <0x80157000 0x1000>;
194 interrupts = <0 47 0x4>;
195 #address-cells = <1>;
196 #size-cells = <1>;
197 interrupt-controller;
198 #interrupt-cells = <2>;
199 ranges;
200
201 prcmu-timer-4@80157450 {
202 compatible = "stericsson,db8500-prcmu-timer-4";
203 reg = <0x80157450 0xC>;
204 };
205
206 db8500-prcmu-regulators {
207 compatible = "stericsson,db8500-prcmu-regulator";
208
209 // DB8500_REGULATOR_VAPE
210 db8500_vape_reg: db8500_vape {
211 regulator-compatible = "db8500_vape";
212 regulator-name = "db8500-vape";
213 regulator-always-on;
214 };
215
216 // DB8500_REGULATOR_VARM
217 db8500_varm_reg: db8500_varm {
218 regulator-compatible = "db8500_varm";
219 regulator-name = "db8500-varm";
220 };
221
222 // DB8500_REGULATOR_VMODEM
223 db8500_vmodem_reg: db8500_vmodem {
224 regulator-compatible = "db8500_vmodem";
225 regulator-name = "db8500-vmodem";
226 };
227
228 // DB8500_REGULATOR_VPLL
229 db8500_vpll_reg: db8500_vpll {
230 regulator-compatible = "db8500_vpll";
231 regulator-name = "db8500-vpll";
232 };
233
234 // DB8500_REGULATOR_VSMPS1
235 db8500_vsmps1_reg: db8500_vsmps1 {
236 regulator-compatible = "db8500_vsmps1";
237 regulator-name = "db8500-vsmps1";
238 };
239
240 // DB8500_REGULATOR_VSMPS2
241 db8500_vsmps2_reg: db8500_vsmps2 {
242 regulator-compatible = "db8500_vsmps2";
243 regulator-name = "db8500-vsmps2";
244 };
245
246 // DB8500_REGULATOR_VSMPS3
247 db8500_vsmps3_reg: db8500_vsmps3 {
248 regulator-compatible = "db8500_vsmps3";
249 regulator-name = "db8500-vsmps3";
250 };
251
252 // DB8500_REGULATOR_VRF1
253 db8500_vrf1_reg: db8500_vrf1 {
254 regulator-compatible = "db8500_vrf1";
255 regulator-name = "db8500-vrf1";
256 };
257
258 // DB8500_REGULATOR_SWITCH_SVAMMDSP
259 db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
260 regulator-compatible = "db8500_sva_mmdsp";
261 regulator-name = "db8500-sva-mmdsp";
262 };
263
264 // DB8500_REGULATOR_SWITCH_SVAMMDSPRET
265 db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
266 regulator-compatible = "db8500_sva_mmdsp_ret";
267 regulator-name = "db8500-sva-mmdsp-ret";
268 };
269
270 // DB8500_REGULATOR_SWITCH_SVAPIPE
271 db8500_sva_pipe_reg: db8500_sva_pipe {
272 regulator-compatible = "db8500_sva_pipe";
273 regulator-name = "db8500_sva_pipe";
274 };
275
276 // DB8500_REGULATOR_SWITCH_SIAMMDSP
277 db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
278 regulator-compatible = "db8500_sia_mmdsp";
279 regulator-name = "db8500_sia_mmdsp";
280 };
281
282 // DB8500_REGULATOR_SWITCH_SIAMMDSPRET
283 db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
284 regulator-name = "db8500-sia-mmdsp-ret";
285 };
286
287 // DB8500_REGULATOR_SWITCH_SIAPIPE
288 db8500_sia_pipe_reg: db8500_sia_pipe {
289 regulator-compatible = "db8500_sia_pipe";
290 regulator-name = "db8500-sia-pipe";
291 };
292
293 // DB8500_REGULATOR_SWITCH_SGA
294 db8500_sga_reg: db8500_sga {
295 regulator-compatible = "db8500_sga";
296 regulator-name = "db8500-sga";
297 vin-supply = <&db8500_vape_reg>;
298 };
299
300 // DB8500_REGULATOR_SWITCH_B2R2_MCDE
301 db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
302 regulator-compatible = "db8500_b2r2_mcde";
303 regulator-name = "db8500-b2r2-mcde";
304 vin-supply = <&db8500_vape_reg>;
305 };
306
307 // DB8500_REGULATOR_SWITCH_ESRAM12
308 db8500_esram12_reg: db8500_esram12 {
309 regulator-compatible = "db8500_esram12";
310 regulator-name = "db8500-esram12";
311 };
312
313 // DB8500_REGULATOR_SWITCH_ESRAM12RET
314 db8500_esram12_ret_reg: db8500_esram12_ret {
315 regulator-compatible = "db8500_esram12_ret";
316 regulator-name = "db8500-esram12-ret";
317 };
318
319 // DB8500_REGULATOR_SWITCH_ESRAM34
320 db8500_esram34_reg: db8500_esram34 {
321 regulator-compatible = "db8500_esram34";
322 regulator-name = "db8500-esram34";
323 };
324
325 // DB8500_REGULATOR_SWITCH_ESRAM34RET
326 db8500_esram34_ret_reg: db8500_esram34_ret {
327 regulator-compatible = "db8500_esram34_ret";
328 regulator-name = "db8500-esram34-ret";
329 };
330 };
331
332 ab8500@5 {
333 compatible = "stericsson,ab8500";
334 reg = <5>; /* mailbox 5 is i2c */
335 interrupt-parent = <&intc>;
336 interrupts = <0 40 0x4>;
337 interrupt-controller;
338 #interrupt-cells = <2>;
339
340 ab8500-rtc {
341 compatible = "stericsson,ab8500-rtc";
342 interrupts = <17 0x4
343 18 0x4>;
344 interrupt-names = "60S", "ALARM";
345 };
346
347 ab8500-gpadc {
348 compatible = "stericsson,ab8500-gpadc";
349 interrupts = <32 0x4
350 39 0x4>;
351 interrupt-names = "HW_CONV_END", "SW_CONV_END";
352 vddadc-supply = <&ab8500_ldo_tvout_reg>;
353 };
354
355 ab8500_battery: ab8500_battery {
356 stericsson,battery-type = "LIPO";
357 thermistor-on-batctrl;
358 };
359
360 ab8500_fg {
361 compatible = "stericsson,ab8500-fg";
362 battery = <&ab8500_battery>;
363 };
364
365 ab8500_usb {
366 compatible = "stericsson,ab8500-usb";
367 interrupts = < 90 0x4
368 96 0x4
369 14 0x4
370 15 0x4
371 79 0x4
372 74 0x4
373 75 0x4>;
374 interrupt-names = "ID_WAKEUP_R",
375 "ID_WAKEUP_F",
376 "VBUS_DET_F",
377 "VBUS_DET_R",
378 "USB_LINK_STATUS",
379 "USB_ADP_PROBE_PLUG",
380 "USB_ADP_PROBE_UNPLUG";
381 vddulpivio18-supply = <&ab8500_ldo_initcore_reg>;
382 v-ape-supply = <&db8500_vape_reg>;
383 musb_1v8-supply = <&db8500_vsmps2_reg>;
384 };
385
386 ab8500-ponkey {
387 compatible = "stericsson,ab8500-poweron-key";
388 interrupts = <6 0x4
389 7 0x4>;
390 interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
391 };
392
393 ab8500-sysctrl {
394 compatible = "stericsson,ab8500-sysctrl";
395 };
396
397 ab8500-pwm {
398 compatible = "stericsson,ab8500-pwm";
399 };
400
401 ab8500-debugfs {
402 compatible = "stericsson,ab8500-debug";
403 };
404
405 codec: ab8500-codec {
406 compatible = "stericsson,ab8500-codec";
407
408 stericsson,earpeice-cmv = <950>; /* Units in mV. */
409 };
410
411 ab8500-regulators {
412 compatible = "stericsson,ab8500-regulator";
413
414 // supplies to the display/camera
415 ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
416 regulator-compatible = "ab8500_ldo_aux1";
417 regulator-name = "V-DISPLAY";
418 regulator-min-microvolt = <2500000>;
419 regulator-max-microvolt = <2900000>;
420 regulator-boot-on;
421 /* BUG: If turned off MMC will be affected. */
422 regulator-always-on;
423 };
424
425 // supplies to the on-board eMMC
426 ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
427 regulator-compatible = "ab8500_ldo_aux2";
428 regulator-name = "V-eMMC1";
429 regulator-min-microvolt = <1100000>;
430 regulator-max-microvolt = <3300000>;
431 };
432
433 // supply for VAUX3; SDcard slots
434 ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
435 regulator-compatible = "ab8500_ldo_aux3";
436 regulator-name = "V-MMC-SD";
437 regulator-min-microvolt = <1100000>;
438 regulator-max-microvolt = <3300000>;
439 };
440
441 // supply for v-intcore12; VINTCORE12 LDO
442 ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
443 regulator-compatible = "ab8500_ldo_initcore";
444 regulator-name = "V-INTCORE";
445 };
446
447 // supply for tvout; gpadc; TVOUT LDO
448 ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
449 regulator-compatible = "ab8500_ldo_tvout";
450 regulator-name = "V-TVOUT";
451 };
452
453 // supply for ab8500-usb; USB LDO
454 ab8500_ldo_usb_reg: ab8500_ldo_usb {
455 regulator-compatible = "ab8500_ldo_usb";
456 regulator-name = "dummy";
457 };
458
459 // supply for ab8500-vaudio; VAUDIO LDO
460 ab8500_ldo_audio_reg: ab8500_ldo_audio {
461 regulator-compatible = "ab8500_ldo_audio";
462 regulator-name = "V-AUD";
463 };
464
465 // supply for v-anamic1 VAMic1-LDO
466 ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
467 regulator-compatible = "ab8500_ldo_anamic1";
468 regulator-name = "V-AMIC1";
469 };
470
471 // supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
472 ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
473 regulator-compatible = "ab8500_ldo_amamic2";
474 regulator-name = "V-AMIC2";
475 };
476
477 // supply for v-dmic; VDMIC LDO
478 ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
479 regulator-compatible = "ab8500_ldo_dmic";
480 regulator-name = "V-DMIC";
481 };
482
483 // supply for U8500 CSI/DSI; VANA LDO
484 ab8500_ldo_ana_reg: ab8500_ldo_ana {
485 regulator-compatible = "ab8500_ldo_ana";
486 regulator-name = "V-CSI/DSI";
487 };
488 };
489 };
490 };
491
492 i2c@80004000 {
493 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
494 reg = <0x80004000 0x1000>;
495 interrupts = <0 21 0x4>;
496 arm,primecell-periphid = <0x180024>;
497
498 #address-cells = <1>;
499 #size-cells = <0>;
500 v-i2c-supply = <&db8500_vape_reg>;
501
502 clock-frequency = <400000>;
503 };
504
505 i2c@80122000 {
506 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
507 reg = <0x80122000 0x1000>;
508 interrupts = <0 22 0x4>;
509 arm,primecell-periphid = <0x180024>;
510
511 #address-cells = <1>;
512 #size-cells = <0>;
513 v-i2c-supply = <&db8500_vape_reg>;
514
515 clock-frequency = <400000>;
516 };
517
518 i2c@80128000 {
519 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
520 reg = <0x80128000 0x1000>;
521 interrupts = <0 55 0x4>;
522 arm,primecell-periphid = <0x180024>;
523
524 #address-cells = <1>;
525 #size-cells = <0>;
526 v-i2c-supply = <&db8500_vape_reg>;
527
528 clock-frequency = <400000>;
529 };
530
531 i2c@80110000 {
532 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
533 reg = <0x80110000 0x1000>;
534 interrupts = <0 12 0x4>;
535 arm,primecell-periphid = <0x180024>;
536
537 #address-cells = <1>;
538 #size-cells = <0>;
539 v-i2c-supply = <&db8500_vape_reg>;
540
541 clock-frequency = <400000>;
542 };
543
544 i2c@8012a000 {
545 compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
546 reg = <0x8012a000 0x1000>;
547 interrupts = <0 51 0x4>;
548 arm,primecell-periphid = <0x180024>;
549
550 #address-cells = <1>;
551 #size-cells = <0>;
552 v-i2c-supply = <&db8500_vape_reg>;
553
554 clock-frequency = <400000>;
555 };
556
557 ssp@80002000 {
558 compatible = "arm,pl022", "arm,primecell";
559 reg = <0x80002000 0x1000>;
560 interrupts = <0 14 0x4>;
561 #address-cells = <1>;
562 #size-cells = <0>;
563 status = "disabled";
564
565 // Add one of these for each child device
566 cs-gpios = <&gpio0 31 0x4 &gpio4 14 0x4 &gpio4 16 0x4
567 &gpio6 22 0x4 &gpio7 0 0x4>;
568
569 };
570
571 uart@80120000 {
572 compatible = "arm,pl011", "arm,primecell";
573 reg = <0x80120000 0x1000>;
574 interrupts = <0 11 0x4>;
575 status = "disabled";
576 };
577 uart@80121000 {
578 compatible = "arm,pl011", "arm,primecell";
579 reg = <0x80121000 0x1000>;
580 interrupts = <0 19 0x4>;
581 status = "disabled";
582 };
583 uart@80007000 {
584 compatible = "arm,pl011", "arm,primecell";
585 reg = <0x80007000 0x1000>;
586 interrupts = <0 26 0x4>;
587 status = "disabled";
588 };
589
590 sdi@80126000 {
591 compatible = "arm,pl18x", "arm,primecell";
592 reg = <0x80126000 0x1000>;
593 interrupts = <0 60 0x4>;
594 status = "disabled";
595 };
596
597 sdi@80118000 {
598 compatible = "arm,pl18x", "arm,primecell";
599 reg = <0x80118000 0x1000>;
600 interrupts = <0 50 0x4>;
601 status = "disabled";
602 };
603
604 sdi@80005000 {
605 compatible = "arm,pl18x", "arm,primecell";
606 reg = <0x80005000 0x1000>;
607 interrupts = <0 41 0x4>;
608 status = "disabled";
609 };
610
611 sdi@80119000 {
612 compatible = "arm,pl18x", "arm,primecell";
613 reg = <0x80119000 0x1000>;
614 interrupts = <0 59 0x4>;
615 status = "disabled";
616 };
617
618 sdi@80114000 {
619 compatible = "arm,pl18x", "arm,primecell";
620 reg = <0x80114000 0x1000>;
621 interrupts = <0 99 0x4>;
622 status = "disabled";
623 };
624
625 sdi@80008000 {
626 compatible = "arm,pl18x", "arm,primecell";
627 reg = <0x80008000 0x1000>;
628 interrupts = <0 100 0x4>;
629 status = "disabled";
630 };
631
632 msp0: msp@80123000 {
633 compatible = "stericsson,ux500-msp-i2s";
634 reg = <0x80123000 0x1000>;
635 interrupts = <0 31 0x4>;
636 v-ape-supply = <&db8500_vape_reg>;
637 status = "disabled";
638 };
639
640 msp1: msp@80124000 {
641 compatible = "stericsson,ux500-msp-i2s";
642 reg = <0x80124000 0x1000>;
643 interrupts = <0 62 0x4>;
644 v-ape-supply = <&db8500_vape_reg>;
645 status = "disabled";
646 };
647
648 // HDMI sound
649 msp2: msp@80117000 {
650 compatible = "stericsson,ux500-msp-i2s";
651 reg = <0x80117000 0x1000>;
652 interrupts = <0 98 0x4>;
653 v-ape-supply = <&db8500_vape_reg>;
654 status = "disabled";
655 };
656
657 msp3: msp@80125000 {
658 compatible = "stericsson,ux500-msp-i2s";
659 reg = <0x80125000 0x1000>;
660 interrupts = <0 62 0x4>;
661 v-ape-supply = <&db8500_vape_reg>;
662 status = "disabled";
663 };
664
665 external-bus@50000000 {
666 compatible = "simple-bus";
667 reg = <0x50000000 0x4000000>;
668 #address-cells = <1>;
669 #size-cells = <1>;
670 ranges = <0 0x50000000 0x4000000>;
671 status = "disabled";
672 };
673 };
674 };
This page took 0.045597 seconds and 5 git commands to generate.