diff --git a/plat/imx/common/imx_clock.c b/plat/imx/common/imx_clock.c index 09cd101b3..ccf2aeb13 100644 --- a/plat/imx/common/imx_clock.c +++ b/plat/imx/common/imx_clock.c @@ -132,3 +132,21 @@ void imx_clock_set_wdog_clk_root_bits(uint32_t wdog_clk_root_en_bits) /* Enable the common clock root just once */ imx_clock_target_set(CCM_TRT_ID_WDOG_CLK_ROOT, wdog_clk_root_en_bits); } + +void imx_clock_enable_usb(unsigned int ccm_ccgr_usb_id) +{ + /* Enable the clock gate */ + imx_clock_gate_enable(ccm_ccgr_usb_id, true); +} + +void imx_clock_disable_usb(unsigned int ccm_ccgr_usb_id) +{ + /* Disable the clock gate */ + imx_clock_gate_enable(ccm_ccgr_usb_id, false); +} + +void imx_clock_set_usb_clk_root_bits(uint32_t usb_clk_root_en_bits) +{ + /* Enable the common clock root just once */ + imx_clock_target_set(CCM_TRT_ID_USB_HSIC_CLK_ROOT, usb_clk_root_en_bits); +} diff --git a/plat/imx/common/include/imx_clock.h b/plat/imx/common/include/imx_clock.h index 27858bbda..85586380f 100644 --- a/plat/imx/common/include/imx_clock.h +++ b/plat/imx/common/include/imx_clock.h @@ -995,5 +995,8 @@ void imx_clock_enable_usdhc(unsigned int usdhc_id, uint32_t usdhc_clk_en_bits); void imx_clock_set_wdog_clk_root_bits(uint32_t wdog_clk_root_en_bits); void imx_clock_enable_wdog(unsigned int wdog_id); void imx_clock_disable_wdog(unsigned int wdog_id); +void imx_clock_enable_usb(unsigned int usb_id); +void imx_clock_disable_usb(unsigned int usb_id); +void imx_clock_set_usb_clk_root_bits(uint32_t usb_clk_root_en_bits); #endif /* __IMX_CLOCK_H__ */