ソースを参照

ramips: mt7621: update dts/defconfig for DSA

update dts and network/LED configuration for DSA driver.
sysupgrade from images prior to this commit with config preserved
will cause broken ethernet setup.

Signed-off-by: DENG Qingfang <[email protected]>
Acked-by: Jo-Philipp Wich <[email protected]>
[split commit]
Signed-off-by: Chuanhong Guo <[email protected]>
DENG Qingfang 5 年 前
コミット
30644bc579
70 ファイル変更1888 行追加317 行削除
  1. 33 2
      target/linux/ramips/dts/mt7621_adslr_g7.dts
  2. 32 7
      target/linux/ramips/dts/mt7621_afoundry_ew1200.dts
  3. 32 2
      target/linux/ramips/dts/mt7621_alfa-network_quad-e4g.dts
  4. 16 0
      target/linux/ramips/dts/mt7621_asiarf_ap7621-001.dts
  5. 21 0
      target/linux/ramips/dts/mt7621_asiarf_ap7621-nv1.dts
  6. 1 2
      target/linux/ramips/dts/mt7621_asiarf_ap7621.dtsi
  7. 31 1
      target/linux/ramips/dts/mt7621_asus_rt-ac57u.dts
  8. 28 7
      target/linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi
  9. 29 0
      target/linux/ramips/dts/mt7621_buffalo_wsr-1166dhp.dts
  10. 30 1
      target/linux/ramips/dts/mt7621_buffalo_wsr-600dhp.dts
  11. 32 2
      target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts
  12. 31 1
      target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts
  13. 34 1
      target/linux/ramips/dts/mt7621_dlink_dir-860l-b1.dts
  14. 29 5
      target/linux/ramips/dts/mt7621_edimax_rx21s.dtsi
  15. 31 1
      target/linux/ramips/dts/mt7621_elecom_wrc-1167ghbk2-s.dts
  16. 31 1
      target/linux/ramips/dts/mt7621_elecom_wrc-gst.dtsi
  17. 32 1
      target/linux/ramips/dts/mt7621_firefly_firewrt.dts
  18. 27 1
      target/linux/ramips/dts/mt7621_gehua_ghl-r-001.dts
  19. 15 1
      target/linux/ramips/dts/mt7621_gnubee_gb-pc1.dts
  20. 15 1
      target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts
  21. 24 0
      target/linux/ramips/dts/mt7621_hiwifi_hc5962.dts
  22. 32 1
      target/linux/ramips/dts/mt7621_iodata_wn-ax1167gr.dts
  23. 32 1
      target/linux/ramips/dts/mt7621_iodata_wn-gx300gr.dts
  24. 32 1
      target/linux/ramips/dts/mt7621_iodata_wn-xx-xr.dtsi
  25. 30 2
      target/linux/ramips/dts/mt7621_iodata_wnpr2600g.dts
  26. 32 2
      target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts
  27. 31 1
      target/linux/ramips/dts/mt7621_iptime_a8004t.dts
  28. 31 1
      target/linux/ramips/dts/mt7621_jcg_jhr-ac876m.dts
  29. 22 2
      target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts
  30. 25 1
      target/linux/ramips/dts/mt7621_linksys_re6500.dts
  31. 32 1
      target/linux/ramips/dts/mt7621_mediatek_ap-mt7621a-v60.dts
  32. 29 0
      target/linux/ramips/dts/mt7621_mediatek_mt7621-eval-board.dts
  33. 32 1
      target/linux/ramips/dts/mt7621_mikrotik_rb750gr3.dts
  34. 11 1
      target/linux/ramips/dts/mt7621_mikrotik_rbm11g.dts
  35. 22 1
      target/linux/ramips/dts/mt7621_mikrotik_rbm33g.dts
  36. 32 1
      target/linux/ramips/dts/mt7621_mqmaker_witi.dts
  37. 33 2
      target/linux/ramips/dts/mt7621_mtc_wr1201.dts
  38. 11 2
      target/linux/ramips/dts/mt7621_netgear_ex6150.dts
  39. 0 1
      target/linux/ramips/dts/mt7621_netgear_r6700-v2.dts
  40. 0 1
      target/linux/ramips/dts/mt7621_netgear_r6800.dts
  41. 33 2
      target/linux/ramips/dts/mt7621_netgear_sercomm_ayx.dtsi
  42. 36 1
      target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi
  43. 33 2
      target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi
  44. 32 2
      target/linux/ramips/dts/mt7621_netis_wf2881.dts
  45. 31 1
      target/linux/ramips/dts/mt7621_phicomm_k2p.dts
  46. 31 1
      target/linux/ramips/dts/mt7621_planex_vr500.dts
  47. 31 1
      target/linux/ramips/dts/mt7621_samknows_whitebox-v8.dts
  48. 32 1
      target/linux/ramips/dts/mt7621_storylink_sap-g3200u3.dts
  49. 32 2
      target/linux/ramips/dts/mt7621_telco-electronics_x1.dts
  50. 10 1
      target/linux/ramips/dts/mt7621_thunder_timecloud.dts
  51. 32 1
      target/linux/ramips/dts/mt7621_totolink_a7000r.dts
  52. 10 1
      target/linux/ramips/dts/mt7621_tplink_re350-v1.dts
  53. 12 2
      target/linux/ramips/dts/mt7621_tplink_re650-v1.dts
  54. 33 2
      target/linux/ramips/dts/mt7621_ubiquiti_edgerouterx.dtsi
  55. 11 3
      target/linux/ramips/dts/mt7621_ubnt_unifi-nanohd.dts
  56. 32 2
      target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi
  57. 34 1
      target/linux/ramips/dts/mt7621_wevo_w2914ns-v2.dtsi
  58. 21 2
      target/linux/ramips/dts/mt7621_xiaomi_mir3g-v2.dts
  59. 26 3
      target/linux/ramips/dts/mt7621_xiaomi_mir3g.dts
  60. 32 3
      target/linux/ramips/dts/mt7621_xiaomi_mir3p.dts
  61. 33 2
      target/linux/ramips/dts/mt7621_xiaoyu_xy-c5.dts
  62. 32 1
      target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts
  63. 31 1
      target/linux/ramips/dts/mt7621_youhua_wr1200js.dts
  64. 31 1
      target/linux/ramips/dts/mt7621_youku_yk-l2.dts
  65. 31 1
      target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts
  66. 31 1
      target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts
  67. 32 1
      target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts
  68. 32 1
      target/linux/ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi
  69. 16 27
      target/linux/ramips/mt7621/base-files/etc/board.d/01_leds
  70. 52 187
      target/linux/ramips/mt7621/base-files/etc/board.d/02_network

