Fresh pull from upstream
[librecmc/librecmc.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                 #address-cells = <1>;
310                 #size-cells = <0>;
311                 reg = <0x10100000 0x10000>;
312
313                 resets = <&rstctrl 21>;
314                 reset-names = "fe";
315
316                 interrupt-parent = <&cpuintc>;
317                 interrupts = <5>;
318
319                 port@0 {
320                         compatible = "ralink,rt3883-port", "mediatek,eth-port";
321                         reg = <0>;
322                 };
323
324                 mdio-bus {
325                         #address-cells = <1>;
326                         #size-cells = <0>;
327
328                         status = "disabled";
329                 };
330         };
331
332         rstctrl: rstctrl {
333                 compatible = "ralink,rt3883-reset", "ralink,rt2880-reset";
334                 #reset-cells = <1>;
335         };
336
337         clkctrl: clkctrl {
338                 compatible = "ralink,rt2880-clock";
339                 #clock-cells = <1>;
340         };
341
342         pci: pci@10140000 {
343                 compatible = "ralink,rt3883-pci";
344                 reg = <0x10140000 0x20000>;
345                 #address-cells = <1>;
346                 #size-cells = <1>;
347                 ranges; /* direct mapping */
348
349                 status = "disabled";
350
351                 pciintc: interrupt-controller {
352                         interrupt-controller;
353                         #address-cells = <0>;
354                         #interrupt-cells = <1>;
355
356                         interrupt-parent = <&cpuintc>;
357                         interrupts = <4>;
358                 };
359
360                 host-bridge {
361                         #address-cells = <3>;
362                         #size-cells = <2>;
363                         #interrupt-cells = <1>;
364
365                         device_type = "pci";
366
367                         bus-range = <0 255>;
368                         ranges = <
369                                 0x02000000 0 0x00000000 0x20000000 0 0x10000000 /* pci memory */
370                                 0x01000000 0 0x00000000 0x10160000 0 0x00010000 /* io space */
371                         >;
372
373                         interrupt-map-mask = <0xf800 0 0 7>;
374                         interrupt-map = <
375                                 /* IDSEL 17 */
376                                 0x8800 0 0 1 &pciintc 18
377                                 0x8800 0 0 2 &pciintc 18
378                                 0x8800 0 0 3 &pciintc 18
379                                 0x8800 0 0 4 &pciintc 18
380                                 /* IDSEL 18 */
381                                 0x9000 0 0 1 &pciintc 19
382                                 0x9000 0 0 2 &pciintc 19
383                                 0x9000 0 0 3 &pciintc 19
384                                 0x9000 0 0 4 &pciintc 19
385                         >;
386
387                         pci-bridge@1 {
388                                 reg = <0x0800 0 0 0 0>;
389                                 device_type = "pci";
390                                 #interrupt-cells = <1>;
391                                 #address-cells = <3>;
392                                 #size-cells = <2>;
393
394                                 status = "disabled";
395
396                                 ralink,pci-slot = <1>;
397
398                                 interrupt-map-mask = <0x0 0 0 0>;
399                                 interrupt-map = <0x0 0 0 0 &pciintc 20>;
400                         };
401
402                         pci-slot@17 {
403                                 reg = <0x8800 0 0 0 0>;
404                                 device_type = "pci";
405                                 #interrupt-cells = <1>;
406                                 #address-cells = <3>;
407                                 #size-cells = <2>;
408
409                                 ralink,pci-slot = <17>;
410
411                                 status = "disabled";
412                         };
413
414                         pci-slot@18 {
415                                 reg = <0x9000 0 0 0 0>;
416                                 device_type = "pci";
417                                 #interrupt-cells = <1>;
418                                 #address-cells = <3>;
419                                 #size-cells = <2>;
420
421                                 ralink,pci-slot = <18>;
422
423                                 status = "disabled";
424                         };
425                 };
426         };
427
428         usbphy: usbphy {
429                 compatible = "ralink,rt3352-usbphy";
430                 #phy-cells = <1>;
431
432                 resets = <&rstctrl 22 &rstctrl 25>;
433                 reset-names = "host", "device";
434                 clocks = <&clkctrl 22 &clkctrl 25>;
435                 clock-names = "host", "device";
436         };
437
438         wmac: wmac@10180000 {
439                 compatible = "ralink,rt3883-wmac", "ralink,rt2880-wmac";
440                 reg = <0x10180000 0x40000>;
441
442                 interrupt-parent = <&cpuintc>;
443                 interrupts = <6>;
444
445                 ralink,eeprom = "soc_wmac.eeprom";
446         };
447
448         ehci: ehci@101c0000 {
449                 compatible = "generic-ehci";
450                 reg = <0x101c0000 0x1000>;
451
452                 phys = <&usbphy 1>;
453                 phy-names = "usb";
454
455                 interrupt-parent = <&intc>;
456                 interrupts = <18>;
457
458                 status = "disabled";
459         };
460
461         ohci: ohci@101c1000 {
462                 compatible = "generic-ohci";
463                 reg = <0x101c1000 0x1000>;
464
465                 phys = <&usbphy 1>;
466                 phy-names = "usb";
467
468                 interrupt-parent = <&intc>;
469                 interrupts = <18>;
470
471                 status = "disabled";
472         };
473 };