summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugen Hristev <eugen.hristev@collabora.com>2023-04-27 10:35:34 +0300
committerKever Yang <kever.yang@rock-chips.com>2023-05-17 12:36:18 +0300
commitd49dc884cb8e02b8640a5059a5e54facd80fe679 (patch)
treeed7e4a651f34f2e792fcebb0a38118861aa06b94
parent014a31907ad9185510cea645a6b9b49ad177f6ac (diff)
downloadu-boot-d49dc884cb8e02b8640a5059a5e54facd80fe679.tar.xz
phy: rockchip: naneng-combphy: Add support for multiple resets
Some variants of the PHY have more than just one reset. To cover all cases, request the rests in bulk rather than just the reset at index 0. Co-developed-by: Ren Jianing <jianing.ren@rock-chips.com> Signed-off-by: Ren Jianing <jianing.ren@rock-chips.com> Signed-off-by: Eugen Hristev <eugen.hristev@collabora.com> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
-rw-r--r--drivers/phy/rockchip/phy-rockchip-naneng-combphy.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
index 78da5fe797..b673a8da9f 100644
--- a/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
+++ b/drivers/phy/rockchip/phy-rockchip-naneng-combphy.c
@@ -76,7 +76,7 @@ struct rockchip_combphy_priv {
struct regmap *pipe_grf;
struct regmap *phy_grf;
struct phy *phy;
- struct reset_ctl phy_rst;
+ struct reset_ctl_bulk phy_rsts;
struct clk ref_clk;
const struct rockchip_combphy_cfg *cfg;
};
@@ -189,7 +189,7 @@ static int rockchip_combphy_init(struct phy *phy)
if (ret)
goto err_clk;
- reset_deassert(&priv->phy_rst);
+ reset_deassert_bulk(&priv->phy_rsts);
return 0;
@@ -204,7 +204,7 @@ static int rockchip_combphy_exit(struct phy *phy)
struct rockchip_combphy_priv *priv = dev_get_priv(phy->dev);
clk_disable(&priv->ref_clk);
- reset_assert(&priv->phy_rst);
+ reset_assert_bulk(&priv->phy_rsts);
return 0;
}
@@ -255,7 +255,7 @@ static int rockchip_combphy_parse_dt(struct udevice *dev,
return PTR_ERR(&priv->ref_clk);
}
- ret = reset_get_by_index(dev, 0, &priv->phy_rst);
+ ret = reset_get_bulk(dev, &priv->phy_rsts);
if (ret) {
dev_err(dev, "no phy reset control specified\n");
return ret;