+ 33 - 2
target/linux/ramips/dts/mt7621_adslr_g7.dts

@@ -15,7 +15,7 @@
 		led-failsafe = &led_sys;
 		led-running = &led_sys;
 		led-upgrade = &led_sys;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -105,10 +105,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe00c>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe00c>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "wdt";

+ 32 - 7
target/linux/ramips/dts/mt7621_afoundry_ew1200.dts

@@ -20,12 +20,6 @@
 		bootargs = "console=ttyS0,57600";
 	};
 
-	palmbus: palmbus@1E000000 {
-		i2c@900 {
-			status = "okay";
-		};
-	};
-
 	keys {
 		compatible = "gpio-keys";
 
@@ -117,10 +111,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2", "jtag", "mdio";

+ 32 - 2
target/linux/ramips/dts/mt7621_alfa-network_quad-e4g.dts

@@ -11,7 +11,7 @@
 	model = "ALFA Network Quad-E4G";
 
 	aliases {
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 		led-boot = &led_system;
 		led-failsafe = &led_system;
 		led-running = &led_system;
@@ -148,10 +148,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &i2c {
 	status = "okay";
 

+ 16 - 0
target/linux/ramips/dts/mt7621_asiarf_ap7621-001.dts

@@ -7,3 +7,19 @@
 	compatible = "asiarf,ap7621-001", "mediatek,mt7621-soc";
 	model = "AsiaRF AP7621-001";
 };
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};

+ 21 - 0
target/linux/ramips/dts/mt7621_asiarf_ap7621-nv1.dts

@@ -7,3 +7,24 @@
 	compatible = "asiarf,ap7621-nv1", "mediatek,mt7621-soc";
 	model = "AsiaRF AP7621-NV1";
 };
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+	};
+};

+ 1 - 2
target/linux/ramips/dts/mt7621_asiarf_ap7621.dtsi

@@ -103,9 +103,8 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
-	mediatek,portmap = "llllw";
 };
 
 &state_default {

+ 31 - 1
target/linux/ramips/dts/mt7621_asus_rt-ac57u.dts

@@ -134,10 +134,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "sdhci";

+ 28 - 7
target/linux/ramips/dts/mt7621_asus_rt-acx5p.dtsi

@@ -135,16 +135,37 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
-	mediatek,portmap = "wllll";
-	port@5 {
-		status = "disabled";
-	};
 };
 
-&i2c {
-	status = "disabled";
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
 };
 
 &state_default {

+ 29 - 0
target/linux/ramips/dts/mt7621_buffalo_wsr-1166dhp.dts

@@ -158,6 +158,35 @@
 	};
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2", "uart3", "rgmii2", "sdhci";

+ 30 - 1
target/linux/ramips/dts/mt7621_buffalo_wsr-600dhp.dts

@@ -178,10 +178,39 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+		};
+	};
+};
+
 &xhci {
 	status = "disabled";
 };

+ 32 - 2
target/linux/ramips/dts/mt7621_d-team_newifi-d2.dts

@@ -14,7 +14,7 @@
 		led-failsafe = &led_power_blue;
 		led-running = &led_power_blue;
 		led-upgrade = &led_power_blue;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -149,10 +149,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "jtag", "uart2", "uart3";

+ 31 - 1
target/linux/ramips/dts/mt7621_d-team_pbr-m1.dts

@@ -164,10 +164,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2", "jtag", "mdio";

+ 34 - 1
target/linux/ramips/dts/mt7621_dlink_dir-860l-b1.dts

@@ -14,7 +14,7 @@
 		led-failsafe = &led_power_green;
 		led-running = &led_power_green;
 		led-upgrade = &led_power_green;
-		label-mac-device = &wifi1;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -114,6 +114,39 @@
 	};
 };
 
