MLK-17821-2 imx8: clock: Add cdns3 clock enable and disable
authorYe Li <ye.li@nxp.com>
Thu, 15 Mar 2018 07:00:49 +0000 (00:00 -0700)
committerYe Li <ye.li@nxp.com>
Mon, 19 Mar 2018 08:52:28 +0000 (01:52 -0700)
Implemented the clock enable and disable interfaces for CDNS3 USB
driver.

Signed-off-by: Ye Li <ye.li@nxp.com>
Acked-by: Peter Chen <peter.chen@nxp.com>
arch/arm/cpu/armv8/imx8/clock.c

index 3f2027a..9ea24f7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017 NXP
+ * Copyright 2017-2018 NXP
  *
  * SPDX-License-Identifier:    GPL-2.0+
  */
@@ -241,6 +241,36 @@ void init_clk_usb3(int index)
        return;
 }
 
+int cdns3_enable_clks(int index)
+{
+       init_clk_usb3(index);
+       return 0;
+}
+
+int cdns3_disable_clks(int index)
+{
+       sc_err_t err;
+       sc_ipc_t ipc;
+
+       ipc = gd->arch.ipc_channel_handle;
+
+       err = sc_pm_clock_enable(ipc, SC_R_USB_2, SC_PM_CLK_MISC, false, false);
+       if (err != SC_ERR_NONE)
+               printf("USB3 disable clock failed!, line=%d (error = %d)\n",
+                       __LINE__, err);
+
+       err = sc_pm_clock_enable(ipc, SC_R_USB_2, SC_PM_CLK_MST_BUS, false, false);
+       if (err != SC_ERR_NONE)
+               printf("USB3 disable clock failed!, line=%d (error = %d)\n",
+                       __LINE__, err);
+
+       err = sc_pm_clock_enable(ipc, SC_R_USB_2, SC_PM_CLK_PER, false, false);
+       if (err != SC_ERR_NONE)
+               printf("USB3 disable clock failed!, line=%d (error = %d)\n",
+                       __LINE__, err);
+
+       return 0;
+}
 
 void init_clk_usdhc(u32 index)
 {