]> git.ipfire.org Git - people/arne_f/kernel.git/blob - arch/arm/boot/dts/ste-nomadik-stn8815.dtsi
sun7i: dts: add bananapro.
[people/arne_f/kernel.git] / arch / arm / boot / dts / ste-nomadik-stn8815.dtsi
1 /*
2 * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
3 */
4 /include/ "skeleton.dtsi"
5
6 / {
7 #address-cells = <1>;
8 #size-cells = <1>;
9
10 memory {
11 reg = <0x00000000 0x04000000>,
12 <0x08000000 0x04000000>;
13 };
14
15 L2: l2-cache {
16 compatible = "arm,l210-cache";
17 reg = <0x10210000 0x1000>;
18 interrupt-parent = <&vica>;
19 interrupts = <30>;
20 cache-unified;
21 cache-level = <2>;
22 };
23
24 mtu0: mtu@101e2000 {
25 /* Nomadik system timer */
26 compatible = "st,nomadik-mtu";
27 reg = <0x101e2000 0x1000>;
28 interrupt-parent = <&vica>;
29 interrupts = <4>;
30 clocks = <&timclk>, <&pclk>;
31 clock-names = "timclk", "apb_pclk";
32 };
33
34 mtu1: mtu@101e3000 {
35 /* Secondary timer */
36 reg = <0x101e3000 0x1000>;
37 interrupt-parent = <&vica>;
38 interrupts = <5>;
39 clocks = <&timclk>, <&pclk>;
40 clock-names = "timclk", "apb_pclk";
41 };
42
43 gpio0: gpio@101e4000 {
44 compatible = "st,nomadik-gpio";
45 reg = <0x101e4000 0x80>;
46 interrupt-parent = <&vica>;
47 interrupts = <6>;
48 interrupt-controller;
49 #interrupt-cells = <2>;
50 gpio-controller;
51 #gpio-cells = <2>;
52 gpio-bank = <0>;
53 clocks = <&pclk>;
54 };
55
56 gpio1: gpio@101e5000 {
57 compatible = "st,nomadik-gpio";
58 reg = <0x101e5000 0x80>;
59 interrupt-parent = <&vica>;
60 interrupts = <7>;
61 interrupt-controller;
62 #interrupt-cells = <2>;
63 gpio-controller;
64 #gpio-cells = <2>;
65 gpio-bank = <1>;
66 clocks = <&pclk>;
67 };
68
69 gpio2: gpio@101e6000 {
70 compatible = "st,nomadik-gpio";
71 reg = <0x101e6000 0x80>;
72 interrupt-parent = <&vica>;
73 interrupts = <8>;
74 interrupt-controller;
75 #interrupt-cells = <2>;
76 gpio-controller;
77 #gpio-cells = <2>;
78 gpio-bank = <2>;
79 clocks = <&pclk>;
80 };
81
82 gpio3: gpio@101e7000 {
83 compatible = "st,nomadik-gpio";
84 reg = <0x101e7000 0x80>;
85 interrupt-parent = <&vica>;
86 interrupts = <9>;
87 interrupt-controller;
88 #interrupt-cells = <2>;
89 gpio-controller;
90 #gpio-cells = <2>;
91 gpio-bank = <3>;
92 clocks = <&pclk>;
93 };
94
95 pinctrl {
96 compatible = "stericsson,stn8815-pinctrl";
97 /* Pin configurations */
98 uart0 {
99 uart0_default_mux: uart0_mux {
100 u0_default_mux {
101 ste,function = "u0";
102 ste,pins = "u0_a_1";
103 };
104 };
105 };
106 uart1 {
107 uart1_default_mux: uart1_mux {
108 u1_default_mux {
109 ste,function = "u1";
110 ste,pins = "u1_a_1";
111 };
112 };
113 };
114 mmcsd {
115 mmcsd_default_mux: mmcsd_mux {
116 mmcsd_default_mux {
117 ste,function = "mmcsd";
118 ste,pins = "mmcsd_a_1";
119 };
120 };
121 mmcsd_default_mode: mmcsd_default {
122 mmcsd_default_cfg1 {
123 /* MCCLK */
124 ste,pins = "GPIO8_B10";
125 ste,output = <0>;
126 };
127 mmcsd_default_cfg2 {
128 /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR */
129 ste,pins = "GPIO10_C11", "GPIO15_A12",
130 "GPIO16_C13";
131 ste,output = <1>;
132 };
133 mmcsd_default_cfg3 {
134 /* MCCMD, MCDAT3-0, MCMSFBCLK */
135 ste,pins = "GPIO9_A10", "GPIO11_B11",
136 "GPIO12_A11", "GPIO13_C12",
137 "GPIO14_B12", "GPIO24_C15";
138 ste,input = <1>;
139 };
140 };
141 };
142 i2c0 {
143 i2c0_default_mux: i2c0_mux {
144 i2c0_default_mux {
145 ste,function = "i2c0";
146 ste,pins = "i2c0_a_1";
147 };
148 };
149 i2c0_default_mode: i2c0_default {
150 i2c0_default_cfg {
151 ste,pins = "GPIO62_D3", "GPIO63_D2";
152 ste,input = <0>;
153 };
154 };
155 };
156 i2c1 {
157 i2c1_default_mux: i2c1_mux {
158 i2c1_default_mux {
159 ste,function = "i2c1";
160 ste,pins = "i2c1_a_1";
161 };
162 };
163 i2c1_default_mode: i2c1_default {
164 i2c1_default_cfg {
165 ste,pins = "GPIO53_L4", "GPIO54_L3";
166 ste,input = <0>;
167 };
168 };
169 };
170 i2c2 {
171 i2c2_default_mode: i2c2_default {
172 i2c2_default_cfg {
173 ste,pins = "GPIO73_C21", "GPIO74_C20";
174 ste,input = <0>;
175 };
176 };
177 };
178 };
179
180 src: src@101e0000 {
181 compatible = "stericsson,nomadik-src";
182 reg = <0x101e0000 0x1000>;
183 disable-sxtalo;
184 disable-mxtalo;
185
186 /*
187 * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
188 * that is parent of TIMCLK, PLL1 and PLL2
189 */
190 mxtal: mxtal@19.2M {
191 #clock-cells = <0>;
192 compatible = "fixed-clock";
193 clock-frequency = <19200000>;
194 };
195
196 /*
197 * The 2.4 MHz TIMCLK reference clock is active at
198 * boot time, this is actually the MXTALCLK @19.2 MHz
199 * divided by 8. This clock is used by the timers and
200 * watchdog. See page 105 ff.
201 */
202 timclk: timclk@2.4M {
203 #clock-cells = <0>;
204 compatible = "fixed-factor-clock";
205 clock-div = <8>;
206 clock-mult = <1>;
207 clocks = <&mxtal>;
208 };
209
210 /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
211 pll1: pll1@0 {
212 #clock-cells = <0>;
213 compatible = "st,nomadik-pll-clock";
214 pll-id = <1>;
215 clocks = <&mxtal>;
216 };
217
218 /* HCLK divides the PLL1 with 1,2,3 or 4 */
219 hclk: hclk@0 {
220 #clock-cells = <0>;
221 compatible = "st,nomadik-hclk-clock";
222 clocks = <&pll1>;
223 };
224 /* The PCLK domain uses HCLK right off */
225 pclk: pclk@0 {
226 #clock-cells = <0>;
227 compatible = "fixed-factor-clock";
228 clock-div = <1>;
229 clock-mult = <1>;
230 clocks = <&hclk>;
231 };
232
233 /* PLL2 is usually 864 MHz and divided into a few fixed rates */
234 pll2: pll2@0 {
235 #clock-cells = <0>;
236 compatible = "st,nomadik-pll-clock";
237 pll-id = <2>;
238 clocks = <&mxtal>;
239 };
240 clk216: clk216@216M {
241 #clock-cells = <0>;
242 compatible = "fixed-factor-clock";
243 clock-div = <4>;
244 clock-mult = <1>;
245 clocks = <&pll2>;
246 };
247 clk108: clk108@108M {
248 #clock-cells = <0>;
249 compatible = "fixed-factor-clock";
250 clock-div = <2>;
251 clock-mult = <1>;
252 clocks = <&clk216>;
253 };
254 clk72: clk72@72M {
255 #clock-cells = <0>;
256 compatible = "fixed-factor-clock";
257 /* The data sheet does not say how this is derived */
258 clock-div = <12>;
259 clock-mult = <1>;
260 clocks = <&pll2>;
261 };
262 clk48: clk48@48M {
263 #clock-cells = <0>;
264 compatible = "fixed-factor-clock";
265 /* The data sheet does not say how this is derived */
266 clock-div = <18>;
267 clock-mult = <1>;
268 clocks = <&pll2>;
269 };
270 clk27: clk27@27M {
271 #clock-cells = <0>;
272 compatible = "fixed-factor-clock";
273 clock-div = <4>;
274 clock-mult = <1>;
275 clocks = <&clk108>;
276 };
277
278 /* This apparently exists as well */
279 ulpiclk: ulpiclk@60M {
280 #clock-cells = <0>;
281 compatible = "fixed-clock";
282 clock-frequency = <60000000>;
283 };
284
285 /*
286 * IP AMBA bus clocks, driving the bus side of the
287 * peripheral clocking, clock gates.
288 */
289
290 hclkdma0: hclkdma0@48M {
291 #clock-cells = <0>;
292 compatible = "st,nomadik-src-clock";
293 clock-id = <0>;
294 clocks = <&hclk>;
295 };
296 hclksmc: hclksmc@48M {
297 #clock-cells = <0>;
298 compatible = "st,nomadik-src-clock";
299 clock-id = <1>;
300 clocks = <&hclk>;
301 };
302 hclksdram: hclksdram@48M {
303 #clock-cells = <0>;
304 compatible = "st,nomadik-src-clock";
305 clock-id = <2>;
306 clocks = <&hclk>;
307 };
308 hclkdma1: hclkdma1@48M {
309 #clock-cells = <0>;
310 compatible = "st,nomadik-src-clock";
311 clock-id = <3>;
312 clocks = <&hclk>;
313 };
314 hclkclcd: hclkclcd@48M {
315 #clock-cells = <0>;
316 compatible = "st,nomadik-src-clock";
317 clock-id = <4>;
318 clocks = <&hclk>;
319 };
320 pclkirda: pclkirda@48M {
321 #clock-cells = <0>;
322 compatible = "st,nomadik-src-clock";
323 clock-id = <5>;
324 clocks = <&pclk>;
325 };
326 pclkssp: pclkssp@48M {
327 #clock-cells = <0>;
328 compatible = "st,nomadik-src-clock";
329 clock-id = <6>;
330 clocks = <&pclk>;
331 };
332 pclkuart0: pclkuart0@48M {
333 #clock-cells = <0>;
334 compatible = "st,nomadik-src-clock";
335 clock-id = <7>;
336 clocks = <&pclk>;
337 };
338 pclksdi: pclksdi@48M {
339 #clock-cells = <0>;
340 compatible = "st,nomadik-src-clock";
341 clock-id = <8>;
342 clocks = <&pclk>;
343 };
344 pclki2c0: pclki2c0@48M {
345 #clock-cells = <0>;
346 compatible = "st,nomadik-src-clock";
347 clock-id = <9>;
348 clocks = <&pclk>;
349 };
350 pclki2c1: pclki2c1@48M {
351 #clock-cells = <0>;
352 compatible = "st,nomadik-src-clock";
353 clock-id = <10>;
354 clocks = <&pclk>;
355 };
356 pclkuart1: pclkuart1@48M {
357 #clock-cells = <0>;
358 compatible = "st,nomadik-src-clock";
359 clock-id = <11>;
360 clocks = <&pclk>;
361 };
362 pclkmsp0: pclkmsp0@48M {
363 #clock-cells = <0>;
364 compatible = "st,nomadik-src-clock";
365 clock-id = <12>;
366 clocks = <&pclk>;
367 };
368 hclkusb: hclkusb@48M {
369 #clock-cells = <0>;
370 compatible = "st,nomadik-src-clock";
371 clock-id = <13>;
372 clocks = <&hclk>;
373 };
374 hclkdif: hclkdif@48M {
375 #clock-cells = <0>;
376 compatible = "st,nomadik-src-clock";
377 clock-id = <14>;
378 clocks = <&hclk>;
379 };
380 hclksaa: hclksaa@48M {
381 #clock-cells = <0>;
382 compatible = "st,nomadik-src-clock";
383 clock-id = <15>;
384 clocks = <&hclk>;
385 };
386 hclksva: hclksva@48M {
387 #clock-cells = <0>;
388 compatible = "st,nomadik-src-clock";
389 clock-id = <16>;
390 clocks = <&hclk>;
391 };
392 pclkhsi: pclkhsi@48M {
393 #clock-cells = <0>;
394 compatible = "st,nomadik-src-clock";
395 clock-id = <17>;
396 clocks = <&pclk>;
397 };
398 pclkxti: pclkxti@48M {
399 #clock-cells = <0>;
400 compatible = "st,nomadik-src-clock";
401 clock-id = <18>;
402 clocks = <&pclk>;
403 };
404 pclkuart2: pclkuart2@48M {
405 #clock-cells = <0>;
406 compatible = "st,nomadik-src-clock";
407 clock-id = <19>;
408 clocks = <&pclk>;
409 };
410 pclkmsp1: pclkmsp1@48M {
411 #clock-cells = <0>;
412 compatible = "st,nomadik-src-clock";
413 clock-id = <20>;
414 clocks = <&pclk>;
415 };
416 pclkmsp2: pclkmsp2@48M {
417 #clock-cells = <0>;
418 compatible = "st,nomadik-src-clock";
419 clock-id = <21>;
420 clocks = <&pclk>;
421 };
422 pclkowm: pclkowm@48M {
423 #clock-cells = <0>;
424 compatible = "st,nomadik-src-clock";
425 clock-id = <22>;
426 clocks = <&pclk>;
427 };
428 hclkhpi: hclkhpi@48M {
429 #clock-cells = <0>;
430 compatible = "st,nomadik-src-clock";
431 clock-id = <23>;
432 clocks = <&hclk>;
433 };
434 pclkske: pclkske@48M {
435 #clock-cells = <0>;
436 compatible = "st,nomadik-src-clock";
437 clock-id = <24>;
438 clocks = <&pclk>;
439 };
440 pclkhsem: pclkhsem@48M {
441 #clock-cells = <0>;
442 compatible = "st,nomadik-src-clock";
443 clock-id = <25>;
444 clocks = <&pclk>;
445 };
446 hclk3d: hclk3d@48M {
447 #clock-cells = <0>;
448 compatible = "st,nomadik-src-clock";
449 clock-id = <26>;
450 clocks = <&hclk>;
451 };
452 hclkhash: hclkhash@48M {
453 #clock-cells = <0>;
454 compatible = "st,nomadik-src-clock";
455 clock-id = <27>;
456 clocks = <&hclk>;
457 };
458 hclkcryp: hclkcryp@48M {
459 #clock-cells = <0>;
460 compatible = "st,nomadik-src-clock";
461 clock-id = <28>;
462 clocks = <&hclk>;
463 };
464 pclkmshc: pclkmshc@48M {
465 #clock-cells = <0>;
466 compatible = "st,nomadik-src-clock";
467 clock-id = <29>;
468 clocks = <&pclk>;
469 };
470 hclkusbm: hclkusbm@48M {
471 #clock-cells = <0>;
472 compatible = "st,nomadik-src-clock";
473 clock-id = <30>;
474 clocks = <&hclk>;
475 };
476 hclkrng: hclkrng@48M {
477 #clock-cells = <0>;
478 compatible = "st,nomadik-src-clock";
479 clock-id = <31>;
480 clocks = <&hclk>;
481 };
482
483 /* IP kernel clocks */
484 clcdclk: clcdclk@0 {
485 #clock-cells = <0>;
486 compatible = "st,nomadik-src-clock";
487 clock-id = <36>;
488 clocks = <&clk72 &clk48>;
489 };
490 irdaclk: irdaclk@48M {
491 #clock-cells = <0>;
492 compatible = "st,nomadik-src-clock";
493 clock-id = <37>;
494 clocks = <&clk48>;
495 };
496 sspiclk: sspiclk@48M {
497 #clock-cells = <0>;
498 compatible = "st,nomadik-src-clock";
499 clock-id = <38>;
500 clocks = <&clk48>;
501 };
502 uart0clk: uart0clk@48M {
503 #clock-cells = <0>;
504 compatible = "st,nomadik-src-clock";
505 clock-id = <39>;
506 clocks = <&clk48>;
507 };
508 sdiclk: sdiclk@48M {
509 /* Also called MCCLK in some documents */
510 #clock-cells = <0>;
511 compatible = "st,nomadik-src-clock";
512 clock-id = <40>;
513 clocks = <&clk48>;
514 };
515 i2c0clk: i2c0clk@48M {
516 #clock-cells = <0>;
517 compatible = "st,nomadik-src-clock";
518 clock-id = <41>;
519 clocks = <&clk48>;
520 };
521 i2c1clk: i2c1clk@48M {
522 #clock-cells = <0>;
523 compatible = "st,nomadik-src-clock";
524 clock-id = <42>;
525 clocks = <&clk48>;
526 };
527 uart1clk: uart1clk@48M {
528 #clock-cells = <0>;
529 compatible = "st,nomadik-src-clock";
530 clock-id = <43>;
531 clocks = <&clk48>;
532 };
533 mspclk0: mspclk0@48M {
534 #clock-cells = <0>;
535 compatible = "st,nomadik-src-clock";
536 clock-id = <44>;
537 clocks = <&clk48>;
538 };
539 usbclk: usbclk@48M {
540 #clock-cells = <0>;
541 compatible = "st,nomadik-src-clock";
542 clock-id = <45>;
543 clocks = <&clk48>; /* 48 MHz not ULPI */
544 };
545 difclk: difclk@72M {
546 #clock-cells = <0>;
547 compatible = "st,nomadik-src-clock";
548 clock-id = <46>;
549 clocks = <&clk72>;
550 };
551 ipi2cclk: ipi2cclk@48M {
552 #clock-cells = <0>;
553 compatible = "st,nomadik-src-clock";
554 clock-id = <47>;
555 clocks = <&clk48>; /* Guess */
556 };
557 ipbmcclk: ipbmcclk@48M {
558 #clock-cells = <0>;
559 compatible = "st,nomadik-src-clock";
560 clock-id = <48>;
561 clocks = <&clk48>; /* Guess */
562 };
563 hsiclkrx: hsiclkrx@216M {
564 #clock-cells = <0>;
565 compatible = "st,nomadik-src-clock";
566 clock-id = <49>;
567 clocks = <&clk216>;
568 };
569 hsiclktx: hsiclktx@108M {
570 #clock-cells = <0>;
571 compatible = "st,nomadik-src-clock";
572 clock-id = <50>;
573 clocks = <&clk108>;
574 };
575 uart2clk: uart2clk@48M {
576 #clock-cells = <0>;
577 compatible = "st,nomadik-src-clock";
578 clock-id = <51>;
579 clocks = <&clk48>;
580 };
581 mspclk1: mspclk1@48M {
582 #clock-cells = <0>;
583 compatible = "st,nomadik-src-clock";
584 clock-id = <52>;
585 clocks = <&clk48>;
586 };
587 mspclk2: mspclk2@48M {
588 #clock-cells = <0>;
589 compatible = "st,nomadik-src-clock";
590 clock-id = <53>;
591 clocks = <&clk48>;
592 };
593 owmclk: owmclk@48M {
594 #clock-cells = <0>;
595 compatible = "st,nomadik-src-clock";
596 clock-id = <54>;
597 clocks = <&clk48>; /* Guess */
598 };
599 skeclk: skeclk@48M {
600 #clock-cells = <0>;
601 compatible = "st,nomadik-src-clock";
602 clock-id = <56>;
603 clocks = <&clk48>; /* Guess */
604 };
605 x3dclk: x3dclk@48M {
606 #clock-cells = <0>;
607 compatible = "st,nomadik-src-clock";
608 clock-id = <58>;
609 clocks = <&clk48>; /* Guess */
610 };
611 pclkmsp3: pclkmsp3@48M {
612 #clock-cells = <0>;
613 compatible = "st,nomadik-src-clock";
614 clock-id = <59>;
615 clocks = <&pclk>;
616 };
617 mspclk3: mspclk3@48M {
618 #clock-cells = <0>;
619 compatible = "st,nomadik-src-clock";
620 clock-id = <60>;
621 clocks = <&clk48>;
622 };
623 mshcclk: mshcclk@48M {
624 #clock-cells = <0>;
625 compatible = "st,nomadik-src-clock";
626 clock-id = <61>;
627 clocks = <&clk48>; /* Guess */
628 };
629 usbmclk: usbmclk@48M {
630 #clock-cells = <0>;
631 compatible = "st,nomadik-src-clock";
632 clock-id = <62>;
633 /* Stated as "48 MHz not ULPI clock" */
634 clocks = <&clk48>;
635 };
636 rngcclk: rngcclk@48M {
637 #clock-cells = <0>;
638 compatible = "st,nomadik-src-clock";
639 clock-id = <63>;
640 clocks = <&clk48>; /* Guess */
641 };
642 };
643
644 /* A NAND flash of 128 MiB */
645 fsmc: flash@40000000 {
646 compatible = "stericsson,fsmc-nand";
647 #address-cells = <1>;
648 #size-cells = <1>;
649 reg = <0x10100000 0x1000>, /* FSMC Register*/
650 <0x40000000 0x2000>, /* NAND Base DATA */
651 <0x41000000 0x2000>, /* NAND Base ADDR */
652 <0x40800000 0x2000>; /* NAND Base CMD */
653 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
654 clocks = <&hclksmc>;
655 status = "okay";
656 timings = /bits/ 8 <0 0 0 0x10 0x0a 0>;
657
658 partition@0 {
659 label = "X-Loader(NAND)";
660 reg = <0x0 0x40000>;
661 };
662 partition@40000 {
663 label = "MemInit(NAND)";
664 reg = <0x40000 0x40000>;
665 };
666 partition@80000 {
667 label = "BootLoader(NAND)";
668 reg = <0x80000 0x200000>;
669 };
670 partition@280000 {
671 label = "Kernel zImage(NAND)";
672 reg = <0x280000 0x300000>;
673 };
674 partition@580000 {
675 label = "Root Filesystem(NAND)";
676 reg = <0x580000 0x1600000>;
677 };
678 partition@1b80000 {
679 label = "User Filesystem(NAND)";
680 reg = <0x1b80000 0x6480000>;
681 };
682 };
683
684 external-bus@34000000 {
685 compatible = "simple-bus";
686 reg = <0x34000000 0x1000000>;
687 #address-cells = <1>;
688 #size-cells = <1>;
689 ranges = <0 0x34000000 0x1000000>;
690 ethernet@300 {
691 compatible = "smsc,lan91c111";
692 reg = <0x300 0x0fd00>;
693 };
694 };
695
696 /* I2C0 connected to the STw4811 power management chip */
697 i2c0 {
698 compatible = "st,nomadik-i2c", "arm,primecell";
699 reg = <0x101f8000 0x1000>;
700 interrupt-parent = <&vica>;
701 interrupts = <20>;
702 clock-frequency = <100000>;
703 #address-cells = <1>;
704 #size-cells = <0>;
705 clocks = <&i2c0clk>, <&pclki2c0>;
706 clock-names = "mclk", "apb_pclk";
707 pinctrl-names = "default";
708 pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
709
710 stw4811@2d {
711 compatible = "st,stw4811";
712 reg = <0x2d>;
713 vmmc_regulator: vmmc {
714 compatible = "st,stw481x-vmmc";
715 regulator-name = "VMMC";
716 regulator-min-microvolt = <1800000>;
717 regulator-max-microvolt = <3300000>;
718 };
719 };
720 };
721
722 /* I2C1 connected to various sensors */
723 i2c1 {
724 compatible = "st,nomadik-i2c", "arm,primecell";
725 reg = <0x101f7000 0x1000>;
726 interrupt-parent = <&vica>;
727 interrupts = <21>;
728 clock-frequency = <100000>;
729 #address-cells = <1>;
730 #size-cells = <0>;
731 clocks = <&i2c1clk>, <&pclki2c1>;
732 clock-names = "mclk", "apb_pclk";
733 pinctrl-names = "default";
734 pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
735
736 camera@2d {
737 compatible = "st,camera";
738 reg = <0x10>;
739 };
740 stw5095@1a {
741 compatible = "st,stw5095";
742 reg = <0x1a>;
743 };
744 lis3lv02dl@1d {
745 compatible = "st,lis3lv02dl";
746 reg = <0x1d>;
747 };
748 };
749
750 /* I2C2 connected to the USB portions of the STw4811 only */
751 i2c2 {
752 compatible = "i2c-gpio";
753 gpios = <&gpio2 10 0>, /* sda */
754 <&gpio2 9 0>; /* scl */
755 #address-cells = <1>;
756 #size-cells = <0>;
757 pinctrl-names = "default";
758 pinctrl-0 = <&i2c2_default_mode>;
759
760 stw4811@2d {
761 compatible = "st,stw4811-usb";
762 reg = <0x2d>;
763 };
764 };
765
766 amba {
767 compatible = "arm,amba-bus";
768 #address-cells = <1>;
769 #size-cells = <1>;
770 ranges;
771
772 vica: intc@10140000 {
773 compatible = "arm,versatile-vic";
774 interrupt-controller;
775 #interrupt-cells = <1>;
776 reg = <0x10140000 0x20>;
777 };
778
779 vicb: intc@10140020 {
780 compatible = "arm,versatile-vic";
781 interrupt-controller;
782 #interrupt-cells = <1>;
783 reg = <0x10140020 0x20>;
784 };
785
786 uart0: uart@101fd000 {
787 compatible = "arm,pl011", "arm,primecell";
788 reg = <0x101fd000 0x1000>;
789 interrupt-parent = <&vica>;
790 interrupts = <12>;
791 clocks = <&uart0clk>, <&pclkuart0>;
792 clock-names = "uartclk", "apb_pclk";
793 pinctrl-names = "default";
794 pinctrl-0 = <&uart0_default_mux>;
795 };
796
797 uart1: uart@101fb000 {
798 compatible = "arm,pl011", "arm,primecell";
799 reg = <0x101fb000 0x1000>;
800 interrupt-parent = <&vica>;
801 interrupts = <17>;
802 clocks = <&uart1clk>, <&pclkuart1>;
803 clock-names = "uartclk", "apb_pclk";
804 pinctrl-names = "default";
805 pinctrl-0 = <&uart1_default_mux>;
806 };
807
808 uart2: uart@101f2000 {
809 compatible = "arm,pl011", "arm,primecell";
810 reg = <0x101f2000 0x1000>;
811 interrupt-parent = <&vica>;
812 interrupts = <28>;
813 clocks = <&uart2clk>, <&pclkuart2>;
814 clock-names = "uartclk", "apb_pclk";
815 status = "disabled";
816 };
817
818 rng: rng@101b0000 {
819 compatible = "arm,primecell";
820 reg = <0x101b0000 0x1000>;
821 clocks = <&rngcclk>, <&hclkrng>;
822 clock-names = "rng", "apb_pclk";
823 };
824
825 rtc: rtc@101e8000 {
826 compatible = "arm,pl031", "arm,primecell";
827 reg = <0x101e8000 0x1000>;
828 clocks = <&pclk>;
829 clock-names = "apb_pclk";
830 interrupt-parent = <&vica>;
831 interrupts = <10>;
832 };
833
834 mmcsd: sdi@101f6000 {
835 compatible = "arm,pl18x", "arm,primecell";
836 reg = <0x101f6000 0x1000>;
837 clocks = <&sdiclk>, <&pclksdi>;
838 clock-names = "mclk", "apb_pclk";
839 interrupt-parent = <&vica>;
840 interrupts = <22>;
841 max-frequency = <48000000>;
842 bus-width = <4>;
843 mmc-cap-mmc-highspeed;
844 mmc-cap-sd-highspeed;
845 cd-gpios = <&gpio3 15 0x1>;
846 cd-inverted;
847 pinctrl-names = "default";
848 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
849 vmmc-supply = <&vmmc_regulator>;
850 };
851 };
852 };