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