+&gmac0 {
+	mtd-mac-address = <&radio 0x4>;
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &pcie {
 	status = "okay";
 };

+ 29 - 5
target/linux/ramips/dts/mt7621_edimax_rx21s.dtsi

@@ -8,7 +8,7 @@
 
 / {
 	aliases {
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -94,12 +94,36 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
 
-	mediatek,portmap = "wllll";
-	port@5 {
-		status = "disabled";
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
 	};
 };
 

+ 31 - 1
target/linux/ramips/dts/mt7621_elecom_wrc-1167ghbk2-s.dts

@@ -72,10 +72,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &spi0 {
 	status = "okay";
 

+ 31 - 1
target/linux/ramips/dts/mt7621_elecom_wrc-gst.dtsi

@@ -86,10 +86,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &spi0 {
 	status = "okay";
 

+ 32 - 1
target/linux/ramips/dts/mt7621_firefly_firewrt.dts

@@ -110,10 +110,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2";

+ 27 - 1
target/linux/ramips/dts/mt7621_gehua_ghl-r-001.dts

@@ -110,10 +110,36 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "jtag", "wdt";

+ 15 - 1
target/linux/ramips/dts/mt7621_gnubee_gb-pc1.dts

@@ -104,10 +104,24 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan2";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "jtag", "rgmii2", "uart3", "wdt";

+ 15 - 1
target/linux/ramips/dts/mt7621_gnubee_gb-pc2.dts

@@ -114,10 +114,24 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan2";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "jtag", "rgmii2", "uart3", "wdt";

+ 24 - 0
target/linux/ramips/dts/mt7621_hiwifi_hc5962.dts

@@ -142,6 +142,30 @@
 	};
 };
 
+&switch0 {
+	ports {
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart3", "jtag";

+ 32 - 1
target/linux/ramips/dts/mt7621_iodata_wn-ax1167gr.dts

@@ -129,10 +129,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&iNIC_rf 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <1>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart2", "uart3", "jtag";

+ 32 - 1
target/linux/ramips/dts/mt7621_iodata_wn-gx300gr.dts

@@ -129,10 +129,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <1>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart2", "uart3", "jtag";

+ 32 - 1
target/linux/ramips/dts/mt7621_iodata_wn-xx-xr.dtsi

@@ -11,6 +11,7 @@
 		led-failsafe = &led_power;
 		led-running = &led_power;
 		led-upgrade = &led_power;
+		label-mac-device = &wan;
 	};
 
 	chosen {
@@ -120,10 +121,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		wan: port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &pcie {
 	status = "okay";
 };

+ 30 - 2
target/linux/ramips/dts/mt7621_iodata_wnpr2600g.dts

@@ -124,9 +124,37 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
-	mediatek,portmap = "wllll";
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
 };
 
 &state_default {

+ 32 - 2
target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts

@@ -15,7 +15,7 @@
 		led-failsafe = &led_cpu;
 		led-running = &led_cpu;
 		led-upgrade = &led_cpu;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -115,10 +115,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&uboot 0x1fc20>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&uboot 0x1fc40>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
 &pcie {
 	status = "okay";
 };

+ 31 - 1
target/linux/ramips/dts/mt7621_iptime_a8004t.dts

@@ -100,10 +100,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&uboot 0x1fc20>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&uboot 0x1fc40>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
+};
+
 &pcie {
 	status = "okay";
 };

+ 31 - 1
target/linux/ramips/dts/mt7621_jcg_jhr-ac876m.dts

@@ -15,6 +15,7 @@
 		led-failsafe = &led_wps;
 		led-running = &led_wps;
 		led-upgrade = &led_wps;
+		label-mac-device = &wan;
 	};
 
 	chosen {
@@ -132,10 +133,39 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+		wan: port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart3", "jtag", "wdt";

+ 22 - 2
target/linux/ramips/dts/mt7621_lenovo_newifi-d1.dts

@@ -14,7 +14,7 @@
 		led-failsafe = &led_blue;
 		led-running = &led_blue;
 		led-upgrade = &led_blue;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -133,10 +133,30 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2", "jtag", "uart2", "uart3", "i2c";

+ 25 - 1
target/linux/ramips/dts/mt7621_linksys_re6500.dts

@@ -118,10 +118,34 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x2e>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
 &xhci {
 	status = "disabled";
 };

+ 32 - 1
target/linux/ramips/dts/mt7621_mediatek_ap-mt7621a-v60.dts

@@ -118,10 +118,41 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x5>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x5>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &pcie {
 	status = "okay";
 };

+ 29 - 0
target/linux/ramips/dts/mt7621_mediatek_mt7621-eval-board.dts

@@ -45,6 +45,35 @@
 	status = "okay";
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2", "uart3", "rgmii2", "sdhci";

+ 32 - 1
target/linux/ramips/dts/mt7621_mikrotik_rb750gr3.dts

@@ -129,11 +129,42 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&hard_config 0x0010>;
 	mtd-mac-address-increment = <1>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&hard_config 0x0010>;
+			mtd-mac-address-increment = <2>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		/* via gpio7 (uart3 group) the PoE status can be read */

+ 11 - 1
target/linux/ramips/dts/mt7621_mikrotik_rbm11g.dts

@@ -138,11 +138,21 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&hard_config 0x0010>;
 	mtd-mac-address-increment = <1>;
 };
 
+&switch0 {
+	ports {
+		/* FIXME: Is LAN port at switch port 0? */
+		port@0 {
+			status = "okay";
+			label = "lan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart2", "wdt", "rgmii2";

+ 22 - 1
target/linux/ramips/dts/mt7621_mikrotik_rbm33g.dts

@@ -162,11 +162,32 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&hard_config 0x0010>;
 	mtd-mac-address-increment = <1>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&hard_config 0x0010>;
+			mtd-mac-address-increment = <2>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart2", "wdt";

+ 32 - 1
target/linux/ramips/dts/mt7621_mqmaker_witi.dts

@@ -101,10 +101,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2", "jtag", "mdio";

+ 33 - 2
target/linux/ramips/dts/mt7621_mtc_wr1201.dts

@@ -14,7 +14,7 @@
 		led-failsafe = &led_power;
 		led-running = &led_power;
 		led-upgrade = &led_power;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -104,10 +104,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &sdhci {
 	status = "okay";
 };

+ 11 - 2
target/linux/ramips/dts/mt7621_netgear_ex6150.dts

@@ -228,8 +228,17 @@
 	};
 };
 
-&ethernet {
-	mtd-mac-address = <&factory 0x00000004>;
+&gmac0 {
+	mtd-mac-address = <&factory 0x4>;
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan";
+		};
+	};
 };
 
 &state_default {

+ 0 - 1
target/linux/ramips/dts/mt7621_netgear_r6700-v2.dts

@@ -12,7 +12,6 @@
 		led-failsafe = &led_power_orange;
 		led-running = &led_power_white;
 		led-upgrade = &led_power_orange;
-		label-mac-device = &ethernet;
 	};
 
 	leds {

+ 0 - 1
target/linux/ramips/dts/mt7621_netgear_r6800.dts

@@ -12,7 +12,6 @@
 		led-failsafe = &led_power_orange;
 		led-running = &led_power_white;
 		led-upgrade = &led_power_orange;
-		label-mac-device = &ethernet;
 	};
 
 	leds {

+ 33 - 2
target/linux/ramips/dts/mt7621_netgear_sercomm_ayx.dtsi

@@ -13,7 +13,7 @@
 		led-failsafe = &led_power;
 		led-running = &led_power;
 		led-upgrade = &led_power;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -105,10 +105,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart3", "uart2", "jtag", "wdt";

+ 36 - 1
target/linux/ramips/dts/mt7621_netgear_sercomm_bzv.dtsi

@@ -8,6 +8,10 @@
 / {
 	compatible = "mediatek,mt7621-soc";
 
+	aliases {
+		label-mac-device = &gmac0;
+	};
+
 	chosen {
 		bootargs = "console=ttyS0,57600";
 	};
@@ -57,10 +61,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <2>;
+		};
+	};
+};
+
 &i2c {
 	status = "okay";
 

+ 33 - 2
target/linux/ramips/dts/mt7621_netgear_sercomm_chj.dtsi

@@ -13,7 +13,7 @@
 		led-failsafe = &led_power;
 		led-running = &led_power;
 		led-upgrade = &led_power;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -95,10 +95,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <2>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart3", "uart2", "jtag", "wdt";

+ 32 - 2
target/linux/ramips/dts/mt7621_netis_wf2881.dts

@@ -14,7 +14,7 @@
 		led-failsafe = &led_wps;
 		led-running = &led_wps;
 		led-upgrade = &led_wps;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -127,10 +127,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart3", "uart2";

+ 31 - 1
target/linux/ramips/dts/mt7621_phicomm_k2p.dts

@@ -107,10 +107,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "jtag";

+ 31 - 1
target/linux/ramips/dts/mt7621_planex_vr500.dts

@@ -80,10 +80,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2", "uart3", "rgmii2", "sdhci";

+ 31 - 1
target/linux/ramips/dts/mt7621_samknows_whitebox-v8.dts

@@ -110,10 +110,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2", "uart3", "rgmii2", "sdhci";

+ 32 - 1
target/linux/ramips/dts/mt7621_storylink_sap-g3200u3.dts

@@ -107,10 +107,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe006>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart3", "jtag";

+ 32 - 2
target/linux/ramips/dts/mt7621_telco-electronics_x1.dts

@@ -126,9 +126,39 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe006>;
-	mediatek,portmap = "llllw";
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
 };
 
 &state_default {

+ 10 - 1
target/linux/ramips/dts/mt7621_thunder_timecloud.dts

@@ -95,10 +95,19 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@4 {
+			status = "okay";
+			label = "lan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2", "jtag";

+ 32 - 1
target/linux/ramips/dts/mt7621_totolink_a7000r.dts

@@ -104,10 +104,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "wdt";

+ 10 - 1
target/linux/ramips/dts/mt7621_tplink_re350-v1.dts

@@ -151,10 +151,19 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&config 0x10008>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "rgmii2", "wdt";

+ 12 - 2
target/linux/ramips/dts/mt7621_tplink_re650-v1.dts

@@ -15,7 +15,7 @@
 		led-failsafe = &led_power;
 		led-running = &led_power;
 		led-upgrade = &led_power;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -164,10 +164,20 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&config 0x10008>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan";
+		};
+	};
+};
+
+
 &state_default {
 	gpio {
 		groups = "rgmii2", "wdt";

+ 33 - 2
target/linux/ramips/dts/mt7621_ubiquiti_edgerouterx.dtsi

@@ -5,7 +5,7 @@
 
 / {
 	aliases {
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -23,10 +23,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x22>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x22>;
+			mtd-mac-address-increment = <1>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
 &nand {
 	status = "okay";
 

+ 11 - 3
target/linux/ramips/dts/mt7621_ubnt_unifi-nanohd.dts

@@ -15,8 +15,7 @@
 		led-failsafe = &led_white;
 		led-running = &led_blue;
 		led-upgrade = &led_blue;
-
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -129,10 +128,19 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&eeprom 0x0>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2";

+ 32 - 2
target/linux/ramips/dts/mt7621_unielec_u7621-06.dtsi

@@ -104,9 +104,39 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
-	mediatek,portmap = "llllw";
+};
+
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
 };
 
 &state_default {

+ 34 - 1
target/linux/ramips/dts/mt7621_wevo_w2914ns-v2.dtsi

@@ -4,6 +4,10 @@
 #include <dt-bindings/input/input.h>
 
 / {
+	aliases {
+		label-mac-device = &wan;
+	};
+
 	chosen {
 		bootargs = "console=ttyS0,57600";
 	};
@@ -97,10 +101,39 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+		wan: port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x2e>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2";

+ 21 - 2
target/linux/ramips/dts/mt7621_xiaomi_mir3g-v2.dts

@@ -15,6 +15,7 @@
 		led-failsafe = &led_status_yellow;
 		led-running = &led_status_blue;
 		led-upgrade = &led_status_yellow;
+		label-mac-device = &wan;
 	};
 
 	chosen {
@@ -132,9 +133,27 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
-	mediatek,portmap = "llllw";
+};
+
+&switch0 {
+	ports {
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+		wan: port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
 };
 
 &state_default {

+ 26 - 3
target/linux/ramips/dts/mt7621_xiaomi_mir3g.dts

@@ -14,6 +14,7 @@
 		led-failsafe = &led_status_red;
 		led-running = &led_status_blue;
 		led-upgrade = &led_status_yellow;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -41,16 +42,19 @@
 		wan_amber {
 			label = "mir3g:amber:wan";
 			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:01:1Gbps";
 		};
 
 		lan1_amber {
 			label = "mir3g:amber:lan1";
 			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:03:1Gbps";
 		};
 
 		lan2_amber {
 			label = "mir3g:amber:lan2";
 			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:02:1Gbps";
 		};
 	};
 
@@ -186,9 +190,28 @@
 	};
 };
 
-&ethernet {
-	mtd-mac-address = <&factory 0xe000>;
-	mediatek,portmap = "lwlll";
+&gmac0 {
+	mtd-mac-address = <&factory 0xe006>;
+};
+
+&switch0 {
+	ports {
+		port@1 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+	};
 };
 
 &state_default {

+ 32 - 3
target/linux/ramips/dts/mt7621_xiaomi_mir3p.dts

@@ -15,6 +15,7 @@
 		led-failsafe = &led_status_red;
 		led-running = &led_status_blue;
 		led-upgrade = &led_status_yellow;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -42,21 +43,25 @@
 		wan_amber {
 			label = "mir3p:amber:wan";
 			gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:04:1Gbps";
 		};
 
 		lan3_amber {
 			label = "mir3p:amber:lan3";
 			gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:01:1Gbps";
 		};
 
 		lan2_amber {
 			label = "mir3p:amber:lan2";
 			gpios = <&gpio 16 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:02:1Gbps";
 		};
 
 		lan1_amber {
 			label = "mir3p:amber:lan1";
 			gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
+			linux,default-trigger = "dsa-0.0:03:1Gbps";
 		};
 	};
 
@@ -171,9 +176,33 @@
 	};
 };
 
-&ethernet {
-	mtd-mac-address = <&factory 0xe000>;
-	mediatek,portmap = "llllw";
+&gmac0 {
+	mtd-mac-address = <&factory 0xe006>;
+};
+
+&switch0 {
+	ports {
+		port@1 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+		};
+	};
 };
 
 &state_default {

+ 33 - 2
target/linux/ramips/dts/mt7621_xiaoyu_xy-c5.dts

@@ -14,7 +14,7 @@
 		led-failsafe = &led_sys;
 		led-running = &led_sys;
 		led-upgrade = &led_sys;
-		label-mac-device = &ethernet;
+		label-mac-device = &gmac0;
 	};
 
 	chosen {
@@ -90,10 +90,41 @@
 	status = "okay";
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0x4>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0x4>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "uart3", "wdt";

+ 32 - 1
target/linux/ramips/dts/mt7621_xzwifi_creativebox-v1.dts

@@ -152,10 +152,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2";

+ 31 - 1
target/linux/ramips/dts/mt7621_youhua_wr1200js.dts

@@ -126,10 +126,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "lan4";
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "i2c", "uart2", "uart3", "wdt";

+ 31 - 1
target/linux/ramips/dts/mt7621_youku_yk-l2.dts

@@ -137,10 +137,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "jtag", "wdt";

+ 31 - 1
target/linux/ramips/dts/mt7621_zbtlink_zbt-we1326.dts

@@ -75,10 +75,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &pcie {
 	status = "okay";
 };

+ 31 - 1
target/linux/ramips/dts/mt7621_zbtlink_zbt-we3526.dts

@@ -99,10 +99,40 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe006>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt";

+ 32 - 1
target/linux/ramips/dts/mt7621_zbtlink_zbt-wg2626.dts

@@ -110,10 +110,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2", "jtag", "mdio";

+ 32 - 1
target/linux/ramips/dts/mt7621_zbtlink_zbt-wg3526.dtsi

@@ -112,10 +112,41 @@
 	};
 };
 
-&ethernet {
+&gmac0 {
 	mtd-mac-address = <&factory 0xe000>;
 };
 
+&switch0 {
+	ports {
+		port@0 {
+			status = "okay";
+			label = "lan1";
+		};
+
+		port@1 {
+			status = "okay";
+			label = "lan2";
+		};
+
+		port@2 {
+			status = "okay";
+			label = "lan3";
+		};
+
+		port@3 {
+			status = "okay";
+			label = "lan4";
+		};
+
+		port@4 {
+			status = "okay";
+			label = "wan";
+			mtd-mac-address = <&factory 0xe000>;
+			mtd-mac-address-increment = <1>;
+		};
+	};
+};
+
 &state_default {
 	gpio {
 		groups = "wdt", "rgmii2", "jtag", "mdio";

+ 16 - 27
target/linux/ramips/mt7621/base-files/etc/board.d/01_leds

@@ -18,21 +18,21 @@ led_wlan="$(get_dt_led wlan)"
 
 case $board in
 d-team,newifi-d2)
-	ucidef_set_led_switch "internet" "internet" "$boardname:amber:internet" "switch0" "0x10"
+	ucidef_set_led_netdev "internet" "internet" "$boardname:amber:internet" "wan"
 	ucidef_set_led_netdev "wlan2g" "WiFi 2.4GHz" "$boardname:blue:wlan2g" "wlan0"
 	ucidef_set_led_netdev "wlan5g" "WiFi 5GHz" "$boardname:blue:wlan5g" "wlan1"
 	;;
 d-team,pbr-m1|\
 gehua,ghl-r-001)
-	ucidef_set_led_netdev "internet" "internet" "$boardname:blue:internet" "eth0.2"
+	ucidef_set_led_netdev "internet" "internet" "$boardname:blue:internet" "wan"
 	;;
 dlink,dir-860l-b1)
-	ucidef_set_led_netdev "wan" "wan" "$boardname:green:net" "eth0.2"
+	ucidef_set_led_netdev "wan" "wan" "$boardname:green:net" "wan"
 	;;
 gnubee,gb-pc1|\
 gnubee,gb-pc2)
