ad52d9277b69ec69dc07e7d83e0d231403c9fcd4
[openwrt.git] / target / linux / mcs814x / files-3.3 / arch / arm / boot / dts / mcs8140.dtsi
1 /*
2  * mcs8140.dtsi - Device Tree Include file for Moschip MCS8140 family SoC
3  *
4  * Copyright (C) 2012, Florian Fainelli <florian@openwrt.org>
5  *
6  * Licensed under GPLv2.
7  */
8
9 /include/ "skeleton.dtsi"
10
11 / {
12         model = "Moschip MCS8140 family SoC";
13         compatible = "moschip,mcs8140";
14         interrupt-parent = <&intc>;
15
16         aliases {
17                 serial0 = &uart0;
18                 eth0 = &eth0;
19         };
20
21         cpus {
22                 cpu@0 {
23                         compatible = "arm,arm926ejs";
24                 };
25         };
26
27         ahb {
28                 compatible = "simple-bus";
29                 #address-cells = <1>;
30                 #size-cells = <1>;
31                 ranges;
32
33                 vci {
34                         compatible = "simple-bus";
35                         #address-cells = <1>;
36                         #size-cells = <1>;
37                         ranges;
38
39                         eth0: ethernet@40084000 {
40                                 compatible = "moschip,nuport-mac";
41                                 reg = <0x40084000 0xd8          // mac
42                                         0x40080000 0x58>;       // dma channels
43                                 interrupts = <4 5 29>;  /* tx, rx, link */
44                                 nuport-mac,buffer-shifting;
45                                 nuport-mac,link-activity = <0>;
46                         };
47
48                         tso@40088000 {
49                                 reg = <0x40088000 0x1c>;
50                                 interrupts = <7>;
51                         };
52
53                         i2s@4008c000 {
54                                 compatible = "moschip,mcs814x-i2s";
55                                 reg = <0x4008c000 0x18>;
56                                 interrupts = <8>;
57                         };
58
59                         ipsec@40094000 {
60                                 compatible = "moschip,mcs814x-ipsec";
61                                 reg = <0x40094000 0x1d8>;
62                                 interrupts = <16>;
63                         };
64
65                         rng@4009c000 {
66                                 compatible = "moschip,mcs814x-rng";
67                                 reg = <0x4009c000 0x8>;
68                         };
69
70                         memc@400a8000 {
71                                 reg = <0x400a8000 0x58>;
72                         };
73
74                         list-proc@400ac0c0 {
75                                 reg = <0x400ac0c0 0x38>;
76                                 interrupts = <19 27>;           // done, error
77                         };
78
79                         pci@400b0000 {
80                                 compatible = "moschip,mcs8140-pci", "moschip,mcs814x-pci";
81                                 reg = <0x400b0000 0x44          // PCI master
82                                         0x400d8000 0xe4>;       // EEPROM emulator
83                                 interrupts = <25>;              // abort interrupt
84                                 status = "disabled";
85                                 #address-cells = <3>;
86                                 #size-cells = <2>;
87
88                                 ranges = <0x01000000 0 0x80000000 0x80000000 0 0x04000000   // IO
89                                           0x42000000 0 0x90000000 0x90000000 0 0x20000000   // non-prefetch
90                                           0x02000000 0 0xb0000000 0xb0000000 0 0x10000000>; // prefecth
91
92                                 #interrupt-cells = <1>;
93                                 interrupt-map-mask = <>;
94                                 interrupt-map = <0 0 0 1 &intc 22 0
95                                                  0 0 0 2 &intc 23 0
96                                                  0 0 0 3 &intc 24 0
97                                                  0 0 0 4 &intc 26 0>;
98                         };
99
100                         gpio: gpio@400d0000 {
101                                 compatible = "moschip,mcs814x-gpio";
102                                 reg = <0x400d0000 0x670>;
103                                 interrupts = <10>;
104                                 #gpio-cells = <2>;
105                                 gpio-controller;
106                                 num-gpios = <20>;
107                         };
108
109                         eepio: gpio@400d4000 {
110                                 compatible = "moschip,mcs814x-gpio";
111                                 reg = <0x400d4000 0x470>;
112                                 #gpio-cells = <2>;
113                                 gpio-controller;
114                                 num-gpios = <4>;
115                         };
116
117                         uart0: serial@400dc000 {
118                                 compatible = "ns16550";
119                                 reg = <0x400dc000 0x20>;
120                                 clock-frequency = <50000000>;
121                                 reg-shift = <2>;
122                                 interrupts = <21>;
123                                 status = "okay";
124                         };
125
126                         intc: interrupt-controller@400e4000 {
127                                 #interrupt-cells = <1>;
128                                 compatible = "moschip,mcs814x-intc";
129                                 interrupt-controller;
130                                 interrupt-parent;
131                                 reg = <0x400e4000 0x48>;
132                         };
133
134                         m2m@400e8000 {
135                                 reg = <0x400e8000 0x24>;
136                                 interrupts = <17>;
137                         };
138
139                         eth-filters@400ec000 {
140                                 reg = <0x400ec000 0x80>;
141                         };
142
143                         timer: timer@400f800c {
144                                 compatible = "moschip,mcs814x-timer";
145                                 interrupts = <0>;
146                                 reg = <0x400f800c 0x8>;
147                         };
148
149                         watchdog@400f8014 {
150                                 compatible = "moschip,mcs814x-wdt";
151                                 reg = <0x400f8014 0x8>;
152                         };
153
154                         adc {
155                                 compatible = "simple-bus";
156                                 #address-cells = <2>;
157                                 #size-cells = <1>;
158                                 // 8 64MB chip-selects
159                                 ranges = <0 0 0x00000000 0x4000000      // sdram
160                                           1 0 0x04000000 0x4000000      // sdram
161                                           2 0 0x08000000 0x4000000      // reserved
162                                           3 0 0x0c000000 0x4000000      // flash/localbus
163                                           4 0 0x10000000 0x4000000      // flash/localbus
164                                           5 0 0x14000000 0x4000000      // flash/localbus
165                                           6 0 0x18000000 0x4000000      // flash/localbus
166                                           7 0 0x1c000000 0x4000000>;    // flash/localbus
167
168                                 sdram: memory@0,0 {
169                                         reg = <0 0 0>;
170                                 };
171
172                                 nor: flash@7,0 {
173                                         reg = <7 0 0x4000000>;
174                                         compatible = "cfi-flash";
175                                         bank-width = <1>;               // 8-bit external flash
176                                         #address-cells = <1>;
177                                         #size-cells = <1>;
178                                 };
179                         };
180
181                         usb0: ehci@400fc000 {
182                                 compatible = "moschip,mcs814x-ehci", "usb-ehci";
183                                 reg = <0x400fc000 0x74>;
184                                 interrupts = <2>;
185                         };
186
187                         usb1: ohci@400fd000 {
188                                 compatible = "moschip,mcs814x-ohci", "ohci-le";
189                                 reg = <0x400fd000 0x74>;
190                                 interrupts = <11>;
191                         };
192
193                         usb2: ohci@400fe000 {
194                                 compatible = "moschip,mcs814x-ohci", "ohci-le";
195                                 reg = <0x400fe000 0x74>;
196                                 interrupts = <12>;
197                         };
198
199                         usb3: otg@400ff000 {
200                                 compatible = "moschip,msc814x-otg", "usb-otg";
201                                 reg = <0x400ff000 0x1000>;
202                                 interrupts = <13>;
203                         };
204                 };
205
206         };
207 };