20fe7bfab929b871532e909f9d2845fd922691bd
[openwrt/openwrt.git] / target / linux / ramips / dts / rt3883.dtsi
1 / {
2 #address-cells = <1>;
3 #size-cells = <1>;
4 compatible = "ralink,rt3883-soc";
5
6 cpus {
7 cpu@0 {
8 compatible = "mips,mips74Kc";
9 };
10 };
11
12 chosen {
13 bootargs = "console=ttyS0,57600";
14 };
15
16 aliases {
17 spi0 = &spi0;
18 spi1 = &spi1;
19 serial0 = &uartlite;
20 };
21
22 cpuintc: cpuintc@0 {
23 #address-cells = <0>;
24 #interrupt-cells = <1>;
25 interrupt-controller;
26 compatible = "mti,cpu-interrupt-controller";
27 };
28
29 palmbus: palmbus@10000000 {
30 compatible = "palmbus";
31 reg = <0x10000000 0x200000>;
32 ranges = <0x0 0x10000000 0x1FFFFF>;
33
34 #address-cells = <1>;
35 #size-cells = <1>;
36
37 sysc: sysc@0 {
38 compatible = "ralink,rt3883-sysc", "ralink,rt3050-sysc";
39 reg = <0x0 0x100>;
40 };
41
42 timer: timer@100 {
43 compatible = "ralink,rt3883-timer", "ralink,rt2880-timer";
44 reg = <0x100 0x20>;
45
46 interrupt-parent = <&intc>;
47 interrupts = <1>;
48 };
49
50 watchdog: watchdog@120 {
51 compatible = "ralink,rt3883-wdt", "ralink,rt2880-wdt";
52 reg = <0x120 0x10>;
53
54 resets = <&rstctrl 8>;
55 reset-names = "wdt";
56
57 interrupt-parent = <&intc>;
58 interrupts = <1>;
59 };
60
61 intc: intc@200 {
62 compatible = "ralink,rt3883-intc", "ralink,rt2880-intc";
63 reg = <0x200 0x100>;
64
65 resets = <&rstctrl 19>;
66 reset-names = "intc";
67
68 interrupt-controller;
69 #interrupt-cells = <1>;
70
71 interrupt-parent = <&cpuintc>;
72 interrupts = <2>;
73 };
74
75 memc: memc@300 {
76 compatible = "ralink,rt3883-memc", "ralink,rt3050-memc";
77 reg = <0x300 0x100>;
78
79 resets = <&rstctrl 20>;
80 reset-names = "mc";
81
82 interrupt-parent = <&intc>;
83 interrupts = <3>;
84 };
85
86 uart: uart@500 {
87 compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
88 reg = <0x500 0x100>;
89
90 resets = <&rstctrl 12>;
91 reset-names = "uart";
92
93 interrupt-parent = <&intc>;
94 interrupts = <5>;
95
96 reg-shift = <2>;
97
98 status = "disabled";
99 };
100
101 gpio0: gpio@600 {
102 compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
103 reg = <0x600 0x34>;
104
105 resets = <&rstctrl 13>;
106 reset-names = "pio";
107
108 interrupt-parent = <&intc>;
109 interrupts = <6>;
110
111 gpio-controller;
112 #gpio-cells = <2>;
113
114 ralink,gpio-base = <0>;
115 ralink,num-gpios = <24>;
116 ralink,register-map = [ 00 04 08 0c
117 20 24 28 2c
118 30 34 ];
119 };
120
121 gpio1: gpio@638 {
122 compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
123 reg = <0x638 0x24>;
124
125 gpio-controller;
126 #gpio-cells = <2>;
127
128 ralink,gpio-base = <24>;
129 ralink,num-gpios = <16>;
130 ralink,register-map = [ 00 04 08 0c
131 10 14 18 1c
132 20 24 ];
133
134 status = "disabled";
135 };
136
137 gpio2: gpio@660 {
138 compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
139 reg = <0x660 0x24>;
140
141 gpio-controller;
142 #gpio-cells = <2>;
143
144 ralink,gpio-base = <40>;
145 ralink,num-gpios = <32>;
146 ralink,register-map = [ 00 04 08 0c
147 10 14 18 1c
148 20 24 ];
149
150 status = "disabled";
151 };
152
153 gpio3: gpio@688 {
154 compatible = "ralink,rt3883-gpio", "ralink,rt2880-gpio";
155 reg = <0x688 0x24>;
156
157 gpio-controller;
158 #gpio-cells = <2>;
159
160 ralink,gpio-base = <72>;
161 ralink,num-gpios = <24>;
162 ralink,register-map = [ 00 04 08 0c
163 10 14 18 1c
164 20 24 ];
165
166 status = "disabled";
167 };
168
169 i2c@900 {
170 compatible = "ralink,rt2880-i2c";
171 reg = <0x900 0x100>;
172
173 resets = <&rstctrl 16>;
174 reset-names = "i2c";
175
176 #address-cells = <1>;
177 #size-cells = <0>;
178
179 status = "disabled";
180
181 pinctrl-names = "default";
182 pinctrl-0 = <&i2c_pins>;
183 };
184
185 i2s@a00 {
186 compatible = "ralink,rt3883-i2s";
187 reg = <0xa00 0x100>;
188
189 resets = <&rstctrl 17>;
190 reset-names = "i2s";
191
192 interrupt-parent = <&intc>;
193 interrupts = <10>;
194
195 txdma-req = <2>;
196 rxdma-req = <3>;
197
198 dmas = <&gdma 4>,
199 <&gdma 6>;
200 dma-names = "tx", "rx";
201
202 status = "disabled";
203 };
204
205 spi0: spi@b00 {
206 compatible = "ralink,rt3883-spi", "ralink,rt2880-spi";
207 reg = <0xb00 0x40>;
208 #address-cells = <1>;
209 #size-cells = <0>;
210
211 resets = <&rstctrl 18>;
212 reset-names = "spi";
213
214 pinctrl-names = "default";
215 pinctrl-0 = <&spi_pins>;
216
217 status = "disabled";
218 };
219
220 spi1: spi@b40 {
221 compatible = "ralink,rt3883-spi", "ralink,rt2880-spi";
222 reg = <0xb40 0x60>;
223 #address-cells = <1>;
224 #size-cells = <0>;
225
226 resets = <&rstctrl 18>;
227 reset-names = "spi";
228
229 pinctrl-names = "default";
230 pinctrl-0 = <&spi_cs1>;
231
232 status = "disabled";
233 };
234
235 uartlite: uartlite@c00 {
236 compatible = "ralink,rt3883-uart", "ralink,rt2880-uart", "ns16550a";
237 reg = <0xc00 0x100>;
238
239 resets = <&rstctrl 19>;
240 reset-names = "uartl";
241
242 interrupt-parent = <&intc>;
243 interrupts = <12>;
244
245 reg-shift = <2>;
246
247 pinctrl-names = "default";
248 pinctrl-0 = <&uartlite_pins>;
249 };
250
251 gdma: gdma@2800 {
252 compatible = "ralink,rt3883-gdma";
253 reg = <0x2800 0x800>;
254
255 resets = <&rstctrl 14>;
256 reset-names = "dma";
257
258 interrupt-parent = <&intc>;
259 interrupts = <7>;
260
261 #dma-cells = <1>;
262 #dma-channels = <16>;
263 #dma-requests = <16>;
264
265 status = "disabled";
266 };
267 };
268
269 pinctrl: pinctrl {
270 compatible = "ralink,rt2880-pinmux";
271
272 pinctrl-names = "default";
273 pinctrl-0 = <&state_default>;
274
275 state_default: pinctrl0 {
276 };
277
278 i2c_pins: i2c {
279 i2c {
280 ralink,group = "i2c";
281 ralink,function = "i2c";
282 };
283 };
284
285 spi_pins: spi {
286 spi {
287 ralink,group = "spi";
288 ralink,function = "spi";
289 };
290 };
291
292 spi_cs1: spi1 {
293 spi1 {
294 ralink,group = "spi_cs1";
295 ralink,function = "spi_cs1";
296 };
297 };
298
299 uartlite_pins: uartlite {
300 uart {
301 ralink,group = "uartlite";
302 ralink,function = "uartlite";
303 };
304 };
305 };
306
307 ethernet: ethernet@10100000 {
308 compatible = "ralink,rt3883-eth";
309 reg = <0x10100000 0x10000>;
310
311 resets = <&rstctrl 21>;
312 reset-names = "fe";
313
314 interrupt-parent = <&cpuintc>;
315 interrupts = <5>;
316
317 port@0 {
318 compatible = "ralink,rt3883-port", "mediatek,eth-port";
319 reg = <0>;
320 };
321
322 mdio-bus {
323 #address-cells = <1>;
324 #size-cells = <0>;
325
326 status = "disabled";
327 };
328 };
329
330 rstctrl: rstctrl {
331 compatible = "ralink,rt3883-reset", "ralink,rt2880-reset";
332 #reset-cells = <1>;
333 };
334
335 clkctrl: clkctrl {
336 compatible = "ralink,rt2880-clock";
337 #clock-cells = <1>;
338 };
339
340 pci: pci@10140000 {
341 compatible = "ralink,rt3883-pci";
342 reg = <0x10140000 0x20000>;
343 #address-cells = <1>;
344 #size-cells = <1>;
345 ranges; /* direct mapping */
346
347 status = "disabled";
348
349 pciintc: interrupt-controller {
350 interrupt-controller;
351 #address-cells = <0>;
352 #interrupt-cells = <1>;
353
354 interrupt-parent = <&cpuintc>;
355 interrupts = <4>;
356 };
357
358 host-bridge {
359 #address-cells = <3>;
360 #size-cells = <2>;
361 #interrupt-cells = <1>;
362
363 device_type = "pci";
364
365 bus-range = <0 255>;
366 ranges = <
367 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
368 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
369 >;
370
371 interrupt-map-mask = <0xf800 0 0 7>;
372 interrupt-map = <
373 /* IDSEL 17 */
374 0x8800 0 0 1 &pciintc 18
375 0x8800 0 0 2 &pciintc 18
376 0x8800 0 0 3 &pciintc 18
377 0x8800 0 0 4 &pciintc 18
378 /* IDSEL 18 */
379 0x9000 0 0 1 &pciintc 19
380 0x9000 0 0 2 &pciintc 19
381 0x9000 0 0 3 &pciintc 19
382 0x9000 0 0 4 &pciintc 19
383 >;
384
385 pci-bridge@1 {
386 reg = <0x0800 0 0 0 0>;
387 device_type = "pci";
388 #interrupt-cells = <1>;
389 #address-cells = <3>;
390 #size-cells = <2>;
391
392 status = "disabled";
393
394 ralink,pci-slot = <1>;
395
396 interrupt-map-mask = <0x0 0 0 0>;
397 interrupt-map = <0x0 0 0 0 &pciintc 20>;
398 };
399
400 pci-slot@17 {
401 reg = <0x8800 0 0 0 0>;
402 device_type = "pci";
403 #interrupt-cells = <1>;
404 #address-cells = <3>;
405 #size-cells = <2>;
406
407 ralink,pci-slot = <17>;
408
409 status = "disabled";
410 };
411
412 pci-slot@18 {
413 reg = <0x9000 0 0 0 0>;
414 device_type = "pci";
415 #interrupt-cells = <1>;
416 #address-cells = <3>;
417 #size-cells = <2>;
418
419 ralink,pci-slot = <18>;
420
421 status = "disabled";
422 };
423 };
424 };
425
426 usbphy: usbphy {
427 compatible = "ralink,rt3352-usbphy";
428 #phy-cells = <1>;
429
430 resets = <&rstctrl 22 &rstctrl 25>;
431 reset-names = "host", "device";
432 clocks = <&clkctrl 22 &clkctrl 25>;
433 clock-names = "host", "device";
434 };
435
436 wmac: wmac@10180000 {
437 compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
438 reg = <0x10180000 0x40000>;
439
440 interrupt-parent = <&cpuintc>;
441 interrupts = <6>;
442
443 ralink,eeprom = "soc_wmac.eeprom";
444 };
445
446 ehci: ehci@101c0000 {
447 compatible = "generic-ehci";
448 reg = <0x101c0000 0x1000>;
449
450 phys = <&usbphy 1>;
451 phy-names = "usb";
452
453 interrupt-parent = <&intc>;
454 interrupts = <18>;
455
456 status = "disabled";
457 };
458
459 ohci: ohci@101c1000 {
460 compatible = "generic-ohci";
461 reg = <0x101c1000 0x1000>;
462
463 phys = <&usbphy 1>;
464 phy-names = "usb";
465
466 interrupt-parent = <&intc>;
467 interrupts = <18>;
468
469 status = "disabled";
470 };
471 };