-	ucidef_set_led_switch "lan1" "lan1" "$boardname:green:lan1" "switch0" "0x01"
-	ucidef_set_led_switch "lan2" "lan2" "$boardname:green:lan2" "switch0" "0x10"
+	ucidef_set_led_netdev "lan1" "lan1" "$boardname:green:lan1" "lan1"
+	ucidef_set_led_netdev "lan2" "lan2" "$boardname:green:lan2" "lan2"
 	;;
 mikrotik,rbm11g)
 	ucidef_set_rssimon "wlan0" "200000" "1"
@@ -43,46 +43,35 @@ mikrotik,rbm11g)
 	ucidef_set_led_rssi "rssiveryhigh" "RSSIVERYHIGH" "$boardname:green:rssi4" "wlan0" "80" "100"
 	;;
 mtc,wr1201)
-	ucidef_set_led_switch "eth_link" "LAN link" "$boardname:green:eth_link" "switch0" "0x0f"
+	ucidef_set_led_netdev "eth_link" "LAN link" "$boardname:green:eth_link" "br-lan"
 	;;
 netgear,r6220|\
 netgear,r6260|\
 netgear,r6350|\
 netgear,r6850|\
 netgear,wndr3700-v5)
-	ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x10"
+	ucidef_set_led_netdev "wan" "wan" "$boardname:green:wan" "wan"
 	;;
 netgear,r6700-v2|\
 netgear,r6800)
