[openwrt/openwrt] realtek: rtl93xx: remove pseudo-PHYs and phy-handle from SFP ports

LEDE Commits lede-commits at lists.infradead.org
Sun Nov 2 07:32:16 PST 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/623180a422763af988fc2e0817afb774ef1dc4a7

commit 623180a422763af988fc2e0817afb774ef1dc4a7
Author: Jonas Jelonek <jelonek.jonas at gmail.com>
AuthorDate: Sun Oct 26 14:02:11 2025 +0000

    realtek: rtl93xx: remove pseudo-PHYs and phy-handle from SFP ports
    
    RTL93XX reached the point where the SerDes' are no longer treated as
    regular PHYs. Instead, they are managed by the dedicated PCS driver.
    Thus, all device tree definitions should follow this change.
    
    Remove the pseudo-PHYs for the SerDes (so far usually defined with macro
    INTERNAL_PHY) and corresponding 'phy-handle's from all SFP ports. This
    removes a long-lasting confusion from our Realtek driver(s).
    
    Signed-off-by: Jonas Jelonek <jelonek.jonas at gmail.com>
    Link: https://github.com/openwrt/openwrt/pull/20577
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts  |  9 ---------
 .../linux/realtek/dts/rtl9302_plasmacloud_psx10.dts   |  7 -------
 .../realtek/dts/rtl9302_zyxel_xgs1210-12-common.dtsi  |  5 -----
 .../realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi  |  3 ---
 .../realtek/dts/rtl9303_tplink_tl-st1008f-v2.dts      | 19 -------------------
 .../realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts      | 19 -------------------
 .../linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts | 19 -------------------
 .../linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts | 19 -------------------
 target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts  |  9 ---------
 .../linux/realtek/dts/rtl9312_plasmacloud_common.dtsi | 10 ----------
 10 files changed, 119 deletions(-)

diff --git a/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts b/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts
index abb4aac78e..33752ab6e5 100644
--- a/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts
+++ b/target/linux/realtek/dts/rtl9301_linksys_lgs328c.dts
@@ -180,11 +180,6 @@
 		compatible = "ethernet-phy-ieee802.3-c22";
 		rtl9300,smi-address = <2 23>;
 	};	
-
-	INTERNAL_PHY(24)
-	INTERNAL_PHY(25)
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
 };
 
 &switch0 {
@@ -222,7 +217,6 @@
 			reg = <24>;
 			label = "lan25";
 			pcs-handle = <&serdes4>;
-			phy-handle = <&phy24>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp0>;
@@ -231,7 +225,6 @@
 			reg = <25>;
 			label = "lan26";
 			pcs-handle = <&serdes6>;
-			phy-handle = <&phy25>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp1>;
@@ -240,7 +233,6 @@
 			reg = <26>;
 			label = "lan27";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp2>;
@@ -249,7 +241,6 @@
 			reg = <27>;
 			label = "lan28";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp3>;
diff --git a/target/linux/realtek/dts/rtl9302_plasmacloud_psx10.dts b/target/linux/realtek/dts/rtl9302_plasmacloud_psx10.dts
index c5e13272bd..2273e92788 100644
--- a/target/linux/realtek/dts/rtl9302_plasmacloud_psx10.dts
+++ b/target/linux/realtek/dts/rtl9302_plasmacloud_psx10.dts
@@ -35,18 +35,12 @@
 	};
 };
 
