2 * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
4 /include/ "skeleton.dtsi"
11 reg = <0x00000000 0x04000000>,
12 <0x08000000 0x04000000>;
16 compatible = "arm,l210-cache";
17 reg = <0x10210000 0x1000>;
18 interrupt-parent = <&vica>;
25 /* Nomadik system timer */
26 compatible = "st,nomadik-mtu";
27 reg = <0x101e2000 0x1000>;
28 interrupt-parent = <&vica>;
30 clocks = <&timclk>, <&pclk>;
31 clock-names = "timclk", "apb_pclk";
36 reg = <0x101e3000 0x1000>;
37 interrupt-parent = <&vica>;
39 clocks = <&timclk>, <&pclk>;
40 clock-names = "timclk", "apb_pclk";
43 gpio0: gpio@101e4000 {
44 compatible = "st,nomadik-gpio";
45 reg = <0x101e4000 0x80>;
46 interrupt-parent = <&vica>;
49 #interrupt-cells = <2>;
56 gpio1: gpio@101e5000 {
57 compatible = "st,nomadik-gpio";
58 reg = <0x101e5000 0x80>;
59 interrupt-parent = <&vica>;
62 #interrupt-cells = <2>;
69 gpio2: gpio@101e6000 {
70 compatible = "st,nomadik-gpio";
71 reg = <0x101e6000 0x80>;
72 interrupt-parent = <&vica>;
75 #interrupt-cells = <2>;
82 gpio3: gpio@101e7000 {
83 compatible = "st,nomadik-gpio";
84 reg = <0x101e7000 0x80>;
85 interrupt-parent = <&vica>;
88 #interrupt-cells = <2>;
96 compatible = "stericsson,stn8815-pinctrl";
97 /* Pin configurations */
99 uart0_default_mux: uart0_mux {
107 uart1_default_mux: uart1_mux {
115 mmcsd_default_mux: mmcsd_mux {
117 ste,function = "mmcsd";
118 ste,pins = "mmcsd_a_1";
121 mmcsd_default_mode: mmcsd_default {
124 ste,pins = "GPIO8_B10";
128 /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR */
129 ste,pins = "GPIO10_C11", "GPIO15_A12",
134 /* MCCMD, MCDAT3-0, MCMSFBCLK */
135 ste,pins = "GPIO9_A10", "GPIO11_B11",
136 "GPIO12_A11", "GPIO13_C12",
137 "GPIO14_B12", "GPIO24_C15";
143 i2c0_default_mux: i2c0_mux {
145 ste,function = "i2c0";
146 ste,pins = "i2c0_a_1";
149 i2c0_default_mode: i2c0_default {
151 ste,pins = "GPIO62_D3", "GPIO63_D2";
157 i2c1_default_mux: i2c1_mux {
159 ste,function = "i2c1";
160 ste,pins = "i2c1_a_1";
163 i2c1_default_mode: i2c1_default {
165 ste,pins = "GPIO53_L4", "GPIO54_L3";
171 i2c2_default_mode: i2c2_default {
173 ste,pins = "GPIO73_C21", "GPIO74_C20";
181 compatible = "stericsson,nomadik-src";
182 reg = <0x101e0000 0x1000>;
187 * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
188 * that is parent of TIMCLK, PLL1 and PLL2
192 compatible = "fixed-clock";
193 clock-frequency = <19200000>;
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.
202 timclk: timclk@2.4M {
204 compatible = "fixed-factor-clock";
210 /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
213 compatible = "st,nomadik-pll-clock";
218 /* HCLK divides the PLL1 with 1,2,3 or 4 */
221 compatible = "st,nomadik-hclk-clock";
224 /* The PCLK domain uses HCLK right off */
227 compatible = "fixed-factor-clock";
233 /* PLL2 is usually 864 MHz and divided into a few fixed rates */
236 compatible = "st,nomadik-pll-clock";
240 clk216: clk216@216M {
242 compatible = "fixed-factor-clock";
247 clk108: clk108@108M {
249 compatible = "fixed-factor-clock";
256 compatible = "fixed-factor-clock";
257 /* The data sheet does not say how this is derived */
264 compatible = "fixed-factor-clock";
265 /* The data sheet does not say how this is derived */
272 compatible = "fixed-factor-clock";
278 /* This apparently exists as well */
279 ulpiclk: ulpiclk@60M {
281 compatible = "fixed-clock";
282 clock-frequency = <60000000>;
286 * IP AMBA bus clocks, driving the bus side of the
287 * peripheral clocking, clock gates.
290 hclkdma0: hclkdma0@48M {
292 compatible = "st,nomadik-src-clock";
296 hclksmc: hclksmc@48M {
298 compatible = "st,nomadik-src-clock";
302 hclksdram: hclksdram@48M {
304 compatible = "st,nomadik-src-clock";
308 hclkdma1: hclkdma1@48M {
310 compatible = "st,nomadik-src-clock";
314 hclkclcd: hclkclcd@48M {
316 compatible = "st,nomadik-src-clock";
320 pclkirda: pclkirda@48M {
322 compatible = "st,nomadik-src-clock";
326 pclkssp: pclkssp@48M {
328 compatible = "st,nomadik-src-clock";
332 pclkuart0: pclkuart0@48M {
334 compatible = "st,nomadik-src-clock";
338 pclksdi: pclksdi@48M {
340 compatible = "st,nomadik-src-clock";
344 pclki2c0: pclki2c0@48M {
346 compatible = "st,nomadik-src-clock";
350 pclki2c1: pclki2c1@48M {
352 compatible = "st,nomadik-src-clock";
356 pclkuart1: pclkuart1@48M {
358 compatible = "st,nomadik-src-clock";
362 pclkmsp0: pclkmsp0@48M {
364 compatible = "st,nomadik-src-clock";
368 hclkusb: hclkusb@48M {
370 compatible = "st,nomadik-src-clock";
374 hclkdif: hclkdif@48M {
376 compatible = "st,nomadik-src-clock";
380 hclksaa: hclksaa@48M {
382 compatible = "st,nomadik-src-clock";
386 hclksva: hclksva@48M {
388 compatible = "st,nomadik-src-clock";
392 pclkhsi: pclkhsi@48M {
394 compatible = "st,nomadik-src-clock";
398 pclkxti: pclkxti@48M {
400 compatible = "st,nomadik-src-clock";
404 pclkuart2: pclkuart2@48M {
406 compatible = "st,nomadik-src-clock";
410 pclkmsp1: pclkmsp1@48M {
412 compatible = "st,nomadik-src-clock";
416 pclkmsp2: pclkmsp2@48M {
418 compatible = "st,nomadik-src-clock";
422 pclkowm: pclkowm@48M {
424 compatible = "st,nomadik-src-clock";
428 hclkhpi: hclkhpi@48M {
430 compatible = "st,nomadik-src-clock";
434 pclkske: pclkske@48M {
436 compatible = "st,nomadik-src-clock";
440 pclkhsem: pclkhsem@48M {
442 compatible = "st,nomadik-src-clock";
448 compatible = "st,nomadik-src-clock";
452 hclkhash: hclkhash@48M {
454 compatible = "st,nomadik-src-clock";
458 hclkcryp: hclkcryp@48M {
460 compatible = "st,nomadik-src-clock";
464 pclkmshc: pclkmshc@48M {
466 compatible = "st,nomadik-src-clock";
470 hclkusbm: hclkusbm@48M {
472 compatible = "st,nomadik-src-clock";
476 hclkrng: hclkrng@48M {
478 compatible = "st,nomadik-src-clock";
483 /* IP kernel clocks */
486 compatible = "st,nomadik-src-clock";
488 clocks = <&clk72 &clk48>;
490 irdaclk: irdaclk@48M {
492 compatible = "st,nomadik-src-clock";
496 sspiclk: sspiclk@48M {
498 compatible = "st,nomadik-src-clock";
502 uart0clk: uart0clk@48M {
504 compatible = "st,nomadik-src-clock";
509 /* Also called MCCLK in some documents */
511 compatible = "st,nomadik-src-clock";
515 i2c0clk: i2c0clk@48M {
517 compatible = "st,nomadik-src-clock";
521 i2c1clk: i2c1clk@48M {
523 compatible = "st,nomadik-src-clock";
527 uart1clk: uart1clk@48M {
529 compatible = "st,nomadik-src-clock";
533 mspclk0: mspclk0@48M {
535 compatible = "st,nomadik-src-clock";
541 compatible = "st,nomadik-src-clock";
543 clocks = <&clk48>; /* 48 MHz not ULPI */
547 compatible = "st,nomadik-src-clock";
551 ipi2cclk: ipi2cclk@48M {
553 compatible = "st,nomadik-src-clock";
555 clocks = <&clk48>; /* Guess */
557 ipbmcclk: ipbmcclk@48M {
559 compatible = "st,nomadik-src-clock";
561 clocks = <&clk48>; /* Guess */
563 hsiclkrx: hsiclkrx@216M {
565 compatible = "st,nomadik-src-clock";
569 hsiclktx: hsiclktx@108M {
571 compatible = "st,nomadik-src-clock";
575 uart2clk: uart2clk@48M {
577 compatible = "st,nomadik-src-clock";
581 mspclk1: mspclk1@48M {
583 compatible = "st,nomadik-src-clock";
587 mspclk2: mspclk2@48M {
589 compatible = "st,nomadik-src-clock";
595 compatible = "st,nomadik-src-clock";
597 clocks = <&clk48>; /* Guess */
601 compatible = "st,nomadik-src-clock";
603 clocks = <&clk48>; /* Guess */
607 compatible = "st,nomadik-src-clock";
609 clocks = <&clk48>; /* Guess */
611 pclkmsp3: pclkmsp3@48M {
613 compatible = "st,nomadik-src-clock";
617 mspclk3: mspclk3@48M {
619 compatible = "st,nomadik-src-clock";
623 mshcclk: mshcclk@48M {
625 compatible = "st,nomadik-src-clock";
627 clocks = <&clk48>; /* Guess */
629 usbmclk: usbmclk@48M {
631 compatible = "st,nomadik-src-clock";
633 /* Stated as "48 MHz not ULPI clock" */
636 rngcclk: rngcclk@48M {
638 compatible = "st,nomadik-src-clock";
640 clocks = <&clk48>; /* Guess */
644 /* A NAND flash of 128 MiB */
645 fsmc: flash@40000000 {
646 compatible = "stericsson,fsmc-nand";
647 #address-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";
658 label = "X-Loader(NAND)";
662 label = "MemInit(NAND)";
663 reg = <0x40000 0x40000>;
666 label = "BootLoader(NAND)";
667 reg = <0x80000 0x200000>;
670 label = "Kernel zImage(NAND)";
671 reg = <0x280000 0x300000>;
674 label = "Root Filesystem(NAND)";
675 reg = <0x580000 0x1600000>;
678 label = "User Filesystem(NAND)";
679 reg = <0x1b80000 0x6480000>;
683 external-bus@34000000 {
684 compatible = "simple-bus";
685 reg = <0x34000000 0x1000000>;
686 #address-cells = <1>;
688 ranges = <0 0x34000000 0x1000000>;
690 compatible = "smsc,lan91c111";
691 reg = <0x300 0x0fd00>;
695 /* I2C0 connected to the STw4811 power management chip */
697 compatible = "st,nomadik-i2c", "arm,primecell";
698 reg = <0x101f8000 0x1000>;
699 interrupt-parent = <&vica>;
701 clock-frequency = <100000>;
702 #address-cells = <1>;
704 clocks = <&i2c0clk>, <&pclki2c0>;
705 clock-names = "mclk", "apb_pclk";
706 pinctrl-names = "default";
707 pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
710 compatible = "st,stw4811";
715 /* I2C1 connected to various sensors */
717 compatible = "st,nomadik-i2c", "arm,primecell";
718 reg = <0x101f7000 0x1000>;
719 interrupt-parent = <&vica>;
721 clock-frequency = <100000>;
722 #address-cells = <1>;
724 clocks = <&i2c1clk>, <&pclki2c1>;
725 clock-names = "mclk", "apb_pclk";
726 pinctrl-names = "default";
727 pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
730 compatible = "st,camera";
734 compatible = "st,stw5095";
738 compatible = "st,lis3lv02dl";
743 /* I2C2 connected to the USB portions of the STw4811 only */
745 compatible = "i2c-gpio";
746 gpios = <&gpio2 10 0>, /* sda */
747 <&gpio2 9 0>; /* scl */
748 #address-cells = <1>;
750 pinctrl-names = "default";
751 pinctrl-0 = <&i2c2_default_mode>;
754 compatible = "st,stw4811-usb";
760 compatible = "arm,amba-bus";
761 #address-cells = <1>;
765 vica: intc@0x10140000 {
766 compatible = "arm,versatile-vic";
767 interrupt-controller;
768 #interrupt-cells = <1>;
769 reg = <0x10140000 0x20>;
772 vicb: intc@0x10140020 {
773 compatible = "arm,versatile-vic";
774 interrupt-controller;
775 #interrupt-cells = <1>;
776 reg = <0x10140020 0x20>;
779 uart0: uart@101fd000 {
780 compatible = "arm,pl011", "arm,primecell";
781 reg = <0x101fd000 0x1000>;
782 interrupt-parent = <&vica>;
784 clocks = <&uart0clk>, <&pclkuart0>;
785 clock-names = "uartclk", "apb_pclk";
786 pinctrl-names = "default";
787 pinctrl-0 = <&uart0_default_mux>;
790 uart1: uart@101fb000 {
791 compatible = "arm,pl011", "arm,primecell";
792 reg = <0x101fb000 0x1000>;
793 interrupt-parent = <&vica>;
795 clocks = <&uart1clk>, <&pclkuart1>;
796 clock-names = "uartclk", "apb_pclk";
797 pinctrl-names = "default";
798 pinctrl-0 = <&uart1_default_mux>;
801 uart2: uart@101f2000 {
802 compatible = "arm,pl011", "arm,primecell";
803 reg = <0x101f2000 0x1000>;
804 interrupt-parent = <&vica>;
806 clocks = <&uart2clk>, <&pclkuart2>;
807 clock-names = "uartclk", "apb_pclk";
812 compatible = "arm,primecell";
813 reg = <0x101b0000 0x1000>;
814 clocks = <&rngcclk>, <&hclkrng>;
815 clock-names = "rng", "apb_pclk";
819 compatible = "arm,pl031", "arm,primecell";
820 reg = <0x101e8000 0x1000>;
822 clock-names = "apb_pclk";
823 interrupt-parent = <&vica>;
827 mmcsd: sdi@101f6000 {
828 compatible = "arm,pl18x", "arm,primecell";
829 reg = <0x101f6000 0x1000>;
830 clocks = <&sdiclk>, <&pclksdi>;
831 clock-names = "mclk", "apb_pclk";
832 interrupt-parent = <&vica>;
834 max-frequency = <48000000>;
836 mmc-cap-mmc-highspeed;
837 mmc-cap-sd-highspeed;
838 cd-gpios = <&gpio3 15 0x1>;
840 pinctrl-names = "default";
841 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;