]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: phy: xilinx_gmii2rgmii: Define readext and writeext routines
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Sat, 16 Mar 2019 12:21:24 +0000 (17:51 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Sat, 16 Mar 2019 13:02:37 +0000 (14:02 +0100)
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 <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/net/phy/xilinx_gmii2rgmii.c

index 19d8d4d8207e1930b78ce5cc031494a053bec180..681ebe3a7fd2c47bfd4fdc9fdc459159598494bf 100644 (file)
@@ -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)