-&mdio_bus0 {
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
-};
-
 &switch0 {
 	ports {
 		port at 26 {
 			reg = <26>;
 			label = "lan9";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			led-set = <0>;
@@ -60,7 +54,6 @@
 			reg = <27>;
 			label = "lan10";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			led-set = <0>;
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-common.dtsi b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-common.dtsi
index 44d81a23f5..9412d26976 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-common.dtsi
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1210-12-common.dtsi
@@ -190,9 +190,6 @@
 		compatible = "ethernet-phy-ieee802.3-c22";
 		rtl9300,smi-address = <0 7>;
 	};
-
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
 };
 
 &switch0 {
@@ -269,7 +266,6 @@
 			reg = <26>;
 			label = "lan11";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			led-set = <2>;
@@ -280,7 +276,6 @@
 			reg = <27>;
 			label = "lan12";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			led-set = <2>;
diff --git a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi
index e78c723bbd..7fd1755551 100644
--- a/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi
+++ b/target/linux/realtek/dts/rtl9302_zyxel_xgs1250-12-common.dtsi
@@ -261,8 +261,6 @@
 		compatible = "ethernet-phy-ieee802.3-c22";
 		rtl9300,smi-address = <0 7>;
 	};
-
-	INTERNAL_PHY(27)
 };
 
 &switch0 {
@@ -364,7 +362,6 @@
 			reg = <27>;
 			label = "lan12";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			led-set = <2>;
diff --git a/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f-v2.dts b/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f-v2.dts
index acb811a977..f242303c79 100644
--- a/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f-v2.dts
+++ b/target/linux/realtek/dts/rtl9303_tplink_tl-st1008f-v2.dts
@@ -232,17 +232,6 @@
 	};
 };
 
-&mdio_bus0 {
-	INTERNAL_PHY(0)
-	INTERNAL_PHY(8)
-	INTERNAL_PHY(16)
-	INTERNAL_PHY(20)
-	INTERNAL_PHY(24)
-	INTERNAL_PHY(25)
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
-};
-
 &switch0 {
 	ports {
 		#address-cells = <1>;
@@ -252,7 +241,6 @@
 			reg = <0>;
 			label = "lan1";
 			pcs-handle = <&serdes2>;
-			phy-handle = <&phy0>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			managed = "in-band-status";
@@ -263,7 +251,6 @@
 			reg = <8>;
 			label = "lan2";
 			pcs-handle = <&serdes3>;
-			phy-handle = <&phy8>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			managed = "in-band-status";
@@ -274,7 +261,6 @@
 			reg = <16>;
 			label = "lan3";
 			pcs-handle = <&serdes4>;
-			phy-handle = <&phy16>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp2>;
 			managed = "in-band-status";
@@ -285,7 +271,6 @@
 			reg = <20>;
 			label = "lan4";
 			pcs-handle = <&serdes5>;
-			phy-handle = <&phy20>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp3>;
 			managed = "in-band-status";
@@ -296,7 +281,6 @@
 			reg = <24>;
 			label = "lan5";
 			pcs-handle = <&serdes6>;
-			phy-handle = <&phy24>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp4>;
 			managed = "in-band-status";
@@ -307,7 +291,6 @@
 			reg = <25>;
 			label = "lan6";
 			pcs-handle = <&serdes7>;
-			phy-handle = <&phy25>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp5>;
 			managed = "in-band-status";
@@ -318,7 +301,6 @@
 			reg = <26>;
 			label = "lan7";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp6>;
 			managed = "in-band-status";
@@ -329,7 +311,6 @@
 			reg = <27>;
 			label = "lan8";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp7>;
 			managed = "in-band-status";
diff --git a/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts b/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts
index ef864ff0b3..8ddfe3a9e7 100644
--- a/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts
+++ b/target/linux/realtek/dts/rtl9303_vimin_vm-s100-0800ms.dts
@@ -221,17 +221,6 @@
 	};
 };
 
