Skip to content

Commit c8c187f

Browse files
kugel-hauke
authored andcommitted
realtek: add support for RTL8218E
ZyXEL XGS1250-12 Rev.B1 has RTL8218E compared to RTL8218D in Rev.A1 but both of them seem very similar and pin compatible. Therefore they can share the same phy_driver callbacks. PHY identifier is set based on the datasheet from https://github.com/plappermaul/realtek-doc/blob/main/RTL8218E-CG_Datasheet.pdf Before: [ 2.120161] rtl83xx-switch switch@1b000000 lan1 (uninitialized): PHY [mdio-bus:00] driver [Generic PHY] (irq=POLL) [ 2.134581] rtl83xx-switch switch@1b000000 lan2 (uninitialized): PHY [mdio-bus:01] driver [Generic PHY] (irq=POLL) [ 2.149043] rtl83xx-switch switch@1b000000 lan3 (uninitialized): PHY [mdio-bus:02] driver [Generic PHY] (irq=POLL) [ 2.163498] rtl83xx-switch switch@1b000000 lan4 (uninitialized): PHY [mdio-bus:03] driver [Generic PHY] (irq=POLL) [ 2.177963] rtl83xx-switch switch@1b000000 lan5 (uninitialized): PHY [mdio-bus:04] driver [Generic PHY] (irq=POLL) [ 2.192435] rtl83xx-switch switch@1b000000 lan6 (uninitialized): PHY [mdio-bus:05] driver [Generic PHY] (irq=POLL) [ 2.207009] rtl83xx-switch switch@1b000000 lan7 (uninitialized): PHY [mdio-bus:06] driver [Generic PHY] (irq=POLL) [ 2.221474] rtl83xx-switch switch@1b000000 lan8 (uninitialized): PHY [mdio-bus:07] driver [Generic PHY] (irq=POLL) After: [ 2.119165] rtl83xx-switch switch@1b000000 lan1 (uninitialized): PHY [mdio-bus:00] driver [REALTEK RTL8218E] (irq=POLL) [ 2.132880] rtl83xx-switch switch@1b000000 lan2 (uninitialized): PHY [mdio-bus:01] driver [REALTEK RTL8218E] (irq=POLL) [ 2.146727] rtl83xx-switch switch@1b000000 lan3 (uninitialized): PHY [mdio-bus:02] driver [REALTEK RTL8218E] (irq=POLL) [ 2.160580] rtl83xx-switch switch@1b000000 lan4 (uninitialized): PHY [mdio-bus:03] driver [REALTEK RTL8218E] (irq=POLL) [ 2.174367] rtl83xx-switch switch@1b000000 lan5 (uninitialized): PHY [mdio-bus:04] driver [REALTEK RTL8218E] (irq=POLL) [ 2.188270] rtl83xx-switch switch@1b000000 lan6 (uninitialized): PHY [mdio-bus:05] driver [REALTEK RTL8218E] (irq=POLL) [ 2.202140] rtl83xx-switch switch@1b000000 lan7 (uninitialized): PHY [mdio-bus:06] driver [REALTEK RTL8218E] (irq=POLL) [ 2.216047] rtl83xx-switch switch@1b000000 lan8 (uninitialized): PHY [mdio-bus:07] driver [REALTEK RTL8218E] (irq=POLL) Based-on-patch-by: Antanas Bruzas <[email protected]> Signed-off-by: Thomas Martitz <[email protected]> Link: openwrt/openwrt#20068 Signed-off-by: Hauke Mehrtens <[email protected]>
1 parent 49b9b93 commit c8c187f

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.c

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3263,7 +3263,7 @@ static int rtl8218b_int_phy_probe(struct phy_device *phydev)
32633263
return 0;
32643264
}
32653265

3266-
static int rtl8218d_phy_probe(struct phy_device *phydev)
3266+
static int rtl8218x_phy_probe(struct phy_device *phydev)
32673267
{
32683268
int base_addr = phydev->mdio.addr & ~7;
32693269

@@ -3445,7 +3445,20 @@ static struct phy_driver rtl83xx_phy_driver[] = {
34453445
.name = "REALTEK RTL8218D",
34463446
.config_init = rtl821x_config_init,
34473447
.features = PHY_GBIT_FEATURES,
3448-
.probe = rtl8218d_phy_probe,
3448+
.probe = rtl8218x_phy_probe,
3449+
.read_mmd = rtl821x_read_mmd,
3450+
.read_page = rtl821x_read_page,
3451+
.resume = genphy_resume,
3452+
.suspend = genphy_suspend,
3453+
.write_mmd = rtl821x_write_mmd,
3454+
.write_page = rtl821x_write_page,
3455+
},
3456+
{
3457+
PHY_ID_MATCH_EXACT(PHY_ID_RTL8218E),
3458+
.name = "REALTEK RTL8218E",
3459+
.config_init = rtl821x_config_init,
3460+
.features = PHY_GBIT_FEATURES,
3461+
.probe = rtl8218x_phy_probe,
34493462
.read_mmd = rtl821x_read_mmd,
34503463
.read_page = rtl821x_read_page,
34513464
.resume = genphy_resume,

target/linux/realtek/files-6.12/drivers/net/phy/rtl83xx-phy.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ struct __attribute__ ((__packed__)) fw_header {
2323
#define PHY_ID_RTL8218B_E 0x001cc980
2424
#define PHY_ID_RTL8214_OR_8218 0x001cc981
2525
#define PHY_ID_RTL8218D 0x001cc983
26+
#define PHY_ID_RTL8218E 0x001cc984
2627
#define PHY_ID_RTL8218B_I 0x001cca40
2728
#define PHY_ID_RTL8390_GENERIC 0x001ccab0
2829
#define PHY_ID_RTL8393_I 0x001c8393

0 commit comments

Comments
 (0)