156 CLOCK_SetRtcXtalFreq(32768U);
158 XTALOSC24M->OSC_CONFIG2 |= XTALOSC24M_OSC_CONFIG2_ENABLE_1M_MASK;
160 XTALOSC24M->OSC_CONFIG2 &= ~XTALOSC24M_OSC_CONFIG2_MUX_1M_MASK;
162 CLOCK_SetXtalFreq(24000000U);
164 CLOCK_InitExternalClk(0);
166 CLOCK_InitRcOsc24M();
168 CLOCK_SwitchOsc(kCLOCK_XtalOsc);
170 CCM->CCR = (CCM->CCR & (~CCM_CCR_OSCNT_MASK)) | CCM_CCR_OSCNT(127);
172 CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 1);
173 CLOCK_SetMux(kCLOCK_PeriphMux, 1);
175 DCDC->REG3 = (DCDC->REG3 & (~DCDC_REG3_TRG_MASK)) | DCDC_REG3_TRG(0x12);
177 while (DCDC_REG0_STS_DC_OK_MASK != (DCDC_REG0_STS_DC_OK_MASK & DCDC->REG0))
185 #ifndef SKIP_SYSCLK_INIT 189 CLOCK_InitSysPfd(kCLOCK_Pfd0, 27);
191 CLOCK_InitSysPfd(kCLOCK_Pfd1, 16);
193 CLOCK_InitSysPfd(kCLOCK_Pfd2, 24);
195 CLOCK_InitSysPfd(kCLOCK_Pfd3, 16);
200 #if !(defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1)) 204 CLOCK_InitUsb1Pfd(kCLOCK_Pfd0, 33);
206 CLOCK_InitUsb1Pfd(kCLOCK_Pfd1, 16);
208 CLOCK_InitUsb1Pfd(kCLOCK_Pfd2, 17);
210 CLOCK_InitUsb1Pfd(kCLOCK_Pfd3, 19);
212 CCM_ANALOG->PLL_USB1 &= ~CCM_ANALOG_PLL_USB1_EN_USB_CLKS_MASK;
215 CLOCK_DeinitAudioPll();
217 CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllAudio, 1);
219 CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_LSB_MASK;
220 CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_MSB_MASK;
222 CCM_ANALOG->PLL_AUDIO |= CCM_ANALOG_PLL_AUDIO_ENABLE_MASK;
224 CLOCK_DeinitVideoPll();
226 CCM_ANALOG->PLL_VIDEO |= CCM_ANALOG_PLL_VIDEO_BYPASS_MASK;
228 CCM_ANALOG->MISC2 = (CCM_ANALOG->MISC2 & (~CCM_ANALOG_MISC2_VIDEO_DIV_MASK)) | CCM_ANALOG_MISC2_VIDEO_DIV(0);
230 CCM_ANALOG->PLL_VIDEO |= CCM_ANALOG_PLL_VIDEO_ENABLE_MASK;
232 CLOCK_DeinitEnetPll();
234 CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllEnet, 1);
236 CCM_ANALOG->PLL_ENET = (CCM_ANALOG->PLL_ENET & (~CCM_ANALOG_PLL_ENET_DIV_SELECT_MASK)) | CCM_ANALOG_PLL_ENET_DIV_SELECT(1);
238 CCM_ANALOG->PLL_ENET |= CCM_ANALOG_PLL_ENET_ENABLE_MASK;
240 CCM_ANALOG->PLL_ENET |= CCM_ANALOG_PLL_ENET_ENET_25M_REF_EN_MASK;
242 CLOCK_DeinitUsb2Pll();
244 CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllUsb2, 1);
246 CCM_ANALOG->PLL_USB2 |= CCM_ANALOG_PLL_USB2_ENABLE_MASK;
248 CLOCK_SetDiv(kCLOCK_AhbDiv, 0);
250 CLOCK_SetDiv(kCLOCK_IpgDiv, 3);
252 CLOCK_SetDiv(kCLOCK_ArmDiv, 1);
254 CLOCK_SetMux(kCLOCK_PrePeriphMux, 3);
256 CLOCK_SetMux(kCLOCK_PeriphMux, 0);
258 CLOCK_SetDiv(kCLOCK_PeriphClk2Div, 0);
260 CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 0);
262 CLOCK_SetDiv(kCLOCK_PerclkDiv, 1);
264 CLOCK_SetMux(kCLOCK_PerclkMux, 0);
266 CLOCK_SetDiv(kCLOCK_Usdhc1Div, 1);
268 CLOCK_SetMux(kCLOCK_Usdhc1Mux, 0);
270 CLOCK_SetDiv(kCLOCK_Usdhc2Div, 1);
272 CLOCK_SetMux(kCLOCK_Usdhc2Mux, 0);
276 #ifndef SKIP_SYSCLK_INIT 278 CLOCK_SetDiv(kCLOCK_SemcDiv, 7);
280 CLOCK_SetMux(kCLOCK_SemcAltMux, 0);
282 CLOCK_SetMux(kCLOCK_SemcMux, 0);
287 #if !(defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1)) 289 CLOCK_SetDiv(kCLOCK_FlexspiDiv, 0);
291 CLOCK_SetMux(kCLOCK_FlexspiMux, 3);
294 CLOCK_SetDiv(kCLOCK_Flexspi2Div, 0);
296 CLOCK_SetMux(kCLOCK_Flexspi2Mux, 1);
298 CLOCK_SetDiv(kCLOCK_CsiDiv, 1);
300 CLOCK_SetMux(kCLOCK_CsiMux, 0);
302 CLOCK_SetDiv(kCLOCK_LpspiDiv, 4);
304 CLOCK_SetMux(kCLOCK_LpspiMux, 2);
306 CLOCK_SetDiv(kCLOCK_TraceDiv, 2);
308 CLOCK_SetMux(kCLOCK_TraceMux, 2);
310 CLOCK_SetDiv(kCLOCK_Sai1PreDiv, 3);
312 CLOCK_SetDiv(kCLOCK_Sai1Div, 1);
314 CLOCK_SetMux(kCLOCK_Sai1Mux, 0);
316 CLOCK_SetDiv(kCLOCK_Sai2PreDiv, 3);
318 CLOCK_SetDiv(kCLOCK_Sai2Div, 1);
320 CLOCK_SetMux(kCLOCK_Sai2Mux, 0);
322 CLOCK_SetDiv(kCLOCK_Sai3PreDiv, 3);
324 CLOCK_SetDiv(kCLOCK_Sai3Div, 1);
326 CLOCK_SetMux(kCLOCK_Sai3Mux, 0);
328 CLOCK_SetDiv(kCLOCK_Lpi2cDiv, 0);
330 CLOCK_SetMux(kCLOCK_Lpi2cMux, 0);
332 CLOCK_SetDiv(kCLOCK_CanDiv, 1);
334 CLOCK_SetMux(kCLOCK_CanMux, 2);
336 CLOCK_SetDiv(kCLOCK_UartDiv, 0);
338 CLOCK_SetMux(kCLOCK_UartMux, 0);
340 CLOCK_SetDiv(kCLOCK_LcdifPreDiv, 1);
342 CLOCK_SetDiv(kCLOCK_LcdifDiv, 3);
344 CLOCK_SetMux(kCLOCK_LcdifPreMux, 5);
346 CLOCK_SetDiv(kCLOCK_Spdif0PreDiv, 1);
348 CLOCK_SetDiv(kCLOCK_Spdif0Div, 7);
350 CLOCK_SetMux(kCLOCK_SpdifMux, 3);
352 CLOCK_SetDiv(kCLOCK_Flexio1PreDiv, 1);
354 CLOCK_SetDiv(kCLOCK_Flexio1Div, 7);
356 CLOCK_SetMux(kCLOCK_Flexio1Mux, 3);
358 CLOCK_SetDiv(kCLOCK_Flexio2PreDiv, 1);
360 CLOCK_SetDiv(kCLOCK_Flexio2Div, 7);
362 CLOCK_SetMux(kCLOCK_Flexio2Mux, 3);
364 CLOCK_SetMux(kCLOCK_Pll3SwMux, 0);
366 CCM_ANALOG->MISC1 = (CCM_ANALOG->MISC1 & (~CCM_ANALOG_MISC1_LVDS1_CLK_SEL_MASK)) | CCM_ANALOG_MISC1_LVDS1_CLK_SEL(0);
368 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_DIV_MASK)) | CCM_CCOSR_CLKO1_DIV(0);
370 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_SEL_MASK)) | CCM_CCOSR_CLKO1_SEL(1);
372 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO2_DIV_MASK)) | CCM_CCOSR_CLKO2_DIV(0);
374 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO2_SEL_MASK)) | CCM_CCOSR_CLKO2_SEL(18);
376 CCM->CCOSR &= ~CCM_CCOSR_CLK_OUT_SEL_MASK;
378 CCM->CCOSR &= ~CCM_CCOSR_CLKO1_EN_MASK;
380 CCM->CCOSR &= ~CCM_CCOSR_CLKO2_EN_MASK;
const clock_sys_pll_config_t sysPllConfig_BOARD_BootClockRUN
Sys PLL for BOARD_BootClockRUN configuration.
void BOARD_InitBootClocks(void)
This function executes default configuration of clocks.
void BOARD_BootClockRUN(void)
This function executes configuration of clocks.
const clock_usb_pll_config_t usb1PllConfig_BOARD_BootClockRUN
Usb1 PLL set for BOARD_BootClockRUN configuration.
const clock_arm_pll_config_t armPllConfig_BOARD_BootClockRUN
Arm PLL set for BOARD_BootClockRUN configuration.
#define BOARD_BOOTCLOCKRUN_CORE_CLOCK