-	ucidef_set_led_switch "wan" "WAN" "$boardname:white:wan" "switch0" "0x10"
-	ucidef_set_led_switch "lan1" "LAN1" "$boardname:white:lan1" "switch0" "0x08"
-	ucidef_set_led_switch "lan2" "LAN2" "$boardname:white:lan2" "switch0" "0x04"
-	ucidef_set_led_switch "lan3" "LAN3" "$boardname:white:lan3" "switch0" "0x02"
-	ucidef_set_led_switch "lan4" "LAN4" "$boardname:white:lan4" "switch0" "0x01"
+	ucidef_set_led_netdev "wan" "WAN" "$boardname:white:wan" "wan"
+	ucidef_set_led_netdev "lan1" "LAN1" "$boardname:white:lan1" "lan1"
+	ucidef_set_led_netdev "lan2" "LAN2" "$boardname:white:lan2" "lan2"
+	ucidef_set_led_netdev "lan3" "LAN3" "$boardname:white:lan3" "lan3"
+	ucidef_set_led_netdev "lan4" "LAN4" "$boardname:white:lan4" "lan4"
 	;;
 tplink,re350-v1|\
 tplink,re650-v1)
 	ucidef_set_led_netdev "wifi2g" "Wifi 2.4G" "$boardname:blue:wifi2G" "wlan0"
 	ucidef_set_led_netdev "wifi5g" "Wifi 5G" "$boardname:blue:wifi5G" "wlan1"
