From bf09e558d11a6dbdf095fd6b54d5660960ef9269 Mon Sep 17 00:00:00 2001 From: Siva Durga Prasad Paladugu Date: Sat, 16 Mar 2019 17:51:24 +0530 Subject: [PATCH] net: phy: xilinx_gmii2rgmii: Define readext and writeext routines This patch defines writeext and readext routines and hooks them for xilinx gmii2rgmii phy driver. These routines will invokes corresponding external phy routines if defined. Signed-off-by: Siva Durga Prasad Paladugu Signed-off-by: Michal Simek --- drivers/net/phy/xilinx_gmii2rgmii.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/drivers/net/phy/xilinx_gmii2rgmii.c b/drivers/net/phy/xilinx_gmii2rgmii.c index 19d8d4d8207..681ebe3a7fd 100644 --- a/drivers/net/phy/xilinx_gmii2rgmii.c +++ b/drivers/net/phy/xilinx_gmii2rgmii.c @@ -26,6 +26,32 @@ static int xilinxgmiitorgmii_config(struct phy_device *phydev) return 0; } +static int xilinxgmiitorgmii_extread(struct phy_device *phydev, int addr, + int devaddr, int regnum) +{ + struct phy_device *ext_phydev = phydev->priv; + + debug("%s\n", __func__); + if (ext_phydev->drv->readext) + ext_phydev->drv->readext(ext_phydev, addr, devaddr, regnum); + + return 0; +} + +static int xilinxgmiitorgmii_extwrite(struct phy_device *phydev, int addr, + int devaddr, int regnum, u16 val) + +{ + struct phy_device *ext_phydev = phydev->priv; + + debug("%s\n", __func__); + if (ext_phydev->drv->writeext) + ext_phydev->drv->writeext(ext_phydev, addr, devaddr, regnum, + val); + + return 0; +} + static int xilinxgmiitorgmii_startup(struct phy_device *phydev) { u16 val = 0; @@ -103,6 +129,8 @@ static struct phy_driver gmii2rgmii_driver = { .probe = xilinxgmiitorgmii_probe, .config = xilinxgmiitorgmii_config, .startup = xilinxgmiitorgmii_startup, + .writeext = xilinxgmiitorgmii_extwrite, + .readext = xilinxgmiitorgmii_extread, }; int phy_xilinx_gmii2rgmii_init(void) -- 2.47.3