2 * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
5 #include <dt-bindings/gpio/gpio.h>
6 #include "skeleton.dtsi"
13 reg = <0x00000000 0x04000000>,
14 <0x08000000 0x04000000>;
18 compatible = "arm,l210-cache";
19 reg = <0x10210000 0x1000>;
20 interrupt-parent = <&vica>;
24 cache-size = <131072>;
26 cache-line-size = <32>;
27 /* At full speed latency must be >=2 */
28 arm,tag-latency = <2>;
29 arm,data-latency = <2 2>;
30 arm,dirty-latency = <2>;
34 /* Nomadik system timer */
35 compatible = "st,nomadik-mtu";
36 reg = <0x101e2000 0x1000>;
37 interrupt-parent = <&vica>;
39 clocks = <&timclk>, <&pclk>;
40 clock-names = "timclk", "apb_pclk";
45 reg = <0x101e3000 0x1000>;
46 interrupt-parent = <&vica>;
48 clocks = <&timclk>, <&pclk>;
49 clock-names = "timclk", "apb_pclk";
52 gpio0: gpio@101e4000 {
53 compatible = "st,nomadik-gpio";
54 reg = <0x101e4000 0x80>;
55 interrupt-parent = <&vica>;
58 #interrupt-cells = <2>;
62 gpio-ranges = <&pinctrl 0 0 32>;
66 gpio1: gpio@101e5000 {
67 compatible = "st,nomadik-gpio";
68 reg = <0x101e5000 0x80>;
69 interrupt-parent = <&vica>;
72 #interrupt-cells = <2>;
76 gpio-ranges = <&pinctrl 0 32 32>;
80 gpio2: gpio@101e6000 {
81 compatible = "st,nomadik-gpio";
82 reg = <0x101e6000 0x80>;
83 interrupt-parent = <&vica>;
86 #interrupt-cells = <2>;
90 gpio-ranges = <&pinctrl 0 64 32>;
94 gpio3: gpio@101e7000 {
95 compatible = "st,nomadik-gpio";
96 reg = <0x101e7000 0x80>;
98 interrupt-parent = <&vica>;
100 interrupt-controller;
101 #interrupt-cells = <2>;
105 gpio-ranges = <&pinctrl 0 96 28>;
110 compatible = "stericsson,stn8815-pinctrl";
111 nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>;
112 /* Pin configurations */
114 uart1_default_mux: uart1_mux {
122 mmcsd_default_mux: mmcsd_mux {
125 groups = "mmcsd_a_1", "mmcsd_b_1";
128 mmcsd_default_mode: mmcsd_default {
135 /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 */
136 pins = "GPIO10_C11", "GPIO15_A12",
137 "GPIO16_C13", "GPIO23_D15";
141 /* MCCMD, MCDAT3-0, MCMSFBCLK */
142 pins = "GPIO9_A10", "GPIO11_B11",
143 "GPIO12_A11", "GPIO13_C12",
144 "GPIO14_B12", "GPIO24_C15";
150 i2c0_default_mux: i2c0_mux {
156 i2c0_default_mode: i2c0_default {
158 pins = "GPIO62_D3", "GPIO63_D2";
164 i2c1_default_mux: i2c1_mux {
170 i2c1_default_mode: i2c1_default {
172 pins = "GPIO53_L4", "GPIO54_L3";
180 compatible = "stericsson,nomadik-src";
181 reg = <0x101e0000 0x1000>;
184 * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
185 * that is parent of TIMCLK, PLL1 and PLL2
189 compatible = "fixed-clock";
190 clock-frequency = <19200000>;
194 * The 2.4 MHz TIMCLK reference clock is active at
195 * boot time, this is actually the MXTALCLK @19.2 MHz
196 * divided by 8. This clock is used by the timers and
197 * watchdog. See page 105 ff.
199 timclk: timclk@2.4M {
201 compatible = "fixed-factor-clock";
207 /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
210 compatible = "st,nomadik-pll-clock";
215 /* HCLK divides the PLL1 with 1,2,3 or 4 */
218 compatible = "st,nomadik-hclk-clock";
221 /* The PCLK domain uses HCLK right off */
224 compatible = "fixed-factor-clock";
230 /* PLL2 is usually 864 MHz and divided into a few fixed rates */
233 compatible = "st,nomadik-pll-clock";
237 clk216: clk216@216M {
239 compatible = "fixed-factor-clock";
244 clk108: clk108@108M {
246 compatible = "fixed-factor-clock";
253 compatible = "fixed-factor-clock";
254 /* The data sheet does not say how this is derived */
261 compatible = "fixed-factor-clock";
262 /* The data sheet does not say how this is derived */
269 compatible = "fixed-factor-clock";
275 /* This apparently exists as well */
276 ulpiclk: ulpiclk@60M {
278 compatible = "fixed-clock";
279 clock-frequency = <60000000>;
283 * IP AMBA bus clocks, driving the bus side of the
284 * peripheral clocking, clock gates.
287 hclkdma0: hclkdma0@48M {
289 compatible = "st,nomadik-src-clock";
293 hclksmc: hclksmc@48M {
295 compatible = "st,nomadik-src-clock";
299 hclksdram: hclksdram@48M {
301 compatible = "st,nomadik-src-clock";
305 hclkdma1: hclkdma1@48M {
307 compatible = "st,nomadik-src-clock";
311 hclkclcd: hclkclcd@48M {
313 compatible = "st,nomadik-src-clock";
317 pclkirda: pclkirda@48M {
319 compatible = "st,nomadik-src-clock";
323 pclkssp: pclkssp@48M {
325 compatible = "st,nomadik-src-clock";
329 pclkuart0: pclkuart0@48M {
331 compatible = "st,nomadik-src-clock";
335 pclksdi: pclksdi@48M {
337 compatible = "st,nomadik-src-clock";
341 pclki2c0: pclki2c0@48M {
343 compatible = "st,nomadik-src-clock";
347 pclki2c1: pclki2c1@48M {
349 compatible = "st,nomadik-src-clock";
353 pclkuart1: pclkuart1@48M {
355 compatible = "st,nomadik-src-clock";
359 pclkmsp0: pclkmsp0@48M {
361 compatible = "st,nomadik-src-clock";
365 hclkusb: hclkusb@48M {
367 compatible = "st,nomadik-src-clock";
371 hclkdif: hclkdif@48M {
373 compatible = "st,nomadik-src-clock";
377 hclksaa: hclksaa@48M {
379 compatible = "st,nomadik-src-clock";
383 hclksva: hclksva@48M {
385 compatible = "st,nomadik-src-clock";
389 pclkhsi: pclkhsi@48M {
391 compatible = "st,nomadik-src-clock";
395 pclkxti: pclkxti@48M {
397 compatible = "st,nomadik-src-clock";
401 pclkuart2: pclkuart2@48M {
403 compatible = "st,nomadik-src-clock";
407 pclkmsp1: pclkmsp1@48M {
409 compatible = "st,nomadik-src-clock";
413 pclkmsp2: pclkmsp2@48M {
415 compatible = "st,nomadik-src-clock";
419 pclkowm: pclkowm@48M {
421 compatible = "st,nomadik-src-clock";
425 hclkhpi: hclkhpi@48M {
427 compatible = "st,nomadik-src-clock";
431 pclkske: pclkske@48M {
433 compatible = "st,nomadik-src-clock";
437 pclkhsem: pclkhsem@48M {
439 compatible = "st,nomadik-src-clock";
445 compatible = "st,nomadik-src-clock";
449 hclkhash: hclkhash@48M {
451 compatible = "st,nomadik-src-clock";
455 hclkcryp: hclkcryp@48M {
457 compatible = "st,nomadik-src-clock";
461 pclkmshc: pclkmshc@48M {
463 compatible = "st,nomadik-src-clock";
467 hclkusbm: hclkusbm@48M {
469 compatible = "st,nomadik-src-clock";
473 hclkrng: hclkrng@48M {
475 compatible = "st,nomadik-src-clock";
480 /* IP kernel clocks */
483 compatible = "st,nomadik-src-clock";
485 clocks = <&clk72 &clk48>;
487 irdaclk: irdaclk@48M {
489 compatible = "st,nomadik-src-clock";
493 sspiclk: sspiclk@48M {
495 compatible = "st,nomadik-src-clock";
499 uart0clk: uart0clk@48M {
501 compatible = "st,nomadik-src-clock";
506 /* Also called MCCLK in some documents */
508 compatible = "st,nomadik-src-clock";
512 i2c0clk: i2c0clk@48M {
514 compatible = "st,nomadik-src-clock";
518 i2c1clk: i2c1clk@48M {
520 compatible = "st,nomadik-src-clock";
524 uart1clk: uart1clk@48M {
526 compatible = "st,nomadik-src-clock";
530 mspclk0: mspclk0@48M {
532 compatible = "st,nomadik-src-clock";
538 compatible = "st,nomadik-src-clock";
540 clocks = <&clk48>; /* 48 MHz not ULPI */
544 compatible = "st,nomadik-src-clock";
548 ipi2cclk: ipi2cclk@48M {
550 compatible = "st,nomadik-src-clock";
552 clocks = <&clk48>; /* Guess */
554 ipbmcclk: ipbmcclk@48M {
556 compatible = "st,nomadik-src-clock";
558 clocks = <&clk48>; /* Guess */
560 hsiclkrx: hsiclkrx@216M {
562 compatible = "st,nomadik-src-clock";
566 hsiclktx: hsiclktx@108M {
568 compatible = "st,nomadik-src-clock";
572 uart2clk: uart2clk@48M {
574 compatible = "st,nomadik-src-clock";
578 mspclk1: mspclk1@48M {
580 compatible = "st,nomadik-src-clock";
584 mspclk2: mspclk2@48M {
586 compatible = "st,nomadik-src-clock";
592 compatible = "st,nomadik-src-clock";
594 clocks = <&clk48>; /* Guess */
598 compatible = "st,nomadik-src-clock";
600 clocks = <&clk48>; /* Guess */
604 compatible = "st,nomadik-src-clock";
606 clocks = <&clk48>; /* Guess */
608 pclkmsp3: pclkmsp3@48M {
610 compatible = "st,nomadik-src-clock";
614 mspclk3: mspclk3@48M {
616 compatible = "st,nomadik-src-clock";
620 mshcclk: mshcclk@48M {
622 compatible = "st,nomadik-src-clock";
624 clocks = <&clk48>; /* Guess */
626 usbmclk: usbmclk@48M {
628 compatible = "st,nomadik-src-clock";
630 /* Stated as "48 MHz not ULPI clock" */
633 rngcclk: rngcclk@48M {
635 compatible = "st,nomadik-src-clock";
637 clocks = <&clk48>; /* Guess */
641 /* A NAND flash of 128 MiB */
642 fsmc: flash@40000000 {
643 compatible = "stericsson,fsmc-nand";
644 #address-cells = <1>;
646 reg = <0x10100000 0x1000>, /* FSMC Register*/
647 <0x40000000 0x2000>, /* NAND Base DATA */
648 <0x41000000 0x2000>, /* NAND Base ADDR */
649 <0x40800000 0x2000>; /* NAND Base CMD */
650 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
653 timings = /bits/ 8 <0 0 0 0x10 0x0a 0>;
656 label = "X-Loader(NAND)";
660 label = "MemInit(NAND)";
661 reg = <0x40000 0x40000>;
664 label = "BootLoader(NAND)";
665 reg = <0x80000 0x200000>;
668 label = "Kernel zImage(NAND)";
669 reg = <0x280000 0x300000>;
672 label = "Root Filesystem(NAND)";
673 reg = <0x580000 0x1600000>;
676 label = "User Filesystem(NAND)";
677 reg = <0x1b80000 0x6480000>;
681 /* I2C0 connected to the STw4811 power management chip */
683 compatible = "st,nomadik-i2c", "arm,primecell";
684 reg = <0x101f8000 0x1000>;
685 interrupt-parent = <&vica>;
687 clock-frequency = <100000>;
688 #address-cells = <1>;
690 clocks = <&i2c0clk>, <&pclki2c0>;
691 clock-names = "mclk", "apb_pclk";
692 pinctrl-names = "default";
693 pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>;
696 compatible = "st,stw4811";
698 vmmc_regulator: vmmc {
699 compatible = "st,stw481x-vmmc";
700 regulator-name = "VMMC";
701 regulator-min-microvolt = <1800000>;
702 regulator-max-microvolt = <3300000>;
707 /* I2C1 connected to various sensors */
709 compatible = "st,nomadik-i2c", "arm,primecell";
710 reg = <0x101f7000 0x1000>;
711 interrupt-parent = <&vica>;
713 clock-frequency = <100000>;
714 #address-cells = <1>;
716 clocks = <&i2c1clk>, <&pclki2c1>;
717 clock-names = "mclk", "apb_pclk";
718 pinctrl-names = "default";
719 pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>;
722 compatible = "st,camera";
726 compatible = "st,stw5095";
732 compatible = "arm,amba-bus";
733 #address-cells = <1>;
737 vica: intc@10140000 {
738 compatible = "arm,versatile-vic";
739 interrupt-controller;
740 #interrupt-cells = <1>;
741 reg = <0x10140000 0x20>;
744 vicb: intc@10140020 {
745 compatible = "arm,versatile-vic";
746 interrupt-controller;
747 #interrupt-cells = <1>;
748 reg = <0x10140020 0x20>;
751 uart0: uart@101fd000 {
752 compatible = "arm,pl011", "arm,primecell";
753 reg = <0x101fd000 0x1000>;
754 interrupt-parent = <&vica>;
756 clocks = <&uart0clk>, <&pclkuart0>;
757 clock-names = "uartclk", "apb_pclk";
761 uart1: uart@101fb000 {
762 compatible = "arm,pl011", "arm,primecell";
763 reg = <0x101fb000 0x1000>;
764 interrupt-parent = <&vica>;
766 clocks = <&uart1clk>, <&pclkuart1>;
767 clock-names = "uartclk", "apb_pclk";
768 pinctrl-names = "default";
769 pinctrl-0 = <&uart1_default_mux>;
772 uart2: uart@101f2000 {
773 compatible = "arm,pl011", "arm,primecell";
774 reg = <0x101f2000 0x1000>;
775 interrupt-parent = <&vica>;
777 clocks = <&uart2clk>, <&pclkuart2>;
778 clock-names = "uartclk", "apb_pclk";
783 compatible = "arm,primecell";
784 reg = <0x101b0000 0x1000>;
785 clocks = <&rngcclk>, <&hclkrng>;
786 clock-names = "rng", "apb_pclk";
790 compatible = "arm,pl031", "arm,primecell";
791 reg = <0x101e8000 0x1000>;
793 clock-names = "apb_pclk";
794 interrupt-parent = <&vica>;
798 mmcsd: sdi@101f6000 {
799 compatible = "arm,pl18x", "arm,primecell";
800 reg = <0x101f6000 0x1000>;
801 clocks = <&sdiclk>, <&pclksdi>;
802 clock-names = "mclk", "apb_pclk";
803 interrupt-parent = <&vica>;
805 max-frequency = <48000000>;
809 pinctrl-names = "default";
810 pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
811 vmmc-supply = <&vmmc_regulator>;