blob: f1a9f223435919f05bcfaea45f73321aec313be9 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Device Tree file for CZ.NIC Turris Mox Board
4 * 2019 by Marek BehĂșn <kabel@kernel.org>
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/bus/moxtet.h>
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
12#include "armada-372x.dtsi"
13
14/ {
15 model = "CZ.NIC Turris Mox Board";
16 compatible = "cznic,turris-mox", "marvell,armada3720",
17 "marvell,armada3700";
18
19 aliases {
20 spi0 = &spi0;
21 ethernet0 = &eth0;
22 ethernet1 = &eth1;
23 mmc0 = &sdhci0;
24 mmc1 = &sdhci1;
25 };
26
27 chosen {
28 stdout-path = "serial0:115200n8";
29 };
30
31 memory@0 {
32 device_type = "memory";
33 reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
34 };
35
36 leds {
37 compatible = "gpio-leds";
38 led {
39 label = "mox:red:activity";
40 gpios = <&gpiosb 21 GPIO_ACTIVE_LOW>;
41 linux,default-trigger = "default-on";
42 };
43 };
44
45 gpio-keys {
46 compatible = "gpio-keys";
47
48 key-reset {
49 label = "reset";
50 linux,code = <KEY_RESTART>;
51 gpios = <&gpiosb 20 GPIO_ACTIVE_LOW>;
52 debounce-interval = <60>;
53 };
54 };
55
56 exp_usb3_vbus: usb3-vbus {
57 compatible = "regulator-fixed";
58 regulator-name = "usb3-vbus";
59 regulator-min-microvolt = <5000000>;
60 regulator-max-microvolt = <5000000>;
61 enable-active-high;
62 regulator-always-on;
63 gpio = <&gpiosb 0 GPIO_ACTIVE_HIGH>;
64 };
65
66 vsdc_reg: vsdc-reg {
67 compatible = "regulator-gpio";
68 regulator-name = "vsdc";
69 regulator-min-microvolt = <1800000>;
70 regulator-max-microvolt = <3300000>;
71 regulator-boot-on;
72
73 gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>;
74 gpios-states = <0>;
75 states = <1800000 0x1
76 3300000 0x0>;
77 enable-active-high;
78 };
79
80 vsdio_reg: vsdio-reg {
81 compatible = "regulator-gpio";
82 regulator-name = "vsdio";
83 regulator-min-microvolt = <1800000>;
84 regulator-max-microvolt = <3300000>;
85 regulator-boot-on;
86
87 gpios = <&gpiosb 22 GPIO_ACTIVE_HIGH>;
88 gpios-states = <0>;
89 states = <1800000 0x1
90 3300000 0x0>;
91 enable-active-high;
92 };
93
94 sdhci1_pwrseq: sdhci1-pwrseq {
95 compatible = "mmc-pwrseq-simple";
96 reset-gpios = <&gpionb 19 GPIO_ACTIVE_HIGH>;
97 status = "okay";
98 };
99
100 sfp: sfp {
101 compatible = "sff,sfp";
102 i2c-bus = <&i2c0>;
103 los-gpios = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
104 tx-fault-gpios = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
105 mod-def0-gpios = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>;
106 tx-disable-gpios = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>;
107 rate-select0-gpios = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>;
108 maximum-power-milliwatt = <3000>;
109
110 /* enabled by U-Boot if SFP module is present */
111 status = "disabled";
112 };
113
114 firmware {
115 armada-3700-rwtm {
116 compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm";
117 };
118 };
119};
120
121&i2c0 {
122 pinctrl-names = "default";
123 pinctrl-0 = <&i2c1_pins>;
124 clock-frequency = <100000>;
125 /delete-property/ mrvl,i2c-fast-mode;
126 status = "okay";
127
128 /* MCP7940MT-I/MNY RTC */
129 rtc@6f {
130 compatible = "microchip,mcp7940x";
131 reg = <0x6f>;
132 interrupt-parent = <&gpiosb>;
Tom Rini93743d22024-04-01 09:08:13 -0400133 interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO2_5 */
Tom Rini53633a82024-02-29 12:33:36 -0500134 };
135};
136
137&pcie0 {
138 pinctrl-names = "default";
139 pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
140 status = "okay";
141 reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
142 slot-power-limit-milliwatt = <10000>;
143 /*
144 * U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property
145 * contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and
146 * 2 size cells and also expects that the second range starts at 16 MB offset. Also it
147 * expects that first range uses same address for PCI (child) and CPU (parent) cells (so
148 * no remapping) and that this address is the lowest from all specified ranges. If these
149 * conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address
150 * space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window
151 * for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB.
152 * This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in
153 * U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix):
154 * https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7
155 * https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf
156 * https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33
157 * Bug related to requirement of same child and parent addresses for first range is fixed
158 * in U-Boot version 2022.04 by following commit:
159 * https://source.denx.de/u-boot/u-boot/-/commit/1fd54253bca7d43d046bba4853fe5fafd034bc17
160 */
161 #address-cells = <3>;
162 #size-cells = <2>;
163 ranges = <0x81000000 0 0xe8000000 0 0xe8000000 0 0x01000000 /* Port 0 IO */
164 0x82000000 0 0xe9000000 0 0xe9000000 0 0x07000000>; /* Port 0 MEM */
165
166 /* enabled by U-Boot if PCIe module is present */
167 status = "disabled";
168};
169
170&uart0 {
171 status = "okay";
172};
173
174&eth0 {
175 pinctrl-names = "default";
176 pinctrl-0 = <&rgmii_pins>;
177 phy-mode = "rgmii-id";
178 phy-handle = <&phy1>;
179 status = "okay";
180};
181
182&eth1 {
183 phy-mode = "2500base-x";
184 managed = "in-band-status";
185 phys = <&comphy0 1>;
186};
187
188&sdhci0 {
189 wp-inverted;
190 bus-width = <4>;
191 cd-gpios = <&gpionb 10 GPIO_ACTIVE_HIGH>;
192 vqmmc-supply = <&vsdc_reg>;
193 marvell,pad-type = "sd";
194 status = "okay";
195};
196
197&sdhci1 {
198 pinctrl-names = "default";
199 pinctrl-0 = <&sdio_pins>;
200 non-removable;
201 bus-width = <4>;
202 marvell,pad-type = "sd";
203 vqmmc-supply = <&vsdio_reg>;
204 mmc-pwrseq = <&sdhci1_pwrseq>;
205 /* forbid SDR104 for FCC purposes */
206 sdhci-caps-mask = <0x2 0x0>;
207 status = "okay";
208};
209
210&spi0 {
211 status = "okay";
212 pinctrl-names = "default";
213 pinctrl-0 = <&spi_quad_pins &spi_cs1_pins>;
214 assigned-clocks = <&nb_periph_clk 7>;
215 assigned-clock-parents = <&tbg 1>;
216 assigned-clock-rates = <20000000>;
217
218 flash@0 {
219 #address-cells = <1>;
220 #size-cells = <1>;
221 compatible = "jedec,spi-nor";
222 reg = <0>;
223 spi-max-frequency = <20000000>;
224
225 partitions {
226 compatible = "fixed-partitions";
227 #address-cells = <1>;
228 #size-cells = <1>;
229
230 partition@0 {
231 label = "secure-firmware";
232 reg = <0x0 0x20000>;
233 };
234
235 partition@20000 {
236 label = "a53-firmware";
237 reg = <0x20000 0x160000>;
238 };
239
240 partition@180000 {
241 label = "u-boot-env";
242 reg = <0x180000 0x10000>;
243 };
244
245 partition@190000 {
246 label = "Rescue system";
247 reg = <0x190000 0x660000>;
248 };
249
250 partition@7f0000 {
251 label = "dtb";
252 reg = <0x7f0000 0x10000>;
253 };
254 };
255 };
256
257 moxtet: moxtet@1 {
258 #address-cells = <1>;
259 #size-cells = <0>;
260 compatible = "cznic,moxtet";
261 reg = <1>;
262 reset-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
263 spi-max-frequency = <10000000>;
264 spi-cpol;
265 spi-cpha;
266 interrupt-controller;
267 #interrupt-cells = <1>;
268 interrupt-parent = <&gpiosb>;
269 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
270 status = "okay";
271
272 moxtet_sfp: gpio@0 {
273 compatible = "cznic,moxtet-gpio";
274 gpio-controller;
275 #gpio-cells = <2>;
276 reg = <0>;
277 status = "disabled";
278 };
279 };
280};
281
282&usb2 {
283 status = "okay";
284};
285
286&comphy2 {
287 connector {
288 compatible = "usb-a-connector";
289 phy-supply = <&exp_usb3_vbus>;
290 };
291};
292
293&usb3 {
294 status = "okay";
295 phys = <&comphy2 0>;
296};
297
298&mdio {
299 pinctrl-names = "default";
300 pinctrl-0 = <&smi_pins>;
301 status = "okay";
302
303 phy1: ethernet-phy@1 {
304 reg = <1>;
305 };
306
Tom Rini93743d22024-04-01 09:08:13 -0400307 /*
308 * NOTE: switch nodes are enabled by U-Boot if modules are present
309 * DO NOT change this node name (switch0@10) even if it is not following
310 * conventions! Deployed U-Boot binaries are explicitly looking for
311 * this node in order to augment the device tree!
312 * Also do not touch the "ports" or "port@n" nodes. These are also ABI.
313 */
Tom Rini53633a82024-02-29 12:33:36 -0500314 switch0@10 {
Tom Rini93743d22024-04-01 09:08:13 -0400315 compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
Tom Rini53633a82024-02-29 12:33:36 -0500316 reg = <0x10>;
317 dsa,member = <0 0>;
318 interrupt-parent = <&moxtet>;
319 interrupts = <MOXTET_IRQ_PERIDOT(0)>;
320 status = "disabled";
321
322 mdio {
323 #address-cells = <1>;
324 #size-cells = <0>;
325
Tom Rini93743d22024-04-01 09:08:13 -0400326 switch0phy1: ethernet-phy@1 {
Tom Rini53633a82024-02-29 12:33:36 -0500327 reg = <0x1>;
328 };
329
Tom Rini93743d22024-04-01 09:08:13 -0400330 switch0phy2: ethernet-phy@2 {
Tom Rini53633a82024-02-29 12:33:36 -0500331 reg = <0x2>;
332 };
333
Tom Rini93743d22024-04-01 09:08:13 -0400334 switch0phy3: ethernet-phy@3 {
Tom Rini53633a82024-02-29 12:33:36 -0500335 reg = <0x3>;
336 };
337
Tom Rini93743d22024-04-01 09:08:13 -0400338 switch0phy4: ethernet-phy@4 {
Tom Rini53633a82024-02-29 12:33:36 -0500339 reg = <0x4>;
340 };
341
Tom Rini93743d22024-04-01 09:08:13 -0400342 switch0phy5: ethernet-phy@5 {
Tom Rini53633a82024-02-29 12:33:36 -0500343 reg = <0x5>;
344 };
345
Tom Rini93743d22024-04-01 09:08:13 -0400346 switch0phy6: ethernet-phy@6 {
Tom Rini53633a82024-02-29 12:33:36 -0500347 reg = <0x6>;
348 };
349
Tom Rini93743d22024-04-01 09:08:13 -0400350 switch0phy7: ethernet-phy@7 {
Tom Rini53633a82024-02-29 12:33:36 -0500351 reg = <0x7>;
352 };
353
Tom Rini93743d22024-04-01 09:08:13 -0400354 switch0phy8: ethernet-phy@8 {
Tom Rini53633a82024-02-29 12:33:36 -0500355 reg = <0x8>;
356 };
357 };
358
359 ports {
360 #address-cells = <1>;
361 #size-cells = <0>;
362
363 port@1 {
364 reg = <0x1>;
365 label = "lan1";
366 phy-handle = <&switch0phy1>;
367 };
368
369 port@2 {
370 reg = <0x2>;
371 label = "lan2";
372 phy-handle = <&switch0phy2>;
373 };
374
375 port@3 {
376 reg = <0x3>;
377 label = "lan3";
378 phy-handle = <&switch0phy3>;
379 };
380
381 port@4 {
382 reg = <0x4>;
383 label = "lan4";
384 phy-handle = <&switch0phy4>;
385 };
386
387 port@5 {
388 reg = <0x5>;
389 label = "lan5";
390 phy-handle = <&switch0phy5>;
391 };
392
393 port@6 {
394 reg = <0x6>;
395 label = "lan6";
396 phy-handle = <&switch0phy6>;
397 };
398
399 port@7 {
400 reg = <0x7>;
401 label = "lan7";
402 phy-handle = <&switch0phy7>;
403 };
404
405 port@8 {
406 reg = <0x8>;
407 label = "lan8";
408 phy-handle = <&switch0phy8>;
409 };
410
411 port@9 {
412 reg = <0x9>;
413 label = "cpu";
414 ethernet = <&eth1>;
415 phy-mode = "2500base-x";
416 managed = "in-band-status";
417 };
418
419 switch0port10: port@a {
420 reg = <0xa>;
421 label = "dsa";
422 phy-mode = "2500base-x";
423 managed = "in-band-status";
424 link = <&switch1port9 &switch2port9>;
425 status = "disabled";
426 };
427
428 port-sfp@a {
429 reg = <0xa>;
430 label = "sfp";
431 sfp = <&sfp>;
432 phy-mode = "sgmii";
433 managed = "in-band-status";
434 status = "disabled";
435 };
436 };
437 };
438
Tom Rini93743d22024-04-01 09:08:13 -0400439 /* NOTE: this node name is ABI, don't change it! */
Tom Rini53633a82024-02-29 12:33:36 -0500440 switch0@2 {
Tom Rini93743d22024-04-01 09:08:13 -0400441 compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
Tom Rini53633a82024-02-29 12:33:36 -0500442 reg = <0x2>;
443 dsa,member = <0 0>;
444 interrupt-parent = <&moxtet>;
445 interrupts = <MOXTET_IRQ_TOPAZ>;
446 status = "disabled";
447
448 mdio {
449 #address-cells = <1>;
450 #size-cells = <0>;
451
Tom Rini93743d22024-04-01 09:08:13 -0400452 switch0phy1_topaz: ethernet-phy@11 {
Tom Rini53633a82024-02-29 12:33:36 -0500453 reg = <0x11>;
454 };
455
Tom Rini93743d22024-04-01 09:08:13 -0400456 switch0phy2_topaz: ethernet-phy@12 {
Tom Rini53633a82024-02-29 12:33:36 -0500457 reg = <0x12>;
458 };
459
Tom Rini93743d22024-04-01 09:08:13 -0400460 switch0phy3_topaz: ethernet-phy@13 {
Tom Rini53633a82024-02-29 12:33:36 -0500461 reg = <0x13>;
462 };
463
Tom Rini93743d22024-04-01 09:08:13 -0400464 switch0phy4_topaz: ethernet-phy@14 {
Tom Rini53633a82024-02-29 12:33:36 -0500465 reg = <0x14>;
466 };
467 };
468
469 ports {
470 #address-cells = <1>;
471 #size-cells = <0>;
472
473 port@1 {
474 reg = <0x1>;
475 label = "lan1";
476 phy-handle = <&switch0phy1_topaz>;
477 };
478
479 port@2 {
480 reg = <0x2>;
481 label = "lan2";
482 phy-handle = <&switch0phy2_topaz>;
483 };
484
485 port@3 {
486 reg = <0x3>;
487 label = "lan3";
488 phy-handle = <&switch0phy3_topaz>;
489 };
490
491 port@4 {
492 reg = <0x4>;
493 label = "lan4";
494 phy-handle = <&switch0phy4_topaz>;
495 };
496
497 port@5 {
498 reg = <0x5>;
499 label = "cpu";
500 phy-mode = "2500base-x";
501 managed = "in-band-status";
502 ethernet = <&eth1>;
503 };
504 };
505 };
506
Tom Rini93743d22024-04-01 09:08:13 -0400507 /* NOTE: this node name is ABI, don't change it! */
Tom Rini53633a82024-02-29 12:33:36 -0500508 switch1@11 {
Tom Rini93743d22024-04-01 09:08:13 -0400509 compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
Tom Rini53633a82024-02-29 12:33:36 -0500510 reg = <0x11>;
511 dsa,member = <0 1>;
512 interrupt-parent = <&moxtet>;
513 interrupts = <MOXTET_IRQ_PERIDOT(1)>;
514 status = "disabled";
515
516 mdio {
517 #address-cells = <1>;
518 #size-cells = <0>;
519
Tom Rini93743d22024-04-01 09:08:13 -0400520 switch1phy1: ethernet-phy@1 {
Tom Rini53633a82024-02-29 12:33:36 -0500521 reg = <0x1>;
522 };
523
Tom Rini93743d22024-04-01 09:08:13 -0400524 switch1phy2: ethernet-phy@2 {
Tom Rini53633a82024-02-29 12:33:36 -0500525 reg = <0x2>;
526 };
527
Tom Rini93743d22024-04-01 09:08:13 -0400528 switch1phy3: ethernet-phy@3 {
Tom Rini53633a82024-02-29 12:33:36 -0500529 reg = <0x3>;
530 };
531
Tom Rini93743d22024-04-01 09:08:13 -0400532 switch1phy4: ethernet-phy@4 {
Tom Rini53633a82024-02-29 12:33:36 -0500533 reg = <0x4>;
534 };
535
Tom Rini93743d22024-04-01 09:08:13 -0400536 switch1phy5: ethernet-phy@5 {
Tom Rini53633a82024-02-29 12:33:36 -0500537 reg = <0x5>;
538 };
539
Tom Rini93743d22024-04-01 09:08:13 -0400540 switch1phy6: ethernet-phy@6 {
Tom Rini53633a82024-02-29 12:33:36 -0500541 reg = <0x6>;
542 };
543
Tom Rini93743d22024-04-01 09:08:13 -0400544 switch1phy7: ethernet-phy@7 {
Tom Rini53633a82024-02-29 12:33:36 -0500545 reg = <0x7>;
546 };
547
Tom Rini93743d22024-04-01 09:08:13 -0400548 switch1phy8: ethernet-phy@8 {
Tom Rini53633a82024-02-29 12:33:36 -0500549 reg = <0x8>;
550 };
551 };
552
553 ports {
554 #address-cells = <1>;
555 #size-cells = <0>;
556
557 port@1 {
558 reg = <0x1>;
559 label = "lan9";
560 phy-handle = <&switch1phy1>;
561 };
562
563 port@2 {
564 reg = <0x2>;
565 label = "lan10";
566 phy-handle = <&switch1phy2>;
567 };
568
569 port@3 {
570 reg = <0x3>;
571 label = "lan11";
572 phy-handle = <&switch1phy3>;
573 };
574
575 port@4 {
576 reg = <0x4>;
577 label = "lan12";
578 phy-handle = <&switch1phy4>;
579 };
580
581 port@5 {
582 reg = <0x5>;
583 label = "lan13";
584 phy-handle = <&switch1phy5>;
585 };
586
587 port@6 {
588 reg = <0x6>;
589 label = "lan14";
590 phy-handle = <&switch1phy6>;
591 };
592
593 port@7 {
594 reg = <0x7>;
595 label = "lan15";
596 phy-handle = <&switch1phy7>;
597 };
598
599 port@8 {
600 reg = <0x8>;
601 label = "lan16";
602 phy-handle = <&switch1phy8>;
603 };
604
605 switch1port9: port@9 {
606 reg = <0x9>;
607 label = "dsa";
608 phy-mode = "2500base-x";
609 managed = "in-band-status";
610 link = <&switch0port10>;
611 };
612
613 switch1port10: port@a {
614 reg = <0xa>;
615 label = "dsa";
616 phy-mode = "2500base-x";
617 managed = "in-band-status";
618 link = <&switch2port9>;
619 status = "disabled";
620 };
621
622 port-sfp@a {
623 reg = <0xa>;
624 label = "sfp";
625 sfp = <&sfp>;
626 phy-mode = "sgmii";
627 managed = "in-band-status";
628 status = "disabled";
629 };
630 };
631 };
632
Tom Rini93743d22024-04-01 09:08:13 -0400633 /* NOTE: this node name is ABI, don't change it! */
Tom Rini53633a82024-02-29 12:33:36 -0500634 switch1@2 {
Tom Rini93743d22024-04-01 09:08:13 -0400635 compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
Tom Rini53633a82024-02-29 12:33:36 -0500636 reg = <0x2>;
637 dsa,member = <0 1>;
638 interrupt-parent = <&moxtet>;
639 interrupts = <MOXTET_IRQ_TOPAZ>;
640 status = "disabled";
641
642 mdio {
643 #address-cells = <1>;
644 #size-cells = <0>;
645
Tom Rini93743d22024-04-01 09:08:13 -0400646 switch1phy1_topaz: ethernet-phy@11 {
Tom Rini53633a82024-02-29 12:33:36 -0500647 reg = <0x11>;
648 };
649
Tom Rini93743d22024-04-01 09:08:13 -0400650 switch1phy2_topaz: ethernet-phy@12 {
Tom Rini53633a82024-02-29 12:33:36 -0500651 reg = <0x12>;
652 };
653
Tom Rini93743d22024-04-01 09:08:13 -0400654 switch1phy3_topaz: ethernet-phy@13 {
Tom Rini53633a82024-02-29 12:33:36 -0500655 reg = <0x13>;
656 };
657
Tom Rini93743d22024-04-01 09:08:13 -0400658 switch1phy4_topaz: ethernet-phy@14 {
Tom Rini53633a82024-02-29 12:33:36 -0500659 reg = <0x14>;
660 };
661 };
662
663 ports {
664 #address-cells = <1>;
665 #size-cells = <0>;
666
667 port@1 {
668 reg = <0x1>;
669 label = "lan9";
670 phy-handle = <&switch1phy1_topaz>;
671 };
672
673 port@2 {
674 reg = <0x2>;
675 label = "lan10";
676 phy-handle = <&switch1phy2_topaz>;
677 };
678
679 port@3 {
680 reg = <0x3>;
681 label = "lan11";
682 phy-handle = <&switch1phy3_topaz>;
683 };
684
685 port@4 {
686 reg = <0x4>;
687 label = "lan12";
688 phy-handle = <&switch1phy4_topaz>;
689 };
690
691 port@5 {
692 reg = <0x5>;
693 label = "dsa";
694 phy-mode = "2500base-x";
695 managed = "in-band-status";
696 link = <&switch0port10>;
697 };
698 };
699 };
700
Tom Rini93743d22024-04-01 09:08:13 -0400701 /* NOTE: this node name is ABI, don't change it! */
Tom Rini53633a82024-02-29 12:33:36 -0500702 switch2@12 {
Tom Rini93743d22024-04-01 09:08:13 -0400703 compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190";
Tom Rini53633a82024-02-29 12:33:36 -0500704 reg = <0x12>;
705 dsa,member = <0 2>;
706 interrupt-parent = <&moxtet>;
707 interrupts = <MOXTET_IRQ_PERIDOT(2)>;
708 status = "disabled";
709
710 mdio {
711 #address-cells = <1>;
712 #size-cells = <0>;
713
Tom Rini93743d22024-04-01 09:08:13 -0400714 switch2phy1: ethernet-phy@1 {
Tom Rini53633a82024-02-29 12:33:36 -0500715 reg = <0x1>;
716 };
717
Tom Rini93743d22024-04-01 09:08:13 -0400718 switch2phy2: ethernet-phy@2 {
Tom Rini53633a82024-02-29 12:33:36 -0500719 reg = <0x2>;
720 };
721
Tom Rini93743d22024-04-01 09:08:13 -0400722 switch2phy3: ethernet-phy@3 {
Tom Rini53633a82024-02-29 12:33:36 -0500723 reg = <0x3>;
724 };
725
Tom Rini93743d22024-04-01 09:08:13 -0400726 switch2phy4: ethernet-phy@4 {
Tom Rini53633a82024-02-29 12:33:36 -0500727 reg = <0x4>;
728 };
729
Tom Rini93743d22024-04-01 09:08:13 -0400730 switch2phy5: ethernet-phy@5 {
Tom Rini53633a82024-02-29 12:33:36 -0500731 reg = <0x5>;
732 };
733
Tom Rini93743d22024-04-01 09:08:13 -0400734 switch2phy6: ethernet-phy@6 {
Tom Rini53633a82024-02-29 12:33:36 -0500735 reg = <0x6>;
736 };
737
Tom Rini93743d22024-04-01 09:08:13 -0400738 switch2phy7: ethernet-phy@7 {
Tom Rini53633a82024-02-29 12:33:36 -0500739 reg = <0x7>;
740 };
741
Tom Rini93743d22024-04-01 09:08:13 -0400742 switch2phy8: ethernet-phy@8 {
Tom Rini53633a82024-02-29 12:33:36 -0500743 reg = <0x8>;
744 };
745 };
746
747 ports {
748 #address-cells = <1>;
749 #size-cells = <0>;
750
751 port@1 {
752 reg = <0x1>;
753 label = "lan17";
754 phy-handle = <&switch2phy1>;
755 };
756
757 port@2 {
758 reg = <0x2>;
759 label = "lan18";
760 phy-handle = <&switch2phy2>;
761 };
762
763 port@3 {
764 reg = <0x3>;
765 label = "lan19";
766 phy-handle = <&switch2phy3>;
767 };
768
769 port@4 {
770 reg = <0x4>;
771 label = "lan20";
772 phy-handle = <&switch2phy4>;
773 };
774
775 port@5 {
776 reg = <0x5>;
777 label = "lan21";
778 phy-handle = <&switch2phy5>;
779 };
780
781 port@6 {
782 reg = <0x6>;
783 label = "lan22";
784 phy-handle = <&switch2phy6>;
785 };
786
787 port@7 {
788 reg = <0x7>;
789 label = "lan23";
790 phy-handle = <&switch2phy7>;
791 };
792
793 port@8 {
794 reg = <0x8>;
795 label = "lan24";
796 phy-handle = <&switch2phy8>;
797 };
798
799 switch2port9: port@9 {
800 reg = <0x9>;
801 label = "dsa";
802 phy-mode = "2500base-x";
803 managed = "in-band-status";
804 link = <&switch1port10 &switch0port10>;
805 };
806
807 port-sfp@a {
808 reg = <0xa>;
809 label = "sfp";
810 sfp = <&sfp>;
811 phy-mode = "sgmii";
812 managed = "in-band-status";
813 status = "disabled";
814 };
815 };
816 };
817
Tom Rini93743d22024-04-01 09:08:13 -0400818 /* NOTE: this node name is ABI, don't change it! */
Tom Rini53633a82024-02-29 12:33:36 -0500819 switch2@2 {
Tom Rini93743d22024-04-01 09:08:13 -0400820 compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085";
Tom Rini53633a82024-02-29 12:33:36 -0500821 reg = <0x2>;
822 dsa,member = <0 2>;
823 interrupt-parent = <&moxtet>;
824 interrupts = <MOXTET_IRQ_TOPAZ>;
825 status = "disabled";
826
827 mdio {
828 #address-cells = <1>;
829 #size-cells = <0>;
830
Tom Rini93743d22024-04-01 09:08:13 -0400831 switch2phy1_topaz: ethernet-phy@11 {
Tom Rini53633a82024-02-29 12:33:36 -0500832 reg = <0x11>;
833 };
834
Tom Rini93743d22024-04-01 09:08:13 -0400835 switch2phy2_topaz: ethernet-phy@12 {
Tom Rini53633a82024-02-29 12:33:36 -0500836 reg = <0x12>;
837 };
838
Tom Rini93743d22024-04-01 09:08:13 -0400839 switch2phy3_topaz: ethernet-phy@13 {
Tom Rini53633a82024-02-29 12:33:36 -0500840 reg = <0x13>;
841 };
842
Tom Rini93743d22024-04-01 09:08:13 -0400843 switch2phy4_topaz: ethernet-phy@14 {
Tom Rini53633a82024-02-29 12:33:36 -0500844 reg = <0x14>;
845 };
846 };
847
848 ports {
849 #address-cells = <1>;
850 #size-cells = <0>;
851
852 port@1 {
853 reg = <0x1>;
854 label = "lan17";
855 phy-handle = <&switch2phy1_topaz>;
856 };
857
858 port@2 {
859 reg = <0x2>;
860 label = "lan18";
861 phy-handle = <&switch2phy2_topaz>;
862 };
863
864 port@3 {
865 reg = <0x3>;
866 label = "lan19";
867 phy-handle = <&switch2phy3_topaz>;
868 };
869
870 port@4 {
871 reg = <0x4>;
872 label = "lan20";
873 phy-handle = <&switch2phy4_topaz>;
874 };
875
876 port@5 {
877 reg = <0x5>;
878 label = "dsa";
879 phy-mode = "2500base-x";
880 managed = "in-band-status";
881 link = <&switch1port10 &switch0port10>;
882 };
883 };
884 };
885};