[openwrt/openwrt] realtek: drop usage of proprietary HSGMII mode
LEDE Commits
lede-commits at lists.infradead.org
Fri Sep 12 12:00:56 PDT 2025
hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/61b72cb736b8df5bb0008d8af3cd0dba19d1ebf0
commit 61b72cb736b8df5bb0008d8af3cd0dba19d1ebf0
Author: Markus Stockhausen <markus.stockhausen at gmx.de>
AuthorDate: Wed Sep 10 01:37:08 2025 -0400
realtek: drop usage of proprietary HSGMII mode
The only consumers of the Realtek HSGMII (2.5G SGMII) mode were
the RTL8226/RTL8221B PHYs. These have been converted to dynamic
SGMII/2500base-x mode switching. Drop the leftovers of the mode
implementation.
Signed-off-by: Markus Stockhausen <markus.stockhausen at gmx.de>
Link: https://github.com/openwrt/openwrt/pull/20002
Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
.../files-6.12/drivers/net/dsa/rtl83xx/common.c | 2 --
.../files-6.12/drivers/net/dsa/rtl83xx/dsa.c | 6 ------
.../drivers/net/mdio/mdio-realtek-otto.c | 3 ---
.../files-6.12/drivers/net/phy/rtl83xx-phy.c | 22 +---------------------
4 files changed, 1 insertion(+), 32 deletions(-)
diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c
index 8829180585..144ed01c88 100644
--- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c
+++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/common.c
@@ -348,8 +348,6 @@ static int __init rtl83xx_mdio_probe(struct rtl838x_switch_priv *priv)
if (of_get_phy_mode(dn, &interface))
interface = PHY_INTERFACE_MODE_NA;
- if (interface == PHY_INTERFACE_MODE_HSGMII)
- priv->ports[pn].is2G5 = true;
if (interface == PHY_INTERFACE_MODE_USXGMII)
priv->ports[pn].is2G5 = priv->ports[pn].is10G = true;
if (interface == PHY_INTERFACE_MODE_10GBASER)
diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c
index a30c681c9a..57be6ffa54 100644
--- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c
+++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c
@@ -823,12 +823,6 @@ static void rtl931x_phylink_mac_config(struct dsa_switch *ds, int port,
pr_info("%s: speed %d sds_num %d\n", __func__, state->speed, sds_num);
switch (state->interface) {
- case PHY_INTERFACE_MODE_HSGMII:
- pr_info("%s setting mode PHY_INTERFACE_MODE_HSGMII\n", __func__);
- band = rtl931x_sds_cmu_band_get(sds_num, PHY_INTERFACE_MODE_HSGMII);
- rtl931x_sds_init(sds_num, PHY_INTERFACE_MODE_HSGMII);
- band = rtl931x_sds_cmu_band_set(sds_num, true, 62, PHY_INTERFACE_MODE_HSGMII);
- break;
case PHY_INTERFACE_MODE_1000BASEX:
band = rtl931x_sds_cmu_band_get(sds_num, PHY_INTERFACE_MODE_1000BASEX);
rtl931x_sds_init(sds_num, PHY_INTERFACE_MODE_1000BASEX);
diff --git a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
index 6f3533cbbb..a1f5d2bf2c 100644
--- a/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
+++ b/target/linux/realtek/files-6.12/drivers/net/mdio/mdio-realtek-otto.c
@@ -1265,9 +1265,6 @@ static int rtmdio_930x_reset(struct mii_bus *bus)
switch (priv->interfaces[i]) {
case PHY_INTERFACE_MODE_10GBASER:
break; /* Serdes: Value = 0 */
- case PHY_INTERFACE_MODE_HSGMII:
- private_poll_mask |= BIT(i);
- fallthrough;
case PHY_INTERFACE_MODE_USXGMII:
v |= BIT(mac_type_bit[i]);
uses_usxgmii = true;
diff --git a/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c b/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c
index 8e1abef20e..ec1e24d749 100644
--- a/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c
+++ b/target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c
@@ -75,7 +75,6 @@ extern int rtmdio_931x_write_sds_phy_new(int sds, int page, int regnum, u16 val)
#define RTL930X_SDS_MODE_1000BASEX 0x04
#define RTL930X_SDS_MODE_USXGMII 0x0d
#define RTL930X_SDS_MODE_XGMII 0x10
-#define RTL930X_SDS_MODE_HSGMII 0x12
#define RTL930X_SDS_MODE_2500BASEX 0x16
#define RTL930X_SDS_MODE_10GBASER 0x1a
#define RTL930X_SDS_OFF 0x1f
@@ -1268,8 +1267,7 @@ static int rtsds_930x_config_pll(int sds, phy_interface_t interface)
if ((interface == PHY_INTERFACE_MODE_1000BASEX) ||
(interface == PHY_INTERFACE_MODE_SGMII))
speed = RTSDS_930X_PLL_1000;
- else if ((interface == PHY_INTERFACE_MODE_2500BASEX) ||
- (interface == PHY_INTERFACE_MODE_HSGMII))
+ else if (interface == PHY_INTERFACE_MODE_2500BASEX)
speed = RTSDS_930X_PLL_2500;
else if (interface == PHY_INTERFACE_MODE_10GBASER)
speed = RTSDS_930X_PLL_10000;
@@ -1350,9 +1348,6 @@ static void rtsds_930x_force_mode(int sds, phy_interface_t interface)
case PHY_INTERFACE_MODE_SGMII:
mode = RTL930X_SDS_MODE_SGMII;
break;
- case PHY_INTERFACE_MODE_HSGMII:
- mode = RTL930X_SDS_MODE_HSGMII;
- break;
case PHY_INTERFACE_MODE_1000BASEX:
mode = RTL930X_SDS_MODE_1000BASEX;
break;
@@ -1409,7 +1404,6 @@ static void rtl9300_sds_tx_config(int sds, phy_interface_t phy_if)
post_amp = 0x1;
page = 0x25;
break;
- case PHY_INTERFACE_MODE_HSGMII:
case PHY_INTERFACE_MODE_2500BASEX:
pre_amp = 0;
post_amp = 0x8;
@@ -2772,7 +2766,6 @@ static int rtl931x_sds_cmu_page_get(phy_interface_t mode)
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_1000BASEX: /* MII_1000BX_FIBER / 100BX_FIBER / 1000BX100BX_AUTO */
return 0x24;
- case PHY_INTERFACE_MODE_HSGMII:
case PHY_INTERFACE_MODE_2500BASEX: /* MII_2500Base_X: */
return 0x28;
/* case MII_HISGMII_5G: */
@@ -2818,11 +2811,6 @@ static void rtl931x_cmu_type_set(u32 sds, phy_interface_t mode, int chiptype)
frc_cmu_spd = 0;
break;
- case PHY_INTERFACE_MODE_HSGMII:
- cmu_type = 1;
- frc_cmu_spd = 1;
- break;
-
case PHY_INTERFACE_MODE_1000BASEX:
cmu_type = 1;
frc_cmu_spd = 0;
@@ -2927,9 +2915,6 @@ static void rtl931x_sds_mii_mode_set(u32 sds, phy_interface_t mode)
case PHY_INTERFACE_MODE_2500BASEX:
val = 0xD;
break;
- case PHY_INTERFACE_MODE_HSGMII:
- val = 0x12;
- break;
case PHY_INTERFACE_MODE_SGMII:
val = 0x2;
break;
@@ -3096,10 +3081,6 @@ void rtl931x_sds_init(u32 sds, phy_interface_t mode)
rtl9310_sds_field_w_new(sds, 0x1f, 0x7, 10, 4, 0x7f);
break;
- case PHY_INTERFACE_MODE_HSGMII:
- rtl9310_sds_field_w_new(sds, 0x101, 0x14, 8, 8, 1);
- break;
-
case PHY_INTERFACE_MODE_1000BASEX: /* MII_1000BX_FIBER */
rtl9310_sds_field_w_new(sds, 0x103, 0x13, 15, 14, 0);
@@ -3149,7 +3130,6 @@ void rtl931x_sds_init(u32 sds, phy_interface_t mode)
if (mode == PHY_INTERFACE_MODE_XGMII ||
mode == PHY_INTERFACE_MODE_QSGMII ||
- mode == PHY_INTERFACE_MODE_HSGMII ||
mode == PHY_INTERFACE_MODE_SGMII ||
mode == PHY_INTERFACE_MODE_USXGMII) {
if (mode == PHY_INTERFACE_MODE_XGMII)
More information about the lede-commits
mailing list