return;
}
+void init_clk_usb3(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, true, false);
+ if (err != SC_ERR_NONE)
+ printf("USB3 set clock failed!, line=%d (error = %d)\n",
+ __LINE__, err);
+
+ err = sc_pm_clock_enable(ipc, SC_R_USB_2, SC_PM_CLK_MST_BUS, true, false);
+ if (err != SC_ERR_NONE)
+ printf("USB3 set clock failed!, line=%d (error = %d)\n",
+ __LINE__, err);
+
+ err = sc_pm_clock_enable(ipc, SC_R_USB_2, SC_PM_CLK_PER, true, false);
+ if (err != SC_ERR_NONE)
+ printf("USB3 set clock failed!, line=%d (error = %d)\n",
+ __LINE__, err);
+
+ return;
+}
+
+
void init_clk_usdhc(u32 index)
{
#ifdef CONFIG_IMX8QM
u32 imx_get_fecclk(void);
void init_clk_usdhc(u32 index);
void init_clk_gpmi_nand(void);
+void init_clk_usb3(int index);
#endif /* __ASM_ARCH_CLOCK_H__ */
#include <usb/imx8_usb3_reg_def.h>
#include <dm.h>
#include <power-domain.h>
+#include <asm/arch/clock.h>
/* Declare global data pointer */
DECLARE_GLOBAL_DATA_PTR;
return ret;
}
+ init_clk_usb3(dev->seq);
+
imx8_xhci_init();
hccr = (struct xhci_hccr *)HCIVERSION_CAPLENGTH;
return ret;
}
+ init_clk_usb3(index);
+
imx8_xhci_init();
hccr = (struct xhci_hccr *)HCIVERSION_CAPLENGTH;