| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 |
- /**************************************************************************//**
- *
- * @copyright (C) 2019 Nuvoton Technology Corp. All rights reserved.
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-6-1 Wayne First version
- *
- ******************************************************************************/
- #include "board.h"
- static void nu_clock_uart_init(void)
- {
- #if defined(BSP_USING_UART0)
- CLK_EnableModuleClock(UART0_MODULE);
- CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL2_UART0SEL_HXT, CLK_CLKDIV1_UART0(1));
- #endif
- #if defined(BSP_USING_UART1)
- CLK_EnableModuleClock(UART1_MODULE);
- CLK_SetModuleClock(UART1_MODULE, CLK_CLKSEL2_UART1SEL_HXT, CLK_CLKDIV1_UART1(1));
- #endif
- #if defined(BSP_USING_UART2)
- CLK_EnableModuleClock(UART2_MODULE);
- CLK_SetModuleClock(UART2_MODULE, CLK_CLKSEL2_UART2SEL_HXT, CLK_CLKDIV1_UART2(1));
- #endif
- #if defined(BSP_USING_UART3)
- CLK_EnableModuleClock(UART3_MODULE);
- CLK_SetModuleClock(UART3_MODULE, CLK_CLKSEL2_UART3SEL_HXT, CLK_CLKDIV1_UART3(1));
- #endif
- #if defined(BSP_USING_UART4)
- CLK_EnableModuleClock(UART4_MODULE);
- CLK_SetModuleClock(UART4_MODULE, CLK_CLKSEL2_UART4SEL_HXT, CLK_CLKDIV1_UART4(1));
- #endif
- #if defined(BSP_USING_UART5)
- CLK_EnableModuleClock(UART5_MODULE);
- CLK_SetModuleClock(UART5_MODULE, CLK_CLKSEL2_UART5SEL_HXT, CLK_CLKDIV1_UART5(1));
- #endif
- #if defined(BSP_USING_UART6)
- CLK_EnableModuleClock(UART6_MODULE);
- CLK_SetModuleClock(UART6_MODULE, CLK_CLKSEL2_UART6SEL_HXT, CLK_CLKDIV1_UART6(1));
- #endif
- #if defined(BSP_USING_UART7)
- CLK_EnableModuleClock(UART7_MODULE);
- CLK_SetModuleClock(UART7_MODULE, CLK_CLKSEL2_UART7SEL_HXT, CLK_CLKDIV1_UART7(1));
- #endif
- #if defined(BSP_USING_UART8)
- CLK_EnableModuleClock(UART8_MODULE);
- CLK_SetModuleClock(UART8_MODULE, CLK_CLKSEL3_UART8SEL_HXT, CLK_CLKDIV1_UART8(1));
- #endif
- #if defined(BSP_USING_UART9)
- CLK_EnableModuleClock(UART9_MODULE);
- CLK_SetModuleClock(UART9_MODULE, CLK_CLKSEL3_UART9SEL_HXT, CLK_CLKDIV2_UART9(1));
- #endif
- #if defined(BSP_USING_UART10)
- CLK_EnableModuleClock(UART10_MODULE);
- CLK_SetModuleClock(UART10_MODULE, CLK_CLKSEL3_UART10SEL_HXT, CLK_CLKDIV2_UART10(1));
- #endif
- #if defined(BSP_USING_UART11)
- CLK_EnableModuleClock(UART11_MODULE);
- CLK_SetModuleClock(UART11_MODULE, CLK_CLKSEL3_UART11SEL_HXT, CLK_CLKDIV2_UART11(1));
- #endif
- #if defined(BSP_USING_UART12)
- CLK_EnableModuleClock(UART12_MODULE);
- CLK_SetModuleClock(UART12_MODULE, CLK_CLKSEL3_UART12SEL_HXT, CLK_CLKDIV3_UART12(1));
- #endif
- #if defined(BSP_USING_UART13)
- CLK_EnableModuleClock(UART13_MODULE);
- CLK_SetModuleClock(UART13_MODULE, CLK_CLKSEL3_UART13SEL_HXT, CLK_CLKDIV3_UART13(1));
- #endif
- #if defined(BSP_USING_UART14)
- CLK_EnableModuleClock(UART14_MODULE);
- CLK_SetModuleClock(UART14_MODULE, CLK_CLKSEL3_UART14SEL_HXT, CLK_CLKDIV3_UART14(1));
- #endif
- #if defined(BSP_USING_UART15)
- CLK_EnableModuleClock(UART15_MODULE);
- CLK_SetModuleClock(UART15_MODULE, CLK_CLKSEL3_UART15SEL_HXT, CLK_CLKDIV3_UART15(1));
- #endif
- #if defined(BSP_USING_UART16)
- CLK_EnableModuleClock(UART16_MODULE);
- CLK_SetModuleClock(UART16_MODULE, CLK_CLKSEL3_UART16SEL_HXT, CLK_CLKDIV3_UART16(1));
- #endif
- }
- static void nu_clock_pdma_init(void)
- {
- #if defined(BSP_USING_PDMA0)
- CLK_EnableModuleClock(PDMA0_MODULE);
- #endif
- #if defined(BSP_USING_PDMA1)
- CLK_EnableModuleClock(PDMA1_MODULE);
- #endif
- #if defined(BSP_USING_PDMA2)
- CLK_EnableModuleClock(PDMA2_MODULE);
- #endif
- #if defined(BSP_USING_PDMA3)
- CLK_EnableModuleClock(PDMA3_MODULE);
- #endif
- }
- static void nu_clock_gpio_init(void)
- {
- #if defined(BSP_USING_GPIO)
- CLK_EnableModuleClock(GPA_MODULE);
- CLK_EnableModuleClock(GPB_MODULE);
- CLK_EnableModuleClock(GPC_MODULE);
- CLK_EnableModuleClock(GPD_MODULE);
- CLK_EnableModuleClock(GPE_MODULE);
- CLK_EnableModuleClock(GPF_MODULE);
- CLK_EnableModuleClock(GPG_MODULE);
- CLK_EnableModuleClock(GPH_MODULE);
- CLK_EnableModuleClock(GPI_MODULE);
- CLK_EnableModuleClock(GPJ_MODULE);
- CLK_EnableModuleClock(GPK_MODULE);
- CLK_EnableModuleClock(GPL_MODULE);
- CLK_EnableModuleClock(GPM_MODULE);
- CLK_EnableModuleClock(GPN_MODULE);
- #endif
- }
- static void nu_clock_qspi_init(void)
- {
- #if defined(BSP_USING_QSPI0)
- CLK_EnableModuleClock(QSPI0_MODULE);
- CLK_SetModuleClock(QSPI0_MODULE, CLK_CLKSEL4_QSPI0SEL_PCLK0, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_QSPI1)
- CLK_EnableModuleClock(QSPI1_MODULE);
- CLK_SetModuleClock(QSPI1_MODULE, CLK_CLKSEL4_QSPI1SEL_PCLK0, MODULE_NoMsk);
- #endif
- }
- static void nu_clock_spi_init(void)
- {
- #if defined(BSP_USING_SPI0)
- CLK_EnableModuleClock(SPI0_MODULE);
- CLK_SetModuleClock(SPI0_MODULE, CLK_CLKSEL4_SPI0SEL_PCLK1, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_SPI1)
- CLK_EnableModuleClock(SPI1_MODULE);
- CLK_SetModuleClock(SPI1_MODULE, CLK_CLKSEL4_SPI1SEL_PCLK2, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_SPI2)
- CLK_EnableModuleClock(SPI2_MODULE);
- CLK_SetModuleClock(SPI2_MODULE, CLK_CLKSEL4_SPI2SEL_PCLK1, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_SPI3)
- CLK_EnableModuleClock(SPI3_MODULE);
- CLK_SetModuleClock(SPI3_MODULE, CLK_CLKSEL4_SPI3SEL_PCLK2, MODULE_NoMsk);
- #endif
- }
- static void nu_clock_i2c_init(void)
- {
- #if defined(BSP_USING_I2C0)
- CLK_EnableModuleClock(I2C0_MODULE);
- #endif
- #if defined(BSP_USING_I2C1)
- CLK_EnableModuleClock(I2C1_MODULE);
- #endif
- #if defined(BSP_USING_I2C2)
- CLK_EnableModuleClock(I2C2_MODULE);
- #endif
- #if defined(BSP_USING_I2C3)
- CLK_EnableModuleClock(I2C3_MODULE);
- #endif
- #if defined(BSP_USING_I2C4)
- CLK_EnableModuleClock(I2C4_MODULE);
- #endif
- #if defined(BSP_USING_I2C5)
- CLK_EnableModuleClock(I2C5_MODULE);
- #endif
- }
- static void nu_clock_epwm_init(void)
- {
- #if defined(BSP_USING_EPWM0)
- CLK_EnableModuleClock(EPWM0_MODULE);
- #endif
- #if defined(BSP_USING_EPWM1)
- CLK_EnableModuleClock(EPWM1_MODULE);
- #endif
- #if defined(BSP_USING_EPWM2)
- CLK_EnableModuleClock(EPWM2_MODULE);
- #endif
- }
- static void nu_clock_i2s_init(void)
- {
- #if defined(BSP_USING_I2S0)
- CLK_EnableModuleClock(I2S0_MODULE);
- CLK_SetModuleClock(I2S0_MODULE, CLK_CLKSEL4_I2S0SEL_APLL, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_I2S1)
- CLK_EnableModuleClock(I2S1_MODULE);
- CLK_SetModuleClock(I2S1_MODULE, CLK_CLKSEL4_I2S1SEL_APLL, MODULE_NoMsk);
- #endif
- }
- void nu_clock_timer_init(void)
- {
- #if defined(BSP_USING_TMR0)
- CLK_EnableModuleClock(TMR0_MODULE);
- CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR1)
- CLK_EnableModuleClock(TMR1_MODULE);
- CLK_SetModuleClock(TMR1_MODULE, CLK_CLKSEL1_TMR1SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR2)
- CLK_EnableModuleClock(TMR2_MODULE);
- CLK_SetModuleClock(TMR2_MODULE, CLK_CLKSEL1_TMR2SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR3)
- CLK_EnableModuleClock(TMR3_MODULE);
- CLK_SetModuleClock(TMR3_MODULE, CLK_CLKSEL1_TMR3SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR4)
- CLK_EnableModuleClock(TMR4_MODULE);
- CLK_SetModuleClock(TMR4_MODULE, CLK_CLKSEL1_TMR4SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR5)
- CLK_EnableModuleClock(TMR5_MODULE);
- CLK_SetModuleClock(TMR5_MODULE, CLK_CLKSEL1_TMR5SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR6)
- CLK_EnableModuleClock(TMR6_MODULE);
- CLK_SetModuleClock(TMR6_MODULE, CLK_CLKSEL1_TMR6SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR7)
- CLK_EnableModuleClock(TMR7_MODULE);
- CLK_SetModuleClock(TMR7_MODULE, CLK_CLKSEL1_TMR7SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR8)
- CLK_EnableModuleClock(TMR8_MODULE);
- CLK_SetModuleClock(TMR8_MODULE, CLK_CLKSEL2_TMR8SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR9)
- CLK_EnableModuleClock(TMR9_MODULE);
- CLK_SetModuleClock(TMR9_MODULE, CLK_CLKSEL2_TMR9SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR10)
- CLK_EnableModuleClock(TMR10_MODULE);
- CLK_SetModuleClock(TMR10_MODULE, CLK_CLKSEL2_TMR10SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_TMR11)
- CLK_EnableModuleClock(TMR11_MODULE);
- CLK_SetModuleClock(TMR11_MODULE, CLK_CLKSEL2_TMR11SEL_HXT, MODULE_NoMsk);
- #endif
- }
- void nu_clock_wdt_init(void)
- {
- #if defined(BSP_USING_WDT0)
- CLK_EnableModuleClock(WDT0_MODULE);
- CLK_SetModuleClock(WDT0_MODULE, CLK_CLKSEL3_WDT0SEL_PCLK3_DIV4096, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_WDT1)
- CLK_EnableModuleClock(WDT1_MODULE);
- CLK_SetModuleClock(WDT1_MODULE, CLK_CLKSEL3_WDT1SEL_PCLK3_DIV4096, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_WDT2)
- CLK_EnableModuleClock(WDT2_MODULE);
- CLK_SetModuleClock(WDT2_MODULE, CLK_CLKSEL3_WDT2SEL_PCLK3_DIV4096, MODULE_NoMsk);
- #endif
- }
- void nu_clock_canfd_init(void)
- {
- #if defined(BSP_USING_CANFD0)
- CLK_EnableModuleClock(CANFD0_MODULE);
- CLK_SetModuleClock(CANFD0_MODULE, CLK_CLKSEL4_CANFD0SEL_APLL, CLK_CLKDIV0_CANFD0(1));
- #endif
- #if defined(BSP_USING_CANFD1)
- CLK_EnableModuleClock(CANFD1_MODULE);
- CLK_SetModuleClock(CANFD1_MODULE, CLK_CLKSEL4_CANFD1SEL_APLL, CLK_CLKDIV0_CANFD1(1));
- #endif
- #if defined(BSP_USING_CANFD2)
- CLK_EnableModuleClock(CANFD2_MODULE);
- CLK_SetModuleClock(CANFD2_MODULE, CLK_CLKSEL4_CANFD2SEL_APLL, CLK_CLKDIV0_CANFD2(1));
- #endif
- #if defined(BSP_USING_CANFD3)
- CLK_EnableModuleClock(CANFD3_MODULE);
- CLK_SetModuleClock(CANFD3_MODULE, CLK_CLKSEL4_CANFD3SEL_APLL, CLK_CLKDIV0_CANFD3(1));
- #endif
- }
- void nu_clock_sc_init(void)
- {
- #if defined(BSP_USING_SCUART0)
- CLK_EnableModuleClock(SC0_MODULE);
- CLK_SetModuleClock(SC0_MODULE, CLK_CLKSEL4_SC0SEL_HXT, MODULE_NoMsk);
- #endif
- #if defined(BSP_USING_SCUART1)
- CLK_EnableModuleClock(SC1_MODULE);
- CLK_SetModuleClock(SC1_MODULE, CLK_CLKSEL4_SC1SEL_HXT, MODULE_NoMsk);
- #endif
- }
- void nu_clock_rtc_init(void)
- {
- #if defined(BSP_USING_RTC)
- CLK_EnableModuleClock(RTC_MODULE);
- #endif
- }
- #if !defined(USE_MA35D1_SUBM)
- static void nu_clock_usbd_init(void)
- {
- }
- static void nu_clock_usbh_init(void)
- {
- }
- static void nu_clock_gmac_init(void)
- {
- #if defined(BSP_USING_GMAC0)
- CLK_EnableModuleClock(GMAC0_MODULE);
- #endif
- #if defined(BSP_USING_GMAC1)
- CLK_EnableModuleClock(GMAC1_MODULE);
- #endif
- }
- static void nu_clock_sdh_init(void)
- {
- #if defined(BSP_USING_SDH0)
- CLK_EnableModuleClock(SDH0_MODULE);
- #endif
- #if defined(BSP_USING_SDH1)
- CLK_EnableModuleClock(SDH1_MODULE);
- #endif
- }
- static void nu_clock_disp_init(void)
- {
- #if defined(BSP_USING_DISP)
- CLK_EnableModuleClock(DCU_MODULE);
- CLK_SetModuleClock(DCU_MODULE, CLK_CLKSEL0_DCUSEL_EPLL_DIV2, MODULE_NoMsk);
- // CLK_SetModuleClock(DCUP_MODULE, CLK_CLKSEL0_DCUPSEL_VPLL, MODULE_NoMsk);
- #endif
- }
- void nu_clock_base_init(void)
- {
- /* Enable HXT, LXT */
- CLK->PWRCTL |= (CLK_PWRCTL_HXTEN_Msk | CLK_PWRCTL_HIRCEN_Msk | CLK_PWRCTL_LXTEN_Msk | CLK_PWRCTL_LIRCEN_Msk);
- /* Waiting clock ready */
- CLK_WaitClockReady(CLK_STATUS_HXTSTB_Msk);
- /* Waiting clock ready */
- CLK_WaitClockReady(CLK_STATUS_LXTSTB_Msk);
- /* Waiting clock ready */
- CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk);
- /* Waiting clock ready */
- CLK_WaitClockReady(CLK_STATUS_LIRCSTB_Msk);
- }
- #endif
- static void nu_clock_hwsem_init(void)
- {
- #if defined(BSP_USING_HWSEM0)
- CLK_EnableModuleClock(HWSEM0_MODULE);
- #endif
- }
- static void nu_clock_whc_init(void)
- {
- #if defined(BSP_USING_WHC0)
- CLK_EnableModuleClock(WHC0_MODULE);
- #endif
- #if defined(BSP_USING_WHC1)
- CLK_EnableModuleClock(WHC1_MODULE);
- #endif
- }
- void nu_clock_init(void)
- {
- #if !defined(USE_MA35D1_SUBM)
- nu_clock_base_init();
- nu_clock_gmac_init();
- nu_clock_sdh_init();
- nu_clock_usbd_init();
- nu_clock_usbh_init();
- nu_clock_disp_init();
- #endif
- nu_clock_whc_init();
- nu_clock_hwsem_init();
- nu_clock_pdma_init();
- nu_clock_gpio_init();
- nu_clock_uart_init();
- nu_clock_qspi_init();
- nu_clock_spi_init();
- nu_clock_i2c_init();
- nu_clock_epwm_init();
- nu_clock_i2s_init();
- nu_clock_canfd_init();
- nu_clock_sc_init();
- nu_clock_timer_init();
- nu_clock_wdt_init();
- nu_clock_rtc_init();
- }
- void nu_clock_deinit(void)
- {
- }
|