-&mdio_bus0 {
-	INTERNAL_PHY(0)
-	INTERNAL_PHY(8)
-	INTERNAL_PHY(16)
-	INTERNAL_PHY(20)
-	INTERNAL_PHY(24)
-	INTERNAL_PHY(25)
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
-};
-
 &switch0 {
 	ports {
 		#address-cells = <1>;
@@ -241,7 +230,6 @@
 			reg = <0>;
 			label = "lan1";
 			pcs-handle = <&serdes2>;
-			phy-handle = <&phy0>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			managed = "in-band-status";
@@ -252,7 +240,6 @@
 			reg = <8>;
 			label = "lan2";
 			pcs-handle = <&serdes3>;
-			phy-handle = <&phy8>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			managed = "in-band-status";
@@ -263,7 +250,6 @@
 			reg = <16>;
 			label = "lan3";
 			pcs-handle = <&serdes4>;
-			phy-handle = <&phy16>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp2>;
 			managed = "in-band-status";
@@ -274,7 +260,6 @@
 			reg = <20>;
 			label = "lan4";
 			pcs-handle = <&serdes5>;
-			phy-handle = <&phy20>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp3>;
 			managed = "in-band-status";
@@ -285,7 +270,6 @@
 			reg = <24>;
 			label = "lan5";
 			pcs-handle = <&serdes6>;
-			phy-handle = <&phy24>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp4>;
 			managed = "in-band-status";
@@ -296,7 +280,6 @@
 			reg = <25>;
 			label = "lan6";
 			pcs-handle = <&serdes7>;
-			phy-handle = <&phy25>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp5>;
 			managed = "in-band-status";
@@ -307,7 +290,6 @@
 			reg = <26>;
 			label = "lan7";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp6>;
 			managed = "in-band-status";
@@ -318,7 +300,6 @@
 			reg = <27>;
 			label = "lan8";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp7>;
 			managed = "in-band-status";
diff --git a/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts b/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts
index cbee044126..88d5451849 100644
--- a/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts
+++ b/target/linux/realtek/dts/rtl9303_xikestor_sks8300-8x.dts
@@ -243,17 +243,6 @@
 	};
 };
 
-&mdio_bus0 {
-	INTERNAL_PHY(0)
-	INTERNAL_PHY(8)
-	INTERNAL_PHY(16)
-	INTERNAL_PHY(20)
-	INTERNAL_PHY(24)
-	INTERNAL_PHY(25)
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
-};
-
 &switch0 {
 	ports {
 		#address-cells = <1>;
@@ -263,7 +252,6 @@
 			reg = <0>;
 			label = "lan1";
 			pcs-handle = <&serdes2>;
-			phy-handle = <&phy0>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			managed = "in-band-status";
@@ -274,7 +262,6 @@
 			reg = <8>;
 			label = "lan2";
 			pcs-handle = <&serdes3>;
-			phy-handle = <&phy8>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			managed = "in-band-status";
@@ -285,7 +272,6 @@
 			reg = <16>;
 			label = "lan3";
 			pcs-handle = <&serdes4>;
-			phy-handle = <&phy16>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp2>;
 			managed = "in-band-status";
@@ -296,7 +282,6 @@
 			reg = <20>;
 			label = "lan4";
 			pcs-handle = <&serdes5>;
-			phy-handle = <&phy20>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp3>;
 			managed = "in-band-status";
@@ -307,7 +292,6 @@
 			reg = <24>;
 			label = "lan5";
 			pcs-handle = <&serdes6>;
-			phy-handle = <&phy24>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp4>;
 			managed = "in-band-status";
@@ -318,7 +302,6 @@
 			reg = <25>;
 			label = "lan6";
 			pcs-handle = <&serdes7>;
-			phy-handle = <&phy25>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp5>;
 			managed = "in-band-status";
@@ -329,7 +312,6 @@
 			reg = <26>;
 			label = "lan7";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp6>;
 			managed = "in-band-status";
@@ -340,7 +322,6 @@
 			reg = <27>;
 			label = "lan8";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp7>;
 			managed = "in-band-status";
diff --git a/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts b/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts
index fb2c866dcb..ee7148a35d 100644
--- a/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts
+++ b/target/linux/realtek/dts/rtl9303_xikestor_sks8310-8x.dts
@@ -240,17 +240,6 @@
 	};
 };
 
