From b3f78165e536d35b2337063093bb33a018ff518d Mon Sep 17 00:00:00 2001 From: Shawn Lin Date: Wed, 23 Dec 2020 16:17:31 +0800 Subject: [PATCH] phy: rockchip: naneng-combphy: Reset phy if not being used Change-Id: Ia62481ebf5aa5684c359fd00a3933bb02e2caaff Signed-off-by: Shawn Lin --- drivers/phy/rockchip/phy-rockchip-naneng-combphy.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c index 1fdcd95194ff..5f79c2e3eb28 100644 --- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c +++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c @@ -185,9 +185,18 @@ static int rockchip_combphy_init(struct phy *phy) ret = rockchip_combphy_set_mode(priv); if (ret) - return ret; + goto err_clk; + + ret = reset_control_deassert(priv->phy_rst); + if (ret) + goto err_clk; return 0; + +err_clk: + clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + + return ret; } static int rockchip_combphy_exit(struct phy *phy) @@ -195,6 +204,7 @@ static int rockchip_combphy_exit(struct phy *phy) struct rockchip_combphy_priv *priv = phy_get_drvdata(phy); clk_bulk_disable_unprepare(priv->num_clks, priv->clks); + reset_control_assert(priv->phy_rst); return 0; } @@ -277,7 +287,7 @@ static int rockchip_combphy_parse_dt(struct device *dev, return ret; } - return 0; + return reset_control_assert(priv->phy_rst); } static int rockchip_combphy_probe(struct platform_device *pdev)