phy: cadence: Sierra: Fix PHY power_on sequence
authorKishon Vijay Abraham I <kishon@ti.com>
Fri, 28 Jan 2022 08:11:29 +0000 (13:41 +0530)
committerTom Rini <trini@konsulko.com>
Tue, 8 Feb 2022 16:00:03 +0000 (11:00 -0500)
Commit 39b823381d9d ("phy: cadence: Add driver for Sierra PHY")
de-asserts PHY_RESET even before the configurations are loaded in
phy_init(). However PHY_RESET should be de-asserted only after
all the configurations has been initialized, instead of de-asserting
in probe. Fix it here.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
drivers/phy/cadence/phy-cadence-sierra.c

index 6b26b30..bd42145 100644 (file)
@@ -296,6 +296,12 @@ static int cdns_sierra_phy_on(struct phy *gphy)
        u32 val;
        int ret;
 
+       ret = reset_control_deassert(sp->phy_rst);
+       if (ret) {
+               dev_err(dev, "Failed to take the PHY out of reset\n");
+               return ret;
+       }
+
        /* Take the PHY lane group out of reset */
        ret = reset_deassert_bulk(ins->lnk_rst);
        if (ret) {
@@ -544,7 +550,6 @@ static int cdns_sierra_phy_probe(struct udevice *dev)
        if (!sp->autoconf && sp->nsubnodes > 1)
                regmap_field_write(sp->phy_pll_cfg_1, 0x1);
 
-       reset_control_deassert(sp->phy_rst);
        dev_info(dev, "sierra probed\n");
        return 0;