phy: cadence: Sierra: add phy_reset hook
authorRoger Quadros <rogerq@ti.com>
Mon, 6 Jan 2020 13:06:20 +0000 (15:06 +0200)
committerKishon Vijay Abraham I <kishon@ti.com>
Tue, 14 Jan 2020 05:20:19 +0000 (10:50 +0530)
Some platforms e.g. J721e need lane swap register
to be programmed before reset is deasserted.
This patch ensures that we propagate the phy_reset
back to the reset controller driver.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Reviewed-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/cadence/phy-cadence-sierra.c

index ecfb1f9..a5c08e5 100644 (file)
@@ -341,10 +341,20 @@ static int cdns_sierra_phy_off(struct phy *gphy)
        return reset_control_assert(ins->lnk_rst);
 }
 
+static int cdns_sierra_phy_reset(struct phy *gphy)
+{
+       struct cdns_sierra_phy *sp = dev_get_drvdata(gphy->dev.parent);
+
+       reset_control_assert(sp->phy_rst);
+       reset_control_deassert(sp->phy_rst);
+       return 0;
+};
+
 static const struct phy_ops ops = {
        .init           = cdns_sierra_phy_init,
        .power_on       = cdns_sierra_phy_on,
        .power_off      = cdns_sierra_phy_off,
+       .reset          = cdns_sierra_phy_reset,
        .owner          = THIS_MODULE,
 };