From d46ed5b7d75e0474596dfe5da7de211aea1ebb60 Mon Sep 17 00:00:00 2001 From: Peter Chen Date: Wed, 7 Jun 2017 14:19:46 +0800 Subject: [PATCH] MLK-15026-2 board: imx8qm_arm2: add USB3 support It only supports USB3 power up sequence now. Signed-off-by: Peter Chen --- board/freescale/imx8qm_arm2/imx8qm_arm2.c | 36 +++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/board/freescale/imx8qm_arm2/imx8qm_arm2.c b/board/freescale/imx8qm_arm2/imx8qm_arm2.c index c9de38bd52..b058025d2f 100644 --- a/board/freescale/imx8qm_arm2/imx8qm_arm2.c +++ b/board/freescale/imx8qm_arm2/imx8qm_arm2.c @@ -766,3 +766,39 @@ int is_recovery_key_pressing(void) } #endif /*CONFIG_ANDROID_RECOVERY*/ #endif /*CONFIG_FSL_FASTBOOT*/ + +/* Only Enable USB3 resources currently */ +int board_usb_init(int index, enum usb_init_type init) +{ + sc_err_t err; + sc_ipc_t ipc; + sc_rsrc_t usbs[2] = {SC_R_USB_2, SC_R_USB_2_PHY}; + int i; + + ipc = gd->arch.ipc_channel_handle; + + /* Power on usb, notify if SCI error occurred */ + for (i = 0; i < 2; i++) { + err = sc_pm_set_resource_power_mode(ipc, usbs[i], + SC_PM_PW_MODE_ON); + if (err != SC_ERR_NONE) + printf("SC_R_USB_%d Power up failed: %d\n", i, err); + } + + err = sc_pm_clock_enable(ipc, usbs[0], 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, usbs[0], 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, usbs[0], SC_PM_CLK_PER, true, false); + if (err != SC_ERR_NONE) + printf("USB3 set clock failed!, line=%d (error = %d)\n", + __LINE__, err); + + return 0; +} -- 2.17.1