Skip to content

Commit fabcfd6

Browse files
hkallweitkuba-moo
authored andcommitted
net: phy: realtek: add defines for shadowed c45 standard registers
Realtek shadows standard c45 registers in VEND2 device register space. Add defines for these VEND2 registers, based on the names of the standard c45 registers. Signed-off-by: Heiner Kallweit <[email protected]> Reviewed-by: Andrew Lunn <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 4389891 commit fabcfd6

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

drivers/net/phy/realtek/realtek_main.c

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,16 @@
9494
#define RTL_VND2_PHYSR_MASTER BIT(11)
9595
#define RTL_VND2_PHYSR_SPEED_MASK (RTL_VND2_PHYSR_SPEEDL | RTL_VND2_PHYSR_SPEEDH)
9696

97+
#define RTL_MDIO_PCS_EEE_ABLE 0xa5c4
98+
#define RTL_MDIO_AN_EEE_ADV 0xa5d0
99+
#define RTL_MDIO_AN_EEE_LPABLE 0xa5d2
100+
#define RTL_MDIO_AN_10GBT_CTRL 0xa5d4
101+
#define RTL_MDIO_AN_10GBT_STAT 0xa5d6
102+
#define RTL_MDIO_PMA_SPEED 0xa616
103+
#define RTL_MDIO_AN_EEE_LPABLE2 0xa6d0
104+
#define RTL_MDIO_AN_EEE_ADV2 0xa6d4
105+
#define RTL_MDIO_PCS_EEE_ABLE2 0xa6ec
106+
97107
#define RTL_GENERIC_PHYID 0x001cc800
98108
#define RTL_8211FVD_PHYID 0x001cc878
99109
#define RTL_8221B 0x001cc840
@@ -751,11 +761,11 @@ static int rtlgen_read_mmd(struct phy_device *phydev, int devnum, u16 regnum)
751761
if (devnum == MDIO_MMD_VEND2)
752762
ret = rtlgen_read_vend2(phydev, regnum);
753763
else if (devnum == MDIO_MMD_PCS && regnum == MDIO_PCS_EEE_ABLE)
754-
ret = rtlgen_read_vend2(phydev, 0xa5c4);
764+
ret = rtlgen_read_vend2(phydev, RTL_MDIO_PCS_EEE_ABLE);
755765
else if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_ADV)
756-
ret = rtlgen_read_vend2(phydev, 0xa5d0);
766+
ret = rtlgen_read_vend2(phydev, RTL_MDIO_AN_EEE_ADV);
757767
else if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_LPABLE)
758-
ret = rtlgen_read_vend2(phydev, 0xa5d2);
768+
ret = rtlgen_read_vend2(phydev, RTL_MDIO_AN_EEE_LPABLE);
759769
else
760770
ret = -EOPNOTSUPP;
761771

@@ -770,7 +780,7 @@ static int rtlgen_write_mmd(struct phy_device *phydev, int devnum, u16 regnum,
770780
if (devnum == MDIO_MMD_VEND2)
771781
ret = rtlgen_write_vend2(phydev, regnum, val);
772782
else if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_ADV)
773-
ret = rtlgen_write_vend2(phydev, regnum, 0xa5d0);
783+
ret = rtlgen_write_vend2(phydev, regnum, RTL_MDIO_AN_EEE_ADV);
774784
else
775785
ret = -EOPNOTSUPP;
776786

@@ -785,11 +795,11 @@ static int rtl822x_read_mmd(struct phy_device *phydev, int devnum, u16 regnum)
785795
return ret;
786796

787797
if (devnum == MDIO_MMD_PCS && regnum == MDIO_PCS_EEE_ABLE2)
788-
ret = rtlgen_read_vend2(phydev, 0xa6ec);
798+
ret = rtlgen_read_vend2(phydev, RTL_MDIO_PCS_EEE_ABLE2);
789799
else if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_ADV2)
790-
ret = rtlgen_read_vend2(phydev, 0xa6d4);
800+
ret = rtlgen_read_vend2(phydev, RTL_MDIO_AN_EEE_ADV2);
791801
else if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_LPABLE2)
792-
ret = rtlgen_read_vend2(phydev, 0xa6d0);
802+
ret = rtlgen_read_vend2(phydev, RTL_MDIO_AN_EEE_LPABLE2);
793803

794804
return ret;
795805
}
@@ -803,7 +813,7 @@ static int rtl822x_write_mmd(struct phy_device *phydev, int devnum, u16 regnum,
803813
return ret;
804814

805815
if (devnum == MDIO_MMD_AN && regnum == MDIO_AN_EEE_ADV2)
806-
ret = rtlgen_write_vend2(phydev, 0xa6d4, val);
816+
ret = rtlgen_write_vend2(phydev, RTL_MDIO_AN_EEE_ADV2, val);
807817

808818
return ret;
809819
}
@@ -899,7 +909,7 @@ static int rtl822x_get_features(struct phy_device *phydev)
899909
{
900910
int val;
901911

902-
val = phy_read_mmd(phydev, MDIO_MMD_VEND2, 0xa616);
912+
val = phy_read_mmd(phydev, MDIO_MMD_VEND2, RTL_MDIO_PMA_SPEED);
903913
if (val < 0)
904914
return val;
905915

@@ -920,7 +930,8 @@ static int rtl822x_config_aneg(struct phy_device *phydev)
920930
if (phydev->autoneg == AUTONEG_ENABLE) {
921931
u16 adv = linkmode_adv_to_mii_10gbt_adv_t(phydev->advertising);
922932

923-
ret = phy_modify_mmd_changed(phydev, MDIO_MMD_VEND2, 0xa5d4,
933+
ret = phy_modify_mmd_changed(phydev, MDIO_MMD_VEND2,
934+
RTL_MDIO_AN_10GBT_CTRL,
924935
MDIO_AN_10GBT_CTRL_ADV2_5G |
925936
MDIO_AN_10GBT_CTRL_ADV5G, adv);
926937
if (ret < 0)
@@ -966,7 +977,7 @@ static int rtl822x_read_status(struct phy_device *phydev)
966977
!phydev->autoneg_complete)
967978
return 0;
968979

969-
lpadv = phy_read_mmd(phydev, MDIO_MMD_VEND2, 0xa5d6);
980+
lpadv = phy_read_mmd(phydev, MDIO_MMD_VEND2, RTL_MDIO_AN_10GBT_STAT);
970981
if (lpadv < 0)
971982
return lpadv;
972983

0 commit comments

Comments
 (0)