-&mdio_bus0 {
-	INTERNAL_PHY(0)
-	INTERNAL_PHY(8)
-	INTERNAL_PHY(16)
-	INTERNAL_PHY(20)
-	INTERNAL_PHY(24)
-	INTERNAL_PHY(25)
-	INTERNAL_PHY(26)
-	INTERNAL_PHY(27)
-};
-
 &switch0 {
 	ports {
 		#address-cells = <1>;
@@ -260,7 +249,6 @@
 			reg = <0>;
 			label = "lan1";
 			pcs-handle = <&serdes2>;
-			phy-handle = <&phy0>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			managed = "in-band-status";
@@ -271,7 +259,6 @@
 			reg = <8>;
 			label = "lan2";
 			pcs-handle = <&serdes3>;
-			phy-handle = <&phy8>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			managed = "in-band-status";
@@ -282,7 +269,6 @@
 			reg = <16>;
 			label = "lan3";
 			pcs-handle = <&serdes4>;
-			phy-handle = <&phy16>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp2>;
 			managed = "in-band-status";
@@ -293,7 +279,6 @@
 			reg = <20>;
 			label = "lan4";
 			pcs-handle = <&serdes5>;
-			phy-handle = <&phy20>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp3>;
 			managed = "in-band-status";
@@ -304,7 +289,6 @@
 			reg = <24>;
 			label = "lan5";
 			pcs-handle = <&serdes6>;
-			phy-handle = <&phy24>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp4>;
 			managed = "in-band-status";
@@ -315,7 +299,6 @@
 			reg = <25>;
 			label = "lan6";
 			pcs-handle = <&serdes7>;
-			phy-handle = <&phy25>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp5>;
 			managed = "in-band-status";
@@ -326,7 +309,6 @@
 			reg = <26>;
 			label = "lan7";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy26>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp6>;
 			managed = "in-band-status";
@@ -337,7 +319,6 @@
 			reg = <27>;
 			label = "lan8";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy27>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp7>;
 			managed = "in-band-status";
diff --git a/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts b/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts
index 7120ad6c07..9458a2a93f 100644
--- a/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts
+++ b/target/linux/realtek/dts/rtl9311_linksys_lgs352c.dts
@@ -314,11 +314,6 @@
 		compatible = "ethernet-phy-ieee802.3-c22";
 		rtl9300,smi-address = <1 23>;
 	};
-
-	INTERNAL_PHY(48)
-	INTERNAL_PHY(49)
-	INTERNAL_PHY(50)
-	INTERNAL_PHY(51)
 };
 
 &switch0 {
@@ -384,7 +379,6 @@
 			reg = <48>;
 			label = "lan49";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy48>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp0>;
@@ -393,7 +387,6 @@
 			reg = <49>;
 			label = "lan50";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy49>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp1>;
@@ -402,7 +395,6 @@
 			reg = <50>;
 			label = "lan51";
 			pcs-handle = <&serdes10>;
-			phy-handle = <&phy50>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp2>;
@@ -411,7 +403,6 @@
 			reg = <51>;
 			label = "lan52";
 			pcs-handle = <&serdes11>;
-			phy-handle = <&phy51>;
 			phy-mode = "1000base-x";
 			managed = "in-band-status";
 			sfp = <&sfp3>;
diff --git a/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi b/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi
index 332dd4379d..209bc1b571 100644
--- a/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi
+++ b/target/linux/realtek/dts/rtl9312_plasmacloud_common.dtsi
@@ -383,12 +383,6 @@
 		compatible = "ethernet-phy-ieee802.3-c45";
 		rtl9300,smi-address = <1 23>;
 	};
-
-	/* fiber */
-	INTERNAL_PHY(48)
-	INTERNAL_PHY(50)
-	INTERNAL_PHY(52)
-	INTERNAL_PHY(53)
 };
 
 &switch0 {
@@ -426,7 +420,6 @@
 			reg = <48>;
 			label = "lan25";
 			pcs-handle = <&serdes8>;
-			phy-handle = <&phy48>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp0>;
 			led-set = <1>;
@@ -440,7 +433,6 @@
 			reg = <50>;
 			label = "lan26";
 			pcs-handle = <&serdes9>;
-			phy-handle = <&phy50>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp1>;
 			led-set = <1>;
@@ -454,7 +446,6 @@
 			reg = <52>;
 			label = "lan27";
 			pcs-handle = <&serdes10>;
-			phy-handle = <&phy52>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp2>;
 			led-set = <1>;
@@ -468,7 +459,6 @@
 			reg = <53>;
 			label = "lan28";
 			pcs-handle = <&serdes11>;
-			phy-handle = <&phy53>;
 			phy-mode = "1000base-x";
 			sfp = <&sfp3>;
 			led-set = <1>;




More information about the lede-commits mailing list