]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
phy: move clk enable/disable in init/exit
authorAlexey Romanov <avromanov@salutedevices.com>
Thu, 5 Oct 2023 08:54:25 +0000 (11:54 +0300)
committerNeil Armstrong <neil.armstrong@linaro.org>
Thu, 12 Oct 2023 11:39:41 +0000 (13:39 +0200)
It is better to place clk_enable() in phy_meson_g12a_usb2_init()
and clk_disable() in phy_meson_g12a_usb2_exit().

For more detailed information, please see comments in the review of
a similar driver in the Linux Kernel:

https://lore.kernel.org/all/CAFBinCCEhobbyKHuKDWzTYCQWgNT1-e8=7hMhq1mvT6CuEOjGw@mail.gmail.com/

Signed-off-by: Alexey Romanov <avromanov@salutedevices.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20231005085434.74755-5-avromanov@salutedevices.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
drivers/phy/meson-g12a-usb2.c

index a803b6796cc2952f5f38885190555941b47f28ba..2ea0498f866a6728a2467f9e8ce7cd3743a90e02 100644 (file)
@@ -161,6 +161,14 @@ static int phy_meson_g12a_usb2_init(struct phy *phy)
        struct phy_meson_g12a_usb2_priv *priv = dev_get_priv(dev);
        int ret;
 
+#if CONFIG_IS_ENABLED(CLK)
+       ret = clk_enable(&priv->clk);
+       if (ret && ret != -ENOSYS && ret != -ENOTSUPP) {
+               pr_err("failed to enable PHY clock\n");
+               return ret;
+       }
+#endif
+
        ret = reset_assert(&priv->reset);
        udelay(1);
        ret |= reset_deassert(&priv->reset);
@@ -253,6 +261,10 @@ static int phy_meson_g12a_usb2_exit(struct phy *phy)
        struct phy_meson_g12a_usb2_priv *priv = dev_get_priv(dev);
        int ret;
 
+#if CONFIG_IS_ENABLED(CLK)
+       clk_disable(&priv->clk);
+#endif
+
        ret = reset_assert(&priv->reset);
        if (ret)
                return ret;
@@ -290,13 +302,6 @@ int meson_g12a_usb2_phy_probe(struct udevice *dev)
        ret = clk_get_by_index(dev, 0, &priv->clk);
        if (ret < 0)
                return ret;
-
-       ret = clk_enable(&priv->clk);
-       if (ret && ret != -ENOSYS && ret != -ENOTSUPP) {
-               pr_err("failed to enable PHY clock\n");
-               clk_free(&priv->clk);
-               return ret;
-       }
 #endif
 
        return 0;