-	ucidef_set_led_netdev "eth_act" "LAN act" "$boardname:green:eth_act" "eth0" "tx rx"
-	ucidef_set_led_switch "eth_link" "LAN link" "$boardname:green:eth_link" "switch0" "0x01"
-	;;
-xiaomi,mir3g)
-	ucidef_set_led_switch "wan-amber"  "WAN (amber)"  "$boardname:amber:wan"  "switch0" "0x02" "0x08"
-	ucidef_set_led_switch "lan1-amber" "LAN1 (amber)" "$boardname:amber:lan1" "switch0" "0x08" "0x08"
-	ucidef_set_led_switch "lan2-amber" "LAN2 (amber)" "$boardname:amber:lan2" "switch0" "0x04" "0x08"
-	;;
-xiaomi,mir3p)
-	ucidef_set_led_switch "wan-amber"  "WAN (amber)"  "$boardname:amber:wan"  "switch0" "0x10" "0x08"
-	ucidef_set_led_switch "lan1-amber" "LAN1 (amber)" "$boardname:amber:lan1" "switch0" "0x02" "0x08"
-	ucidef_set_led_switch "lan2-amber" "LAN2 (amber)" "$boardname:amber:lan2" "switch0" "0x04" "0x08"
-	ucidef_set_led_switch "lan3-amber" "LAN3 (amber)" "$boardname:amber:lan3" "switch0" "0x08" "0x08"
+	ucidef_set_led_netdev "eth_act" "LAN act" "$boardname:green:eth_act" "lan" "tx rx"
+	ucidef_set_led_netdev "eth_link" "LAN link" "$boardname:green:eth_link" "lan" "link"
 	;;
 xzwifi,creativebox-v1)
-	ucidef_set_led_switch "internet" "internet" "$boardname:blue:internet" "switch0" "0x10"
+	ucidef_set_led_netdev "internet" "internet" "$boardname:blue:internet" "wan"
 	;;
 youhua,wr1200js)
-	ucidef_set_led_switch "internet" "INTERNET" "$boardname:green:wan" "switch0" "0x01"
+	ucidef_set_led_netdev "internet" "INTERNET" "$boardname:green:wan" "wan"
 	;;
 esac
 

+ 52 - 187
target/linux/ramips/mt7621/base-files/etc/board.d/02_network

@@ -11,140 +11,95 @@ ramips_setup_interfaces()
 	case $board in
 	adslr,g7|\
 	afoundry,ew1200|\
+	alfa-network,quad-e4g|\
+	asus,rt-ac57u|\
+	asus,rt-ac65p|\
+	asus,rt-ac85p|\
+	buffalo,wsr-1166dhp|\
+	buffalo,wsr-600dhp|\
+	dlink,dir-860l-b1|\
+	d-team,newifi-d2|\
 	d-team,pbr-m1|\
