Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszer...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / tango4-common.dtsi
1 /*
2  * Based on Mans Rullgard's Tango3 DT
3  * https://github.com/mansr/linux-tangox
4  */
5
6 #include <dt-bindings/interrupt-controller/arm-gic.h>
7
8 #define  CPU_CLK        0
9 #define  SYS_CLK        1
10 #define  USB_CLK        2
11 #define SDIO_CLK        3
12
13 / {
14         interrupt-parent = <&gic>;
15         #address-cells = <1>;
16         #size-cells = <1>;
17
18         periph_clk: periph_clk {
19                 compatible = "fixed-factor-clock";
20                 clocks = <&clkgen CPU_CLK>;
21                 clock-mult = <1>;
22                 clock-div  = <2>;
23                 #clock-cells = <0>;
24         };
25
26         mpcore {
27                 compatible = "simple-bus";
28                 ranges = <0x00000000 0x20000000 0x2000>;
29                 #address-cells = <1>;
30                 #size-cells = <1>;
31
32                 scu@0 {
33                         compatible = "arm,cortex-a9-scu";
34                         reg = <0x0 0x100>;
35                 };
36
37                 twd@600 {
38                         compatible = "arm,cortex-a9-twd-timer";
39                         reg = <0x600 0x10>;
40                         interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
41                         clocks = <&periph_clk>;
42                         always-on;
43                 };
44
45                 gic: interrupt-controller@1000 {
46                         compatible = "arm,cortex-a9-gic";
47                         #interrupt-cells = <3>;
48                         interrupt-controller;
49                         reg = <0x1000 0x1000>, <0x100 0x100>;
50                 };
51         };
52
53         l2cc: l2-cache-controller@20100000 {
54                 compatible = "arm,pl310-cache";
55                 reg = <0x20100000 0x1000>;
56                 cache-level = <2>;
57                 cache-unified;
58         };
59
60         soc {
61                 compatible = "simple-bus";
62                 interrupt-parent = <&irq0>;
63                 #address-cells = <1>;
64                 #size-cells = <1>;
65                 ranges;
66
67                 xtal: xtal {
68                         compatible = "fixed-clock";
69                         clock-frequency = <27000000>;
70                         #clock-cells = <0>;
71                 };
72
73                 clkgen: clkgen@10000 {
74                         compatible = "sigma,tango4-clkgen";
75                         reg = <0x10000 0x100>;
76                         clocks = <&xtal>;
77                         #clock-cells = <1>;
78                 };
79
80                 tick-counter@10048 {
81                         compatible = "sigma,tick-counter";
82                         reg = <0x10048 0x4>;
83                         clocks = <&xtal>;
84                 };
85
86                 uart: serial@10700 {
87                         compatible = "ralink,rt2880-uart";
88                         reg = <0x10700 0x30>;
89                         interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
90                         clock-frequency = <7372800>;
91                         reg-shift = <2>;
92                 };
93
94                 watchdog@1fd00 {
95                         compatible = "sigma,smp8759-wdt";
96                         reg = <0x1fd00 8>;
97                         clocks = <&xtal>;
98                 };
99
100                 mmc0: mmc@21000 {
101                         compatible = "arasan,sdhci-8.9a";
102                         reg = <0x21000 0x200>;
103                         clock-names = "clk_xin", "clk_ahb";
104                         clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>;
105                         interrupts = <60 IRQ_TYPE_LEVEL_HIGH>;
106                 };
107
108                 mmc1: mmc@21200 {
109                         compatible = "arasan,sdhci-8.9a";
110                         reg = <0x21200 0x200>;
111                         clock-names = "clk_xin", "clk_ahb";
112                         clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>;
113                         interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
114                 };
115
116                 usb0: usb@21400 {
117                         compatible = "chipidea,usb2";
118                         reg = <0x21400 0x200>;
119                         interrupts = <40 IRQ_TYPE_LEVEL_HIGH>;
120                         phys = <&usb0_phy>;
121                         phy-names = "usb-phy";
122                 };
123
124                 usb0_phy: phy@21700 {
125                         compatible = "sigma,smp8642-usb-phy";
126                         reg = <0x21700 0x100>;
127                         #phy-cells = <0>;
128                         clocks = <&clkgen USB_CLK>;
129                 };
130
131                 usb1: usb@25400 {
132                         compatible = "chipidea,usb2";
133                         reg = <0x25400 0x200>;
134                         interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
135                         phys = <&usb1_phy>;
136                         phy-names = "usb-phy";
137                 };
138
139                 usb1_phy: phy@25700 {
140                         compatible = "sigma,smp8642-usb-phy";
141                         reg = <0x25700 0x100>;
142                         #phy-cells = <0>;
143                         clocks = <&clkgen USB_CLK>;
144                 };
145
146                 eth0: ethernet@26000 {
147                         compatible = "sigma,smp8734-ethernet";
148                         reg = <0x26000 0x800>;
149                         interrupts = <38 IRQ_TYPE_LEVEL_HIGH>;
150                         clocks = <&clkgen SYS_CLK>;
151                 };
152
153                 intc: interrupt-controller@6e000 {
154                         compatible = "sigma,smp8642-intc";
155                         reg = <0x6e000 0x400>;
156                         ranges = <0 0x6e000 0x400>;
157                         interrupt-parent = <&gic>;
158                         interrupt-controller;
159                         #address-cells = <1>;
160                         #size-cells = <1>;
161
162                         irq0: irq0@000 {
163                                 reg = <0x000 0x100>;
164                                 interrupt-controller;
165                                 #interrupt-cells = <2>;
166                                 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
167                         };
168
169                         irq1: irq1@100 {
170                                 reg = <0x100 0x100>;
171                                 interrupt-controller;
172                                 #interrupt-cells = <2>;
173                                 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
174                         };
175
176                         irq2: irq2@300 {
177                                 reg = <0x300 0x100>;
178                                 interrupt-controller;
179                                 #interrupt-cells = <2>;
180                                 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
181                         };
182                 };
183         };
184 };