From: Jun Nie Date: Thu, 28 Jun 2018 08:38:11 +0000 (+0800) Subject: imx: imx_clock: mmc: Add USDHC clock API X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=14cf32aaa72fabb13f60e85c2a4c8bf9422c22ec;p=project%2Fbcm63xx%2Fatf.git imx: imx_clock: mmc: Add USDHC clock API This patch adds an API to configure up the base USDHC clocks, taking a bit-mask of silicon specific bits as an input from a higher layer in order to direct the necessary clock source. Signed-off-by: Jun Nie Signed-off-by: Bryan O'Donoghue --- diff --git a/plat/imx/common/imx_clock.c b/plat/imx/common/imx_clock.c index 8fb42e3e..0a13d4db 100644 --- a/plat/imx/common/imx_clock.c +++ b/plat/imx/common/imx_clock.c @@ -82,3 +82,19 @@ void imx_clock_disable_uart(unsigned int uart_id) /* Clear the target */ imx_clock_target_clr(ccm_trgt_id, 0xFFFFFFFF); } + +void imx_clock_enable_usdhc(unsigned int usdhc_id, uint32_t usdhc_clk_en_bits) +{ + unsigned int ccm_trgt_id = CCM_TRT_ID_USDHC1_CLK_ROOT + usdhc_id; + unsigned int ccm_ccgr_id = CCM_CCGR_ID_USBHDC1 + usdhc_id; + + /* Check for error */ + if (usdhc_id > MXC_MAX_USDHC_NUM) + return; + + /* Set target register values */ + imx_clock_target_set(ccm_trgt_id, usdhc_clk_en_bits); + + /* Enable the clock gate */ + imx_clock_gate_enable(ccm_ccgr_id, true); +} diff --git a/plat/imx/common/include/imx_clock.h b/plat/imx/common/include/imx_clock.h index f1d1912d..51717c4b 100644 --- a/plat/imx/common/include/imx_clock.h +++ b/plat/imx/common/include/imx_clock.h @@ -991,5 +991,6 @@ void imx_clock_init(void); void imx_clock_enable_uart(unsigned int uart_id, uint32_t uart_clk_en_bits); void imx_clock_disable_uart(unsigned int uart_id); +void imx_clock_enable_usdhc(unsigned int usdhc_id, uint32_t usdhc_clk_en_bits); #endif /* __IMX_CLOCK_H__ */