net: phy: nxp-c45-tja11xx: use phylib master/slave implementation
authorRadu Pirea (NXP OSS) <radu-nicolae.pirea@oss.nxp.com>
Mon, 31 Jul 2023 09:16:09 +0000 (12:16 +0300)
committerJakub Kicinski <kuba@kernel.org>
Wed, 2 Aug 2023 04:06:25 +0000 (21:06 -0700)
Remove the custom implementation of master/save setup and read status
and use genphy_c45_config_aneg and genphy_c45_read_status since phylib
has support for master/slave setup and master/slave status.

Signed-off-by: Radu Pirea (NXP OSS) <radu-nicolae.pirea@oss.nxp.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20230731091619.77961-2-radu-nicolae.pirea@oss.nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/nxp-c45-tja11xx.c

index 029875a59ff89083e82e9f2b735b9585a25cea26..41b8af0547e429f95c8303a3c25d5900bb8a8a64 100644 (file)
 
 #define PHY_ID_TJA_1103                        0x001BB010
 
-#define PMAPMD_B100T1_PMAPMD_CTL       0x0834
-#define B100T1_PMAPMD_CONFIG_EN                BIT(15)
-#define B100T1_PMAPMD_MASTER           BIT(14)
-#define MASTER_MODE                    (B100T1_PMAPMD_CONFIG_EN | \
-                                        B100T1_PMAPMD_MASTER)
-#define SLAVE_MODE                     (B100T1_PMAPMD_CONFIG_EN)
-
 #define VEND1_DEVICE_CONTROL           0x0040
 #define DEVICE_CONTROL_RESET           BIT(15)
 #define DEVICE_CONTROL_CONFIG_GLOBAL_EN        BIT(14)
@@ -988,72 +981,6 @@ static int nxp_c45_cable_test_get_status(struct phy_device *phydev,
        return nxp_c45_start_op(phydev);
 }
 
-static int nxp_c45_setup_master_slave(struct phy_device *phydev)
-{
-       switch (phydev->master_slave_set) {
-       case MASTER_SLAVE_CFG_MASTER_FORCE:
-       case MASTER_SLAVE_CFG_MASTER_PREFERRED:
-               phy_write_mmd(phydev, MDIO_MMD_PMAPMD, PMAPMD_B100T1_PMAPMD_CTL,
-                             MASTER_MODE);
-               break;
-       case MASTER_SLAVE_CFG_SLAVE_PREFERRED:
-       case MASTER_SLAVE_CFG_SLAVE_FORCE:
-               phy_write_mmd(phydev, MDIO_MMD_PMAPMD, PMAPMD_B100T1_PMAPMD_CTL,
-                             SLAVE_MODE);
-               break;
-       case MASTER_SLAVE_CFG_UNKNOWN:
-       case MASTER_SLAVE_CFG_UNSUPPORTED:
-               return 0;
-       default:
-               phydev_warn(phydev, "Unsupported Master/Slave mode\n");
-               return -EOPNOTSUPP;
-       }
-
-       return 0;
-}
-
-static int nxp_c45_read_master_slave(struct phy_device *phydev)
-{
-       int reg;
-
-       phydev->master_slave_get = MASTER_SLAVE_CFG_UNKNOWN;
-       phydev->master_slave_state = MASTER_SLAVE_STATE_UNKNOWN;
-
-       reg = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, PMAPMD_B100T1_PMAPMD_CTL);
-       if (reg < 0)
-               return reg;
-
-       if (reg & B100T1_PMAPMD_MASTER) {
-               phydev->master_slave_get = MASTER_SLAVE_CFG_MASTER_FORCE;
-               phydev->master_slave_state = MASTER_SLAVE_STATE_MASTER;
-       } else {
-               phydev->master_slave_get = MASTER_SLAVE_CFG_SLAVE_FORCE;
-               phydev->master_slave_state = MASTER_SLAVE_STATE_SLAVE;
-       }
-
-       return 0;
-}
-
-static int nxp_c45_config_aneg(struct phy_device *phydev)
-{
-       return nxp_c45_setup_master_slave(phydev);
-}
-
-static int nxp_c45_read_status(struct phy_device *phydev)
-{
-       int ret;
-
-       ret = genphy_c45_read_status(phydev);
-       if (ret)
-               return ret;
-
-       ret = nxp_c45_read_master_slave(phydev);
-       if (ret)
-               return ret;
-
-       return 0;
-}
-
 static int nxp_c45_get_sqi(struct phy_device *phydev)
 {
        int reg;
@@ -1355,11 +1282,11 @@ static struct phy_driver nxp_c45_driver[] = {
                .features               = PHY_BASIC_T1_FEATURES,
                .probe                  = nxp_c45_probe,
                .soft_reset             = nxp_c45_soft_reset,
-               .config_aneg            = nxp_c45_config_aneg,
+               .config_aneg            = genphy_c45_config_aneg,
                .config_init            = nxp_c45_config_init,
                .config_intr            = nxp_c45_config_intr,
                .handle_interrupt       = nxp_c45_handle_interrupt,
-               .read_status            = nxp_c45_read_status,
+               .read_status            = genphy_c45_read_status,
                .suspend                = genphy_c45_pma_suspend,
                .resume                 = genphy_c45_pma_resume,
                .get_sset_count         = nxp_c45_get_sset_count,