34 #include "fsl_iomuxc.h" 151 .enableClkOutput =
false,
152 .enableClkOutput500M =
true,
153 .enableClkOutput25M =
false,
163 CLOCK_SetRtcXtalFreq(32768U);
165 XTALOSC24M->OSC_CONFIG2 |= XTALOSC24M_OSC_CONFIG2_ENABLE_1M_MASK;
167 XTALOSC24M->OSC_CONFIG2 &= ~XTALOSC24M_OSC_CONFIG2_MUX_1M_MASK;
169 CLOCK_SetXtalFreq(24000000U);
171 CLOCK_InitExternalClk(0);
173 CLOCK_InitRcOsc24M();
175 CLOCK_SwitchOsc(kCLOCK_XtalOsc);
177 CCM->CCR = (CCM->CCR & (~CCM_CCR_OSCNT_MASK)) | CCM_CCR_OSCNT(127);
179 CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 1);
180 CLOCK_SetMux(kCLOCK_PeriphMux, 1);
182 DCDC->REG3 = (DCDC->REG3 & (~DCDC_REG3_TRG_MASK)) | DCDC_REG3_TRG(0x12);
184 while (DCDC_REG0_STS_DC_OK_MASK != (DCDC_REG0_STS_DC_OK_MASK & DCDC->REG0))
188 CLOCK_SetDiv(kCLOCK_AhbDiv, 0);
190 CLOCK_DisableClock(kCLOCK_Adc1);
191 CLOCK_DisableClock(kCLOCK_Adc2);
192 CLOCK_DisableClock(kCLOCK_Xbar1);
193 CLOCK_DisableClock(kCLOCK_Xbar2);
195 CLOCK_SetDiv(kCLOCK_IpgDiv, 3);
197 CLOCK_SetDiv(kCLOCK_ArmDiv, 0);
199 CLOCK_SetDiv(kCLOCK_PeriphClk2Div, 0);
201 CLOCK_DisableClock(kCLOCK_Gpt1);
202 CLOCK_DisableClock(kCLOCK_Gpt1S);
203 CLOCK_DisableClock(kCLOCK_Gpt2);
204 CLOCK_DisableClock(kCLOCK_Gpt2S);
205 CLOCK_DisableClock(kCLOCK_Pit);
207 CLOCK_SetDiv(kCLOCK_PerclkDiv, 1);
209 CLOCK_DisableClock(kCLOCK_Usdhc1);
211 CLOCK_SetDiv(kCLOCK_Usdhc1Div, 2);
213 CLOCK_SetMux(kCLOCK_Usdhc1Mux, 0);
215 CLOCK_DisableClock(kCLOCK_Usdhc2);
217 CLOCK_SetDiv(kCLOCK_Usdhc2Div, 2);
219 CLOCK_SetMux(kCLOCK_Usdhc2Mux, 0);
224 #ifndef SKIP_SYSCLK_INIT 226 CLOCK_DisableClock(kCLOCK_Semc);
228 CLOCK_SetDiv(kCLOCK_SemcDiv, 7);
230 CLOCK_SetMux(kCLOCK_SemcAltMux, 0);
232 CLOCK_SetMux(kCLOCK_SemcMux, 0);
238 #if !(defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1)) 240 CLOCK_DisableClock(kCLOCK_FlexSpi);
242 CLOCK_SetDiv(kCLOCK_FlexspiDiv, 3);
244 CLOCK_SetMux(kCLOCK_FlexspiMux, 2);
247 CLOCK_DisableClock(kCLOCK_Lpspi1);
248 CLOCK_DisableClock(kCLOCK_Lpspi2);
249 CLOCK_DisableClock(kCLOCK_Lpspi3);
250 CLOCK_DisableClock(kCLOCK_Lpspi4);
252 CLOCK_SetDiv(kCLOCK_LpspiDiv, 4);
254 CLOCK_SetMux(kCLOCK_LpspiMux, 2);
256 CLOCK_DisableClock(kCLOCK_Trace);
258 CLOCK_SetDiv(kCLOCK_TraceDiv, 2);
260 CLOCK_SetMux(kCLOCK_TraceMux, 2);
262 CLOCK_DisableClock(kCLOCK_Sai1);
264 CLOCK_SetDiv(kCLOCK_Sai1PreDiv, 3);
266 CLOCK_SetDiv(kCLOCK_Sai1Div, 1);
268 CLOCK_SetMux(kCLOCK_Sai1Mux, 0);
270 CLOCK_DisableClock(kCLOCK_Sai2);
272 CLOCK_SetDiv(kCLOCK_Sai2PreDiv, 3);
274 CLOCK_SetDiv(kCLOCK_Sai2Div, 1);
276 CLOCK_SetMux(kCLOCK_Sai2Mux, 0);
278 CLOCK_DisableClock(kCLOCK_Sai3);
280 CLOCK_SetDiv(kCLOCK_Sai3PreDiv, 3);
282 CLOCK_SetDiv(kCLOCK_Sai3Div, 1);
284 CLOCK_SetMux(kCLOCK_Sai3Mux, 0);
286 CLOCK_DisableClock(kCLOCK_Lpi2c1);
287 CLOCK_DisableClock(kCLOCK_Lpi2c2);
288 CLOCK_DisableClock(kCLOCK_Lpi2c3);
290 CLOCK_SetDiv(kCLOCK_Lpi2cDiv, 0);
292 CLOCK_SetMux(kCLOCK_Lpi2cMux, 0);
294 CLOCK_DisableClock(kCLOCK_Can1);
295 CLOCK_DisableClock(kCLOCK_Can2);
296 CLOCK_DisableClock(kCLOCK_Can1S);
297 CLOCK_DisableClock(kCLOCK_Can2S);
299 CLOCK_SetDiv(kCLOCK_CanDiv, 1);
301 CLOCK_SetMux(kCLOCK_CanMux, 2);
303 CLOCK_DisableClock(kCLOCK_Lpuart1);
304 CLOCK_DisableClock(kCLOCK_Lpuart2);
305 CLOCK_DisableClock(kCLOCK_Lpuart3);
306 CLOCK_DisableClock(kCLOCK_Lpuart4);
307 CLOCK_DisableClock(kCLOCK_Lpuart5);
308 CLOCK_DisableClock(kCLOCK_Lpuart6);
309 CLOCK_DisableClock(kCLOCK_Lpuart7);
310 CLOCK_DisableClock(kCLOCK_Lpuart8);
312 CLOCK_SetDiv(kCLOCK_UartDiv, 0);
314 CLOCK_SetMux(kCLOCK_UartMux, 0);
316 CLOCK_DisableClock(kCLOCK_Spdif);
318 CLOCK_SetDiv(kCLOCK_Spdif0PreDiv, 1);
320 CLOCK_SetDiv(kCLOCK_Spdif0Div, 7);
322 CLOCK_SetMux(kCLOCK_SpdifMux, 3);
324 CLOCK_DisableClock(kCLOCK_Flexio1);
326 CLOCK_SetDiv(kCLOCK_Flexio1PreDiv, 1);
328 CLOCK_SetDiv(kCLOCK_Flexio1Div, 7);
330 CLOCK_SetMux(kCLOCK_Flexio1Mux, 3);
332 CLOCK_SetMux(kCLOCK_Pll3SwMux, 0);
337 #ifndef SKIP_SYSCLK_INIT 341 CLOCK_InitSysPfd(kCLOCK_Pfd0, 27);
343 CLOCK_InitSysPfd(kCLOCK_Pfd1, 16);
345 CLOCK_InitSysPfd(kCLOCK_Pfd2, 18);
347 CLOCK_InitSysPfd(kCLOCK_Pfd3, 18);
353 #if !(defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1)) 357 CLOCK_InitUsb1Pfd(kCLOCK_Pfd0, 22);
359 CLOCK_InitUsb1Pfd(kCLOCK_Pfd1, 16);
361 CLOCK_InitUsb1Pfd(kCLOCK_Pfd2, 17);
363 CLOCK_InitUsb1Pfd(kCLOCK_Pfd3, 18);
365 CCM_ANALOG->PLL_USB1 &= ~CCM_ANALOG_PLL_USB1_EN_USB_CLKS_MASK;
368 CLOCK_DeinitAudioPll();
370 CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllAudio, 1);
372 CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_LSB_MASK;
373 CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_MSB_MASK;
375 CCM_ANALOG->PLL_AUDIO |= CCM_ANALOG_PLL_AUDIO_ENABLE_MASK;
379 CLOCK_SetMux(kCLOCK_PrePeriphMux, 3);
381 CLOCK_SetMux(kCLOCK_PeriphMux, 0);
383 CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 0);
385 CLOCK_SetMux(kCLOCK_PerclkMux, 0);
387 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_DIV_MASK)) | CCM_CCOSR_CLKO1_DIV(0);
389 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_SEL_MASK)) | CCM_CCOSR_CLKO1_SEL(1);
391 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO2_DIV_MASK)) | CCM_CCOSR_CLKO2_DIV(0);
393 CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO2_SEL_MASK)) | CCM_CCOSR_CLKO2_SEL(3);
395 CCM->CCOSR &= ~CCM_CCOSR_CLK_OUT_SEL_MASK;
397 CCM->CCOSR &= ~CCM_CCOSR_CLKO1_EN_MASK;
399 CCM->CCOSR &= ~CCM_CCOSR_CLKO2_EN_MASK;
401 IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI1MClk1Sel, 0);
403 IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI1MClk2Sel, 0);
405 IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI1MClk3Sel, 0);
407 IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI2MClk3Sel, 0);
409 IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI3MClk3Sel, 0);
411 IOMUXC_MQSConfig(IOMUXC_GPR, kIOMUXC_MqsPwmOverSampleRate32, 0);
413 IOMUXC_EnableMode(IOMUXC_GPR, kIOMUXC_GPR_ENET1RefClkMode,
false);
415 IOMUXC_GPR->GPR5 &= ~IOMUXC_GPR_GPR5_VREF_1M_CLK_GPT1_MASK;
417 IOMUXC_GPR->GPR5 &= ~IOMUXC_GPR_GPR5_VREF_1M_CLK_GPT2_MASK;
const clock_enet_pll_config_t enetPllConfig_BOARD_BootClockRUN
Enet PLL set for BOARD_BootClockRUN configuration.
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.
#define BOARD_BOOTCLOCKRUN_CORE_CLOCK