dev_err(dev, "Couldn't create the PHY clock\n");
                        goto err_put_clk_pll0;
                }
+
+               clk_prepare_enable(phy->clk_phy);
        }
 
        phy->rst_phy = of_reset_control_get_shared(node, "phy");
        if (IS_ERR(phy->rst_phy)) {
                dev_err(dev, "Could not get phy reset control\n");
                ret = PTR_ERR(phy->rst_phy);
-               goto err_put_clk_pll0;
+               goto err_disable_clk_phy;
        }
 
        ret = reset_control_deassert(phy->rst_phy);
        reset_control_assert(phy->rst_phy);
 err_put_rst_phy:
        reset_control_put(phy->rst_phy);
+err_disable_clk_phy:
+       clk_disable_unprepare(phy->clk_phy);
 err_put_clk_pll0:
        if (phy->variant->has_phy_clk)
                clk_put(phy->clk_pll0);
 
        clk_disable_unprepare(phy->clk_mod);
        clk_disable_unprepare(phy->clk_bus);
+       clk_disable_unprepare(phy->clk_phy);
 
        reset_control_assert(phy->rst_phy);