phy: rockchip: naneng-combphy: Add support for multiple resets
authorEugen Hristev <eugen.hristev@collabora.com>
Thu, 27 Apr 2023 07:35:34 +0000 (10:35 +0300)
committerKever Yang <kever.yang@rock-chips.com>
Wed, 17 May 2023 09:36:18 +0000 (17:36 +0800)
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>
drivers/phy/rockchip/phy-rockchip-naneng-combphy.c

index 78da5fe..b673a8d 100644 (file)
@@ -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;