struct device_node *np;
void __iomem *base;
int irq;
+ int ret;
int i;
clks[IMX6SL_CLK_DUMMY] = imx_clk_fixed("dummy", 0);
clk_register_clkdev(clks[IMX6SL_CLK_GPT], "ipg", "imx-gpt.0");
clk_register_clkdev(clks[IMX6SL_CLK_GPT_SERIAL], "per", "imx-gpt.0");
+ /*
+ * To prevent the bus clock from being disabled accidently when
+ * clk_disable() gets called on child clock, let's increment the use
+ * count of IPG clock by initially calling clk_prepare_enable() on it.
+ */
+ ret = clk_prepare_enable(clks[IMX6SL_CLK_IPG]);
+ if (ret)
+ pr_warn("%s: failed to enable IPG clock %d\n", __func__, ret);
+
if (IS_ENABLED(CONFIG_USB_MXS_PHY)) {
clk_prepare_enable(clks[IMX6SL_CLK_USBPHY1_GATE]);
clk_prepare_enable(clks[IMX6SL_CLK_USBPHY2_GATE]);