85c584c1f1686728919e2e493a5e8d0012ab1646
[openwrt/openwrt.git] / target / linux / lantiq / files / arch / mips / boot / dts / lantiq / vr9.dtsi
1 /dts-v1/;
2
3 #include <dt-bindings/gpio/gpio.h>
4 #include <dt-bindings/phy/phy-lantiq-vrx200-pcie.h>
5
6 / {
7 #address-cells = <1>;
8 #size-cells = <1>;
9 compatible = "lantiq,xway", "lantiq,vr9";
10
11 aliases {
12 serial0 = &asc1;
13 };
14
15 chosen {
16 stdout-path = "serial0:115200n8";
17 };
18
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 cpu@0 {
24 compatible = "mips,mips34Kc";
25 reg = <0>;
26 };
27 };
28
29 cputemp {
30 compatible = "lantiq,cputemp";
31 };
32
33 reboot {
34 compatible = "syscon-reboot";
35
36 regmap = <&rcu0>;
37 offset = <0x10>;
38 mask = <0xe0000000>;
39 };
40
41 biu@1f800000 {
42 #address-cells = <1>;
43 #size-cells = <1>;
44 compatible = "lantiq,biu", "simple-bus";
45 reg = <0x1f800000 0x800000>;
46 ranges = <0x0 0x1f800000 0x7fffff>;
47
48 icu0: icu@80200 {
49 #interrupt-cells = <1>;
50 interrupt-controller;
51 compatible = "lantiq,icu";
52 reg = <0x80200 0xc8 /* icu0 */
53 0x80300 0xc8>; /* icu1 */
54 };
55
56 watchdog@803f0 {
57 compatible = "lantiq,xrx100-wdt", "lantiq,xrx100-wdt";
58 reg = <0x803f0 0x10>;
59
60 regmap = <&rcu0>;
61 };
62 };
63
64 sram@1f000000 {
65 #address-cells = <1>;
66 #size-cells = <1>;
67 compatible = "lantiq,sram", "simple-bus";
68 reg = <0x1f000000 0x800000>;
69 ranges = <0x0 0x1f000000 0x7fffff>;
70
71 eiu0: eiu@101000 {
72 #interrupt-cells = <1>;
73 interrupt-controller;
74 compatible = "lantiq,eiu-xway";
75 reg = <0x101000 0x1000>;
76 interrupt-parent = <&icu0>;
77 lantiq,eiu-irqs = <166 135 66 40 41 42>;
78 };
79
80 pmu0: pmu@102000 {
81 compatible = "lantiq,pmu-xway";
82 reg = <0x102000 0x1000>;
83 };
84
85 cgu0: cgu@103000 {
86 compatible = "lantiq,cgu-xway";
87 reg = <0x103000 0x1000>;
88 };
89
90 dcdc@106a00 {
91 compatible = "lantiq,dcdc-xrx200";
92 reg = <0x106a00 0x200>;
93 };
94
95 vmmc: vmmc@107000 {
96 status = "disabled";
97 compatible = "lantiq,vmmc-xway";
98 reg = <0x107000 0x300>;
99 interrupt-parent = <&icu0>;
100 interrupts = <150 151 152 153 154 155>;
101 };
102
103 pcie0_phy: phy@106800 {
104 compatible = "lantiq,vrx200-pcie-phy";
105 reg = <0x106800 0x100>;
106 lantiq,rcu = <&rcu0>;
107 lantiq,rcu-endian-offset = <0x4c>;
108 lantiq,rcu-big-endian-mask = <0x80>; /* bit 7 */
109 big-endian;
110 resets = <&reset0 12 24>, <&reset0 22 22>;
111 reset-names = "phy", "pcie";
112 #phy-cells = <1>;
113 };
114
115 rcu0: rcu@203000 {
116 #address-cells = <1>;
117 #size-cells = <1>;
118 compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
119 reg = <0x203000 0x100>;
120 ranges = <0x0 0x203000 0x100>;
121 big-endian;
122
123 gphy0: gphy@20 {
124 compatible = "lantiq,xrx200-gphy";
125 reg = <0x20 0x4>;
126
127 resets = <&reset0 31 30>, <&reset1 7 7>;
128 reset-names = "gphy", "gphy2";
129 };
130
131 gphy1: gphy@68 {
132 compatible = "lantiq,xrx200-gphy";
133 reg = <0x68 0x4>;
134
135 resets = <&reset0 29 28>, <&reset1 6 6>;
136 reset-names = "gphy", "gphy2";
137 };
138
139 reset0: reset-controller@10 {
140 compatible = "lantiq,xrx200-reset";
141 reg = <0x10 4>, <0x14 4>;
142
143 #reset-cells = <2>;
144 };
145
146 reset1: reset-controller@48 {
147 compatible = "lantiq,xrx200-reset";
148 reg = <0x48 4>, <0x24 4>;
149
150 #reset-cells = <2>;
151 };
152
153 usb_phy0: usb2-phy@18 {
154 compatible = "lantiq,xrx200-usb2-phy";
155 reg = <0x18 4>, <0x38 4>;
156 status = "disabled";
157
158 resets = <&reset1 4 4>, <&reset0 4 4>;
159 reset-names = "phy", "ctrl";
160 #phy-cells = <0>;
161 };
162
163 usb_phy1: usb2-phy@34 {
164 compatible = "lantiq,xrx200-usb2-phy";
165 reg = <0x34 4>, <0x3c 4>;
166 status = "disabled";
167
168 resets = <&reset1 5 5>, <&reset0 4 4>;
169 reset-names = "phy", "ctrl";
170 #phy-cells = <0>;
171 };
172 };
173 };
174
175 fpi@10000000 {
176 compatible = "lantiq,xrx200-fpi", "simple-bus";
177 ranges = <0x0 0x10000000 0xf000000>;
178 reg = <0x1f400000 0x1000>,
179 <0x10000000 0xf000000>;
180 regmap = <&rcu0>;
181 offset-endianness = <0x4c>;
182 #address-cells = <1>;
183 #size-cells = <1>;
184
185 localbus: localbus@0 {
186 #address-cells = <2>;
187 #size-cells = <1>;
188 ranges = <0 0 0x0 0x3ffffff /* addrsel0 */
189 1 0 0x4000000 0x4000010>; /* addsel1 */
190 compatible = "lantiq,localbus", "simple-bus";
191 };
192
193 gptu@e100a00 {
194 compatible = "lantiq,gptu-xway";
195 reg = <0xe100a00 0x100>;
196 interrupt-parent = <&icu0>;
197 interrupts = <126 127 128 129 130 131>;
198 };
199
200 usif: usif@da00000 {
201 compatible = "lantiq,usif";
202 reg = <0xda00000 0x1000000>;
203 interrupt-parent = <&icu0>;
204 interrupts = <29 125 107 108 109 110>;
205 status = "disabled";
206 };
207
208 spi: spi@e100800 {
209 compatible = "lantiq,xrx200-spi", "lantiq,xrx100-spi";
210 reg = <0xe100800 0x100>;
211 interrupt-parent = <&icu0>;
212 interrupts = <22 23 24>;
213 interrupt-names = "spi_rx", "spi_tx", "spi_err",
214 "spi_frm";
215 #address-cells = <1>;
216 #size-cells = <0>;
217 pinctrl-names = "default";
218 pinctrl-0 = <&spi_pins>, <&spi_cs4_pins>;
219 status = "disabled";
220 };
221
222 gpio: pinmux@e100b10 {
223 compatible = "lantiq,xrx200-pinctrl";
224 #gpio-cells = <2>;
225 gpio-controller;
226 reg = <0xe100b10 0xa0>;
227
228 gphy0_led0_pins: gphy0-led0 {
229 mux {
230 lantiq,groups = "gphy0 led0";
231 lantiq,function = "gphy";
232 lantiq,open-drain = <0>;
233 lantiq,pull = <2>;
234 lantiq,output = <1>;
235 };
236 };
237
238 gphy0_led1_pins: gphy0-led1 {
239 mux {
240 lantiq,groups = "gphy0 led1";
241 lantiq,function = "gphy";
242 lantiq,open-drain = <0>;
243 lantiq,pull = <2>;
244 lantiq,output = <1>;
245 };
246 };
247
248 gphy0_led2_pins: gphy0-led2 {
249 mux {
250 lantiq,groups = "gphy0 led2";
251 lantiq,function = "gphy";
252 lantiq,open-drain = <0>;
253 lantiq,pull = <2>;
254 lantiq,output = <1>;
255 };
256 };
257
258 gphy1_led0_pins: gphy1-led0 {
259 mux {
260 lantiq,groups = "gphy1 led0";
261 lantiq,function = "gphy";
262 lantiq,open-drain = <0>;
263 lantiq,pull = <2>;
264 lantiq,output = <1>;
265 };
266 };
267
268 gphy1_led1_pins: gphy1-led1 {
269 mux {
270 lantiq,groups = "gphy1 led1";
271 lantiq,function = "gphy";
272 lantiq,open-drain = <0>;
273 lantiq,pull = <2>;
274 lantiq,output = <1>;
275 };
276 };
277
278 gphy1_led2_pins: gphy1-led2 {
279 mux {
280 lantiq,groups = "gphy1 led2";
281 lantiq,function = "gphy";
282 lantiq,open-drain = <0>;
283 lantiq,pull = <2>;
284 lantiq,output = <1>;
285 };
286 };
287
288 mdio_pins: mdio {
289 mux {
290 lantiq,groups = "mdio";
291 lantiq,function = "mdio";
292 };
293 };
294
295 nand_pins: nand {
296 mux-0 {
297 lantiq,groups = "nand cle", "nand ale",
298 "nand rd";
299 lantiq,function = "ebu";
300 lantiq,output = <1>;
301 lantiq,open-drain = <0>;
302 lantiq,pull = <0>;
303 };
304 mux-1 {
305 lantiq,groups = "nand rdy";
306 lantiq,function = "ebu";
307 lantiq,output = <0>;
308 lantiq,pull = <2>;
309 };
310 };
311
312 nand_cs1_pins: nand-cs1 {
313 mux {
314 lantiq,groups = "nand cs1";
315 lantiq,function = "ebu";
316 lantiq,open-drain = <0>;
317 lantiq,pull = <0>;
318 };
319 };
320
321 pci_gnt1_pins: pci-gnt1 {
322 mux {
323 lantiq,groups = "gnt1";
324 lantiq,function = "pci";
325 lantiq,output = <1>;
326 lantiq,open-drain = <0>;
327 lantiq,pull = <0>;
328 };
329 };
330
331 pci_req1_pins: pci-req1 {
332 mux {
333 lantiq,groups = "req1";
334 lantiq,function = "pci";
335 lantiq,output = <0>;
336 lantiq,open-drain = <1>;
337 lantiq,pull = <2>;
338 };
339 };
340
341 spi_pins: spi {
342 mux-0 {
343 lantiq,groups = "spi_di";
344 lantiq,function = "spi";
345 };
346 mux-1 {
347 lantiq,groups = "spi_do", "spi_clk";
348 lantiq,function = "spi";
349 lantiq,output = <1>;
350 };
351 };
352
353 spi_cs4_pins: spi-cs4 {
354 mux {
355 lantiq,groups = "spi_cs4";
356 lantiq,function = "spi";
357 lantiq,output = <1>;
358 };
359 };
360
361 stp_pins: stp {
362 mux {
363 lantiq,groups = "stp";
364 lantiq,function = "stp";
365 lantiq,pull = <0>;
366 lantiq,open-drain = <0>;
367 lantiq,output = <1>;
368 };
369 };
370 };
371
372 stp: stp@e100bb0 {
373 status = "disabled";
374 compatible = "lantiq,gpio-stp-xway";
375 reg = <0xe100bb0 0x40>;
376 #gpio-cells = <2>;
377 gpio-controller;
378
379 pinctrl-0 = <&stp_pins>;
380 pinctrl-names = "default";
381
382 lantiq,shadow = <0xffffff>;
383 lantiq,groups = <0x7>;
384 lantiq,dsl = <0x0>;
385 lantiq,phy1 = <0x0>;
386 lantiq,phy2 = <0x0>;
387 };
388
389 asc1: serial@e100c00 {
390 compatible = "lantiq,asc";
391 reg = <0xe100c00 0x400>;
392 interrupt-parent = <&icu0>;
393 interrupts = <112 113 114>;
394 };
395
396 deu@e103100 {
397 compatible = "lantiq,deu-xrx200";
398 reg = <0xe103100 0xf00>;
399 };
400
401 dma0: dma@e104100 {
402 compatible = "lantiq,dma-xway";
403 reg = <0xe104100 0x800>;
404 };
405
406 ebu0: ebu@e105300 {
407 compatible = "lantiq,ebu-xway";
408 reg = <0xe105300 0x100>;
409 };
410
411 usb0: usb@e101000 {
412 #address-cells = <1>;
413 #size-cells = <0>;
414 status = "disabled";
415 compatible = "lantiq,xrx200-usb";
416 reg = <0xe101000 0x1000
417 0xe120000 0x3f000>;
418 interrupt-parent = <&icu0>;
419 interrupts = <62 91>;
420 dr_mode = "host";
421 phys = <&usb_phy0>;
422 phy-names = "usb2-phy";
423
424 ehci_port1: port@1 {
425 reg = <1>;
426 #trigger-source-cells = <0>;
427 };
428 };
429
430 usb1: usb@e106000 {
431 #address-cells = <1>;
432 #size-cells = <0>;
433 status = "disabled";
434 compatible = "lantiq,xrx200-usb";
435 reg = <0xe106000 0x1000>;
436 interrupt-parent = <&icu0>;
437 interrupts = <91>;
438 dr_mode = "host";
439 phys = <&usb_phy1>;
440 phy-names = "usb2-phy";
441
442 ehci_port2: port@1 {
443 reg = <1>;
444 #trigger-source-cells = <0>;
445 };
446 };
447
448 eth0: eth@e108000 {
449 #address-cells = <1>;
450 #size-cells = <0>;
451 compatible = "lantiq,xrx200-net";
452 reg = < 0xe108000 0x3000 /* switch */
453 0xe10b100 0x70 /* mdio */
454 0xe10b1d8 0x30 /* mii */
455 0xe10b308 0x30 /* pmac */
456 >;
457 interrupt-parent = <&icu0>;
458 interrupts = <75 73 72>;
459 resets = <&reset0 21 16>, <&reset0 8 8>;
460 reset-names = "switch", "ppe";
461 lantiq,phys = <&gphy0>, <&gphy1>;
462 pinctrl-0 = <&mdio_pins>;
463 pinctrl-names = "default";
464 };
465
466 mei@e116000 {
467 compatible = "lantiq,mei-xrx200";
468 reg = <0xe116000 0x9c>;
469 interrupt-parent = <&icu0>;
470 interrupts = <63>;
471 };
472
473 ppe@e234000 {
474 compatible = "lantiq,ppe-xrx200";
475 reg = <0xe234000 0x3ffd>;
476 interrupt-parent = <&icu0>;
477 interrupts = <96>;
478 resets = <&reset0 3 3>, <&reset0 11 11>, <&reset0 23 23>;
479 reset-names = "dsp", "dfe", "tc";
480 };
481
482 pcie0: pcie@d900000 {
483 compatible = "lantiq,pcie-xrx200";
484
485 #interrupt-cells = <1>;
486 #size-cells = <2>;
487 #address-cells = <3>;
488
489 reg = <0xd900000 0x1000>;
490
491 interrupt-parent = <&icu0>;
492 interrupts = <161 144>;
493
494 phys = <&pcie0_phy LANTIQ_PCIE_PHY_MODE_36MHZ>;
495 phy-names = "pcie";
496
497 resets = <&reset0 22 22>;
498
499 lantiq,rcu = <&rcu0>;
500
501 device_type = "pci";
502
503 gpio-reset = <&gpio 38 GPIO_ACTIVE_HIGH>;
504 };
505
506 pci0: pci@e105400 {
507 status = "disabled";
508
509 #address-cells = <3>;
510 #size-cells = <2>;
511 #interrupt-cells = <1>;
512 compatible = "lantiq,pci-xway";
513 bus-range = <0x0 0x0>;
514 ranges = <0x2000000 0 0x8000000 0x8000000 0 0x2000000 /* pci memory */
515 0x1000000 0 0x00000000 0xae00000 0 0x200000>; /* io space */
516 reg = <0x7000000 0x8000 /* config space */
517 0xe105400 0x400>; /* pci bridge */
518 lantiq,bus-clock = <33333333>;
519 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
520 interrupt-map = <0x7000 0 0 1 &icu0 30 1>; /* slot 14, irq 30 */
521 req-mask = <0x1>; /* GNT1 */
522 };
523 };
524
525 vdsl {
526 compatible = "lantiq,vdsl-vrx200";
527 };
528 };