From: Roger Quadros Date: Mon, 6 Jan 2020 13:06:20 +0000 (+0200) Subject: phy: cadence: Sierra: add phy_reset hook X-Git-Tag: kvm-5.6-2~70^2~16^2~6 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7904e15b4d31a5515a882c3a87dfc898c4749fed;p=users%2Fdwmw2%2Flinux.git phy: cadence: Sierra: add phy_reset hook 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 Signed-off-by: Sekhar Nori Reviewed-by: Jyri Sarha Signed-off-by: Kishon Vijay Abraham I --- diff --git a/drivers/phy/cadence/phy-cadence-sierra.c b/drivers/phy/cadence/phy-cadence-sierra.c index ecfb1f9de2e35..a5c08e5bd2bf7 100644 --- a/drivers/phy/cadence/phy-cadence-sierra.c +++ b/drivers/phy/cadence/phy-cadence-sierra.c @@ -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, };