+	edimax,ra21s|\
+	edimax,rg21s|\
+	elecom,wrc-1167ghbk2-s|\
+	elecom,wrc-1900gst|\
+	elecom,wrc-2533gst|\
 	firefly,firewrt|\
+	iodata,wn-ax1167gr|\
+	iodata,wn-ax1167gr2|\
+	iodata,wn-dx1167r|\
+	iodata,wn-gx300gr|\
+	iodata,wnpr2600g|\
+	iptime,a6ns-m|\
+	iptime,a8004t|\
 	jcg,jhr-ac876m|\
 	mediatek,ap-mt7621a-v60|\
 	mediatek,mt7621-eval-board|\
+	mikrotik,rb750gr3|\
 	mqmaker,witi|\
 	mtc,wr1201|\
+	netgear,r6220|\
+	netgear,r6260|\
+	netgear,r6350|\
+	netgear,r6700-v2|\
+	netgear,r6800|\
+	netgear,r6850|\
+	netgear,wndr3700-v5|\
+	netis,wf2881|\
 	phicomm,k2p|\
 	planex,vr500|\
 	samknows,whitebox-v8|\
 	storylink,sap-g3200u3|\
 	telco-electronics,x1|\
 	totolink,a7000r|\
+	ubiquiti,edgerouterx|\
+	ubiquiti,edgerouterx-sfp|\
 	unielec,u7621-06-16m|\
 	unielec,u7621-06-64m|\
+	wevo,11acnas|\
+	wevo,w2914ns-v2|\
 	xiaoyu,xy-c5|\
 	xzwifi,creativebox-v1|\
+	youhua,wr1200js|\
 	youku,yk-l2|\
 	zbtlink,zbt-we1326|\
 	zbtlink,zbt-we3526|\
 	zbtlink,zbt-wg2626|\
 	zbtlink,zbt-wg3526-16m|\
-	zbtlink,zbt-wg3526-32m)
-		ucidef_add_switch "switch0" \
-			"0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
-		;;
-	alfa-network,quad-e4g|\
-	netgear,r6220|\
-	netgear,r6260|\
-	netgear,r6350|\
-	netgear,r6700-v2|\
-	netgear,r6800|\
-	netgear,r6850|\
-	netgear,wndr3700-v5|\
-	netis,wf2881|\
-	wevo,11acnas|\
-	wevo,w2914ns-v2|\
+	zbtlink,zbt-wg3526-32m|\
 	zio,freezio)
-		ucidef_add_switch "switch0" \
-			"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
+		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
 		;;
 	asiarf,ap7621-001)
-		ucidef_add_switch "switch0" "0:lan" "4:wan" "6@eth0"
-		;;
-	asiarf,ap7621-nv1)
-		ucidef_add_switch "switch0" "0:wan" "2:lan" "3:lan" "6@eth0"
+		ucidef_set_interfaces_lan_wan "lan" "wan"
 		;;
-	asus,rt-ac65p|\
-	asus,rt-ac57u|\
-	asus,rt-ac85p|\
-	iptime,a6ns-m|\
-	mikrotik,rb750gr3|\
-	ubiquiti,edgerouterx|\
-	ubiquiti,edgerouterx-sfp|\
-	youhua,wr1200js)
-		ucidef_add_switch "switch0" \
-			"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
-		;;
-	dlink,dir-860l-b1|\
-	elecom,wrc-1167ghbk2-s|\
-	elecom,wrc-1900gst|\
-	elecom,wrc-2533gst|\
-	iodata,wn-ax1167gr|\
-	iodata,wn-ax1167gr2|\
-	iodata,wn-dx1167r|\
-	iodata,wn-gx300gr|\
-	iodata,wnpr2600g|\
-	iptime,a8004t)
-		ucidef_add_switch "switch0" \
-			"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
-		;;
-	buffalo,wsr-1166dhp|\
-	buffalo,wsr-600dhp)
-		ucidef_add_switch "switch0" \
-			"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "4:wan:5" "6@eth0"
-		;;
-	d-team,newifi-d2)
-		ucidef_add_switch "switch0" \
-			"0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan:5" "6@eth0"
-		;;
-	edimax,ra21s|\
-	edimax,rg21s)
-		ucidef_add_switch "switch0" \
-			"1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
+	asiarf,ap7621-nv1|\
+	lenovo,newifi-d1|\
+	mikrotik,rbm33g|\
+	xiaomi,mir3g|\
+	xiaomi,mir3g-v2)
+		ucidef_set_interfaces_lan_wan "lan1 lan2" "wan"
 		;;
-	gehua,ghl-r-001)
-		ucidef_add_switch "switch0" \
-			"0:lan" "1:lan" "2:lan" "4:wan" "6@eth0"
+	gehua,ghl-r-001|\
+	hiwifi,hc5962|\
+	xiaomi,mir3p)
+		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
 		;;
 	gnubee,gb-pc1|\
 	gnubee,gb-pc2)
-		ucidef_add_switch "switch0" \
-			"0:lan" "4:lan" "6@eth0"
-		;;
-	hiwifi,hc5962)
-		ucidef_add_switch "switch0" \
-			"1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
-		;;
-	lenovo,newifi-d1)
-		ucidef_add_switch "switch0" \
-		"1:lan:2" "2:lan:1" "4:wan" "6@eth0"
+		ucidef_set_interface_lan "lan1 lan2"
 		;;
 	linksys,re6500)
-		ucidef_add_switch "switch0" \
-			"0:lan:1" "1:lan:2" "2:lan:3" "3:lan:4" "6@eth0"
+		ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
 		;;
 	mikrotik,rbm11g|\
