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