-	thunder,timecloud)
-		ucidef_add_switch "switch0"
-		ucidef_add_switch_attr "switch0" "enable" "false"
-		ucidef_set_interface_lan "eth0"
-		;;
-	mikrotik,rbm33g)
-		ucidef_add_switch "switch0" \
-			"1:lan" "2:lan" "0:wan" "6@eth0"
-		;;
 	netgear,ex6150|\
+	thunder,timecloud|\
 	tplink,re350-v1|\
 	tplink,re650-v1|\
 	ubnt,unifi-nanohd)
-		ucidef_add_switch "switch0" \
-			"0:lan" "6@eth0"
-		;;
-	xiaomi,mir3g)
-		ucidef_add_switch "switch0" \
-			"2:lan:2" "3:lan:1" "1:wan" "6t@eth0"
-		;;
-	xiaomi,mir3g-v2)
-		ucidef_add_switch "switch0" \
-			"2:lan:2" "3:lan:1" "4:wan" "6@eth0"
-		;;
-	xiaomi,mir3p)
-		ucidef_add_switch "switch0" \
-			"1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
+		ucidef_set_interface_lan "lan"
 		;;
 	*)
 		ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
@@ -160,39 +115,6 @@ ramips_setup_macs()
 	local label_mac=""
 
 	case $board in
-	adslr,g7)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe00c)" 1)
-		;;
-	afoundry,ew1200|\
-	asiarf,ap7621-001|\
-	asiarf,ap7621-nv1|\
-	firefly,firewrt|\
-	gehua,ghl-r-001|\
-	mqmaker,witi|\
-	totolink,a7000r|\
-	unielec,u7621-06-16m|\
-	unielec,u7621-06-64m|\
-	xzwifi,creativebox-v1|\
-	zbtlink,zbt-wg2626)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe000)" 1)
-		;;
-	alfa-network,quad-e4g|\
-	asus,rt-ac57u|\
-	d-team,newifi-d2|\
-	d-team,pbr-m1|\
-	elecom,wrc-1167ghbk2-s|\
-	elecom,wrc-1900gst|\
-	elecom,wrc-2533gst|\
-	lenovo,newifi-d1|\
-	netis,wf2881|\
-	phicomm,k2p|\
-	planex,vr500|\
-	samknows,whitebox-v8|\
-	youhua,wr1200js|\
-	youku,yk-l2|\
-	zbtlink,zbt-we3526)
-		wan_mac=$(mtd_get_mac_binary factory 0xe006)
-		;;
 	asus,rt-ac65p|\
 	asus,rt-ac85p)
 		wan_mac=$(mtd_get_mac_ascii u-boot-env et1macaddr)
@@ -206,7 +128,6 @@ ramips_setup_macs()
 	dlink,dir-860l-b1)
 		lan_mac=$(mtd_get_mac_ascii factory lanmac)
 		wan_mac=$(mtd_get_mac_ascii factory wanmac)
-		label_mac=$(mtd_get_mac_binary radio 0x4)
 		;;
 	edimax,ra21s|\
 	edimax,rg21s)
@@ -219,73 +140,17 @@ ramips_setup_macs()
 		[ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
 		wan_mac=$(macaddr_add "$lan_mac" 1)
 		;;
-	iodata,wn-ax1167gr|\
-	iodata,wn-gx300gr|\
-	mtc,wr1201|\
-	netgear,r6220|\
-	netgear,wndr3700-v5|\
-	xiaoyu,xy-c5)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
-		;;
-	iodata,wn-ax1167gr2|\
-	iodata,wn-dx1167r|\
-	xiaomi,mir3g-v2)
-		wan_mac=$(mtd_get_mac_binary factory 0xe006)
-		label_mac=$wan_mac
-		;;
 	iodata,wnpr2600g)
 		wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
 		label_mac=$wan_mac
 		;;
-	iptime,a6ns-m|\
-	iptime,a8004t)
-		wan_mac=$(mtd_get_mac_binary u-boot 0x1fc40)
-		;;
-	jcg,jhr-ac876m)
-		label_mac=$(mtd_get_mac_binary factory 0x4)
-		wan_mac=$label_mac
-		;;
-	mediatek,ap-mt7621a-v60)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x5)" 1)
-		;;
 	mikrotik,rb750gr3|\
 	mikrotik,rbm33g)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary hard_config 0x10)" 2)
 		label_mac=$(mtd_get_mac_binary hard_config 0x10)
 		;;
-	netgear,r6260|\
-	netgear,r6350|\
-	netgear,r6700-v2|\
-	netgear,r6800|\
-	netgear,r6850)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 2)
-		;;
-	storylink,sap-g3200u3|\
-	telco-electronics,x1)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe006)" 1)
-		;;
-	ubiquiti,edgerouterx|\
-	ubiquiti,edgerouterx-sfp)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x22)" 1)
-		;;
-	wevo,11acnas|\
-	wevo,w2914ns-v2|\
-	zio,freezio)
-		wan_mac=$(mtd_get_mac_binary factory 0x2e)
-		label_mac=$wan_mac
-		;;
-	xiaomi,mir3g|\
-	xiaomi,mir3p)
-		lan_mac=$(mtd_get_mac_binary factory 0xe006)
-		label_mac=$lan_mac
-		;;
-	zbtlink,zbt-we1326)
-		wan_mac=$(mtd_get_mac_binary factory 0xe006)
-		label_mac=$(mtd_get_mac_binary factory 0x4)
-		;;
+	zbtlink,zbt-we1326|\
 	zbtlink,zbt-wg3526-16m|\
 	zbtlink,zbt-wg3526-32m)
-		wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xe000)" 1)
 		label_mac=$(mtd_get_mac_binary factory 0x4)
 		;;
 	esac