clock_config.c 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. /*
  2. * Copyright 2018-2019 NXP
  3. * All rights reserved.
  4. *
  5. * SPDX-License-Identifier: BSD-3-Clause
  6. */
  7. /*
  8. * How to setup clock using clock driver functions:
  9. *
  10. * 1. Call CLOCK_InitXXXPLL() to configure corresponding PLL clock.
  11. *
  12. * 2. Call CLOCK_InitXXXpfd() to configure corresponding PLL pfd clock.
  13. *
  14. * 3. Call CLOCK_SetMux() to configure corresponding clock source for target clock out.
  15. *
  16. * 4. Call CLOCK_SetDiv() to configure corresponding clock divider for target clock out.
  17. *
  18. * 5. Call CLOCK_SetXtalFreq() to set XTAL frequency based on board settings.
  19. *
  20. */
  21. /* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
  22. !!GlobalInfo
  23. product: Clocks v7.0
  24. processor: MIMXRT1021xxxxx
  25. mcu_data: ksdk2_0
  26. processor_version: 0.10.4
  27. * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
  28. #include "clock_config.h"
  29. #include "fsl_iomuxc.h"
  30. /*******************************************************************************
  31. * Definitions
  32. ******************************************************************************/
  33. /*******************************************************************************
  34. * Variables
  35. ******************************************************************************/
  36. /* System clock frequency. */
  37. extern uint32_t SystemCoreClock;
  38. /*******************************************************************************
  39. ************************ BOARD_InitBootClocks function ************************
  40. ******************************************************************************/
  41. void BOARD_InitBootClocks(void)
  42. {
  43. BOARD_BootClockRUN();
  44. }
  45. /*******************************************************************************
  46. ********************** Configuration BOARD_BootClockRUN ***********************
  47. ******************************************************************************/
  48. /* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
  49. !!Configuration
  50. name: BOARD_BootClockRUN
  51. called_from_default_init: true
  52. outputs:
  53. - {id: AHB_CLK_ROOT.outFreq, value: 24 MHz}
  54. - {id: CAN_CLK_ROOT.outFreq, value: 2 MHz}
  55. - {id: CLK_1M.outFreq, value: 1 MHz}
  56. - {id: CLK_24M.outFreq, value: 24 MHz}
  57. - {id: ENET_125M_CLK.outFreq, value: 2.4 MHz}
  58. - {id: ENET_25M_REF_CLK.outFreq, value: 1.2 MHz}
  59. - {id: ENET_500M_REF_CLK.outFreq, value: 24 MHz}
  60. - {id: FLEXIO1_CLK_ROOT.outFreq, value: 1.5 MHz}
  61. - {id: FLEXSPI_CLK_ROOT.outFreq, value: 4 MHz}
  62. - {id: GPT1_ipg_clk_highfreq.outFreq, value: 24 MHz}
  63. - {id: GPT2_ipg_clk_highfreq.outFreq, value: 24 MHz}
  64. - {id: IPG_CLK_ROOT.outFreq, value: 24 MHz}
  65. - {id: LPI2C_CLK_ROOT.outFreq, value: 3 MHz}
  66. - {id: LPSPI_CLK_ROOT.outFreq, value: 6 MHz}
  67. - {id: MQS_MCLK.outFreq, value: 3 MHz}
  68. - {id: PERCLK_CLK_ROOT.outFreq, value: 24 MHz}
  69. - {id: SAI1_CLK_ROOT.outFreq, value: 3 MHz}
  70. - {id: SAI1_MCLK1.outFreq, value: 3 MHz}
  71. - {id: SAI1_MCLK2.outFreq, value: 3 MHz}
  72. - {id: SAI1_MCLK3.outFreq, value: 1.5 MHz}
  73. - {id: SAI2_CLK_ROOT.outFreq, value: 3 MHz}
  74. - {id: SAI2_MCLK1.outFreq, value: 3 MHz}
  75. - {id: SAI2_MCLK3.outFreq, value: 1.5 MHz}
  76. - {id: SAI3_CLK_ROOT.outFreq, value: 3 MHz}
  77. - {id: SAI3_MCLK1.outFreq, value: 3 MHz}
  78. - {id: SAI3_MCLK3.outFreq, value: 1.5 MHz}
  79. - {id: SEMC_CLK_ROOT.outFreq, value: 8 MHz}
  80. - {id: SPDIF0_CLK_ROOT.outFreq, value: 1.5 MHz}
  81. - {id: TRACE_CLK_ROOT.outFreq, value: 6 MHz}
  82. - {id: UART_CLK_ROOT.outFreq, value: 4 MHz}
  83. - {id: USDHC1_CLK_ROOT.outFreq, value: 12 MHz}
  84. - {id: USDHC2_CLK_ROOT.outFreq, value: 12 MHz}
  85. * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
  86. /*******************************************************************************
  87. * Variables for BOARD_BootClockRUN configuration
  88. ******************************************************************************/
  89. const clock_sys_pll_config_t sysPllConfig_BOARD_BootClockRUN =
  90. {
  91. .loopDivider = 1, /* PLL loop divider, Fout = Fin * ( 20 + loopDivider*2 + numerator / denominator ) */
  92. .numerator = 1, /* 30 bit numerator of fractional loop divider */
  93. .denominator = 60000, /* 30 bit denominator of fractional loop divider */
  94. .src = 0, /* Bypass clock source, 0 - OSC 24M, 1 - CLK1_P and CLK1_N */
  95. };
  96. const clock_enet_pll_config_t enetPllConfig_BOARD_BootClockRUN =
  97. {
  98. .enableClkOutput = true, /* Enable the PLL providing the ENET 125MHz reference clock */
  99. .enableClkOutput500M = true, /* Enable the PLL providing the ENET 500MHz reference clock */
  100. .enableClkOutput25M = true, /* Enable the PLL providing the ENET 25MHz reference clock */
  101. .loopDivider = 1, /* Set frequency of ethernet reference clock to 2.4 MHz */
  102. .src = 0, /* Bypass clock source, 0 - OSC 24M, 1 - CLK1_P and CLK1_N */
  103. };
  104. /*******************************************************************************
  105. * Code for BOARD_BootClockRUN configuration
  106. ******************************************************************************/
  107. void BOARD_BootClockRUN(void)
  108. {
  109. /* Enable 1MHz clock output. */
  110. XTALOSC24M->OSC_CONFIG2 |= XTALOSC24M_OSC_CONFIG2_ENABLE_1M_MASK;
  111. /* Use free 1MHz clock output. */
  112. XTALOSC24M->OSC_CONFIG2 &= ~XTALOSC24M_OSC_CONFIG2_MUX_1M_MASK;
  113. /* Set XTAL 24MHz clock frequency. */
  114. CLOCK_SetXtalFreq(24000000U);
  115. /* Enable XTAL 24MHz clock source. */
  116. CLOCK_InitExternalClk(0);
  117. /* Enable internal RC. */
  118. CLOCK_InitRcOsc24M();
  119. /* Switch clock source to external OSC. */
  120. CLOCK_SwitchOsc(kCLOCK_XtalOsc);
  121. /* Set Oscillator ready counter value. */
  122. CCM->CCR = (CCM->CCR & (~CCM_CCR_OSCNT_MASK)) | CCM_CCR_OSCNT(127);
  123. /* Setting PeriphClk2Mux and PeriphMux to provide stable clock before PLLs are initialed */
  124. CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 1); /* Set PERIPH_CLK2 MUX to OSC */
  125. CLOCK_SetMux(kCLOCK_PeriphMux, 1); /* Set PERIPH_CLK MUX to PERIPH_CLK2 */
  126. /* Set AHB_PODF. */
  127. CLOCK_SetDiv(kCLOCK_AhbDiv, 0);
  128. /* Disable IPG clock gate. */
  129. CLOCK_DisableClock(kCLOCK_Adc1);
  130. CLOCK_DisableClock(kCLOCK_Adc2);
  131. CLOCK_DisableClock(kCLOCK_Xbar1);
  132. CLOCK_DisableClock(kCLOCK_Xbar2);
  133. /* Set IPG_PODF. */
  134. CLOCK_SetDiv(kCLOCK_IpgDiv, 0);
  135. /* Set ARM_PODF. */
  136. CLOCK_SetDiv(kCLOCK_ArmDiv, 0);
  137. /* Set PERIPH_CLK2_PODF. */
  138. CLOCK_SetDiv(kCLOCK_PeriphClk2Div, 0);
  139. /* Disable PERCLK clock gate. */
  140. CLOCK_DisableClock(kCLOCK_Gpt1);
  141. CLOCK_DisableClock(kCLOCK_Gpt1S);
  142. CLOCK_DisableClock(kCLOCK_Gpt2);
  143. CLOCK_DisableClock(kCLOCK_Gpt2S);
  144. CLOCK_DisableClock(kCLOCK_Pit);
  145. /* Set PERCLK_PODF. */
  146. CLOCK_SetDiv(kCLOCK_PerclkDiv, 0);
  147. /* Disable USDHC1 clock gate. */
  148. CLOCK_DisableClock(kCLOCK_Usdhc1);
  149. /* Set USDHC1_PODF. */
  150. CLOCK_SetDiv(kCLOCK_Usdhc1Div, 1);
  151. /* Set Usdhc1 clock source. */
  152. CLOCK_SetMux(kCLOCK_Usdhc1Mux, 0);
  153. /* Disable USDHC2 clock gate. */
  154. CLOCK_DisableClock(kCLOCK_Usdhc2);
  155. /* Set USDHC2_PODF. */
  156. CLOCK_SetDiv(kCLOCK_Usdhc2Div, 1);
  157. /* Set Usdhc2 clock source. */
  158. CLOCK_SetMux(kCLOCK_Usdhc2Mux, 0);
  159. /* In SDK projects, SDRAM (configured by SEMC) will be initialized in either debug script or dcd.
  160. * With this macro SKIP_SYSCLK_INIT, system pll (selected to be SEMC source clock in SDK projects) will be left unchanged.
  161. * Note: If another clock source is selected for SEMC, user may want to avoid changing that clock as well.*/
  162. #ifndef SKIP_SYSCLK_INIT
  163. /* Disable Semc clock gate. */
  164. CLOCK_DisableClock(kCLOCK_Semc);
  165. /* Set SEMC_PODF. */
  166. CLOCK_SetDiv(kCLOCK_SemcDiv, 2);
  167. /* Set Semc alt clock source. */
  168. CLOCK_SetMux(kCLOCK_SemcAltMux, 0);
  169. /* Set Semc clock source. */
  170. CLOCK_SetMux(kCLOCK_SemcMux, 0);
  171. #endif
  172. /* In SDK projects, external flash (configured by FLEXSPI) will be initialized by dcd.
  173. * With this macro XIP_EXTERNAL_FLASH, usb1 pll (selected to be FLEXSPI clock source in SDK projects) will be left unchanged.
  174. * Note: If another clock source is selected for FLEXSPI, user may want to avoid changing that clock as well.*/
  175. #if !(defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1))
  176. /* Disable Flexspi clock gate. */
  177. CLOCK_DisableClock(kCLOCK_FlexSpi);
  178. /* Set FLEXSPI_PODF. */
  179. CLOCK_SetDiv(kCLOCK_FlexspiDiv, 1);
  180. /* Set Flexspi clock source. */
  181. CLOCK_SetMux(kCLOCK_FlexspiMux, 0);
  182. #endif
  183. /* Disable LPSPI clock gate. */
  184. CLOCK_DisableClock(kCLOCK_Lpspi1);
  185. CLOCK_DisableClock(kCLOCK_Lpspi2);
  186. CLOCK_DisableClock(kCLOCK_Lpspi3);
  187. CLOCK_DisableClock(kCLOCK_Lpspi4);
  188. /* Set LPSPI_PODF. */
  189. CLOCK_SetDiv(kCLOCK_LpspiDiv, 3);
  190. /* Set Lpspi clock source. */
  191. CLOCK_SetMux(kCLOCK_LpspiMux, 2);
  192. /* Disable TRACE clock gate. */
  193. CLOCK_DisableClock(kCLOCK_Trace);
  194. /* Set TRACE_PODF. */
  195. CLOCK_SetDiv(kCLOCK_TraceDiv, 3);
  196. /* Set Trace clock source. */
  197. CLOCK_SetMux(kCLOCK_TraceMux, 2);
  198. /* Disable SAI1 clock gate. */
  199. CLOCK_DisableClock(kCLOCK_Sai1);
  200. /* Set SAI1_CLK_PRED. */
  201. CLOCK_SetDiv(kCLOCK_Sai1PreDiv, 3);
  202. /* Set SAI1_CLK_PODF. */
  203. CLOCK_SetDiv(kCLOCK_Sai1Div, 1);
  204. /* Set Sai1 clock source. */
  205. CLOCK_SetMux(kCLOCK_Sai1Mux, 0);
  206. /* Disable SAI2 clock gate. */
  207. CLOCK_DisableClock(kCLOCK_Sai2);
  208. /* Set SAI2_CLK_PRED. */
  209. CLOCK_SetDiv(kCLOCK_Sai2PreDiv, 3);
  210. /* Set SAI2_CLK_PODF. */
  211. CLOCK_SetDiv(kCLOCK_Sai2Div, 1);
  212. /* Set Sai2 clock source. */
  213. CLOCK_SetMux(kCLOCK_Sai2Mux, 0);
  214. /* Disable SAI3 clock gate. */
  215. CLOCK_DisableClock(kCLOCK_Sai3);
  216. /* Set SAI3_CLK_PRED. */
  217. CLOCK_SetDiv(kCLOCK_Sai3PreDiv, 3);
  218. /* Set SAI3_CLK_PODF. */
  219. CLOCK_SetDiv(kCLOCK_Sai3Div, 1);
  220. /* Set Sai3 clock source. */
  221. CLOCK_SetMux(kCLOCK_Sai3Mux, 0);
  222. /* Disable Lpi2c clock gate. */
  223. CLOCK_DisableClock(kCLOCK_Lpi2c1);
  224. CLOCK_DisableClock(kCLOCK_Lpi2c2);
  225. CLOCK_DisableClock(kCLOCK_Lpi2c3);
  226. /* Set LPI2C_CLK_PODF. */
  227. CLOCK_SetDiv(kCLOCK_Lpi2cDiv, 0);
  228. /* Set Lpi2c clock source. */
  229. CLOCK_SetMux(kCLOCK_Lpi2cMux, 0);
  230. /* Disable CAN clock gate. */
  231. CLOCK_DisableClock(kCLOCK_Can1);
  232. CLOCK_DisableClock(kCLOCK_Can2);
  233. CLOCK_DisableClock(kCLOCK_Can1S);
  234. CLOCK_DisableClock(kCLOCK_Can2S);
  235. /* Set CAN_CLK_PODF. */
  236. CLOCK_SetDiv(kCLOCK_CanDiv, 1);
  237. /* Set Can clock source. */
  238. CLOCK_SetMux(kCLOCK_CanMux, 2);
  239. /* Disable UART clock gate. */
  240. CLOCK_DisableClock(kCLOCK_Lpuart1);
  241. CLOCK_DisableClock(kCLOCK_Lpuart2);
  242. CLOCK_DisableClock(kCLOCK_Lpuart3);
  243. CLOCK_DisableClock(kCLOCK_Lpuart4);
  244. CLOCK_DisableClock(kCLOCK_Lpuart5);
  245. CLOCK_DisableClock(kCLOCK_Lpuart6);
  246. CLOCK_DisableClock(kCLOCK_Lpuart7);
  247. CLOCK_DisableClock(kCLOCK_Lpuart8);
  248. /* Set UART_CLK_PODF. */
  249. CLOCK_SetDiv(kCLOCK_UartDiv, 0);
  250. /* Set Uart clock source. */
  251. CLOCK_SetMux(kCLOCK_UartMux, 0);
  252. /* Disable SPDIF clock gate. */
  253. CLOCK_DisableClock(kCLOCK_Spdif);
  254. /* Set SPDIF0_CLK_PRED. */
  255. CLOCK_SetDiv(kCLOCK_Spdif0PreDiv, 1);
  256. /* Set SPDIF0_CLK_PODF. */
  257. CLOCK_SetDiv(kCLOCK_Spdif0Div, 7);
  258. /* Set Spdif clock source. */
  259. CLOCK_SetMux(kCLOCK_SpdifMux, 3);
  260. /* Disable Flexio1 clock gate. */
  261. CLOCK_DisableClock(kCLOCK_Flexio1);
  262. /* Set FLEXIO1_CLK_PRED. */
  263. CLOCK_SetDiv(kCLOCK_Flexio1PreDiv, 1);
  264. /* Set FLEXIO1_CLK_PODF. */
  265. CLOCK_SetDiv(kCLOCK_Flexio1Div, 7);
  266. /* Set Flexio1 clock source. */
  267. CLOCK_SetMux(kCLOCK_Flexio1Mux, 3);
  268. /* Set Pll3 sw clock source. */
  269. CLOCK_SetMux(kCLOCK_Pll3SwMux, 0);
  270. /* In SDK projects, SDRAM (configured by SEMC) will be initialized in either debug script or dcd.
  271. * With this macro SKIP_SYSCLK_INIT, system pll (selected to be SEMC source clock in SDK projects) will be left unchanged.
  272. * Note: If another clock source is selected for SEMC, user may want to avoid changing that clock as well.*/
  273. #ifndef SKIP_SYSCLK_INIT
  274. #if defined(XIP_BOOT_HEADER_DCD_ENABLE) && (XIP_BOOT_HEADER_DCD_ENABLE == 1)
  275. #warning "SKIP_SYSCLK_INIT should be defined to keep system pll (selected to be SEMC source clock in SDK projects) unchanged."
  276. #endif
  277. /* Init System PLL. */
  278. CLOCK_InitSysPll(&sysPllConfig_BOARD_BootClockRUN);
  279. /* Init System pfd0. */
  280. CLOCK_InitSysPfd(kCLOCK_Pfd0, 27);
  281. /* Init System pfd1. */
  282. CLOCK_InitSysPfd(kCLOCK_Pfd1, 16);
  283. /* Init System pfd2. */
  284. CLOCK_InitSysPfd(kCLOCK_Pfd2, 24);
  285. /* Init System pfd3. */
  286. CLOCK_InitSysPfd(kCLOCK_Pfd3, 16);
  287. /* Bypass System PLL. */
  288. CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllSys, 1);
  289. #endif
  290. /* In SDK projects, external flash (configured by FLEXSPI) will be initialized by dcd.
  291. * With this macro XIP_EXTERNAL_FLASH, usb1 pll (selected to be FLEXSPI clock source in SDK projects) will be left unchanged.
  292. * Note: If another clock source is selected for FLEXSPI, user may want to avoid changing that clock as well.*/
  293. #if !(defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1))
  294. /* DeInit Usb1 PLL. */
  295. CLOCK_DeinitUsb1Pll();
  296. /* Bypass Usb1 PLL. */
  297. CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllUsb1, 1);
  298. /* Enable Usb1 PLL output. */
  299. CCM_ANALOG->PLL_USB1 |= CCM_ANALOG_PLL_USB1_ENABLE_MASK;
  300. #endif
  301. /* DeInit Audio PLL. */
  302. CLOCK_DeinitAudioPll();
  303. /* Bypass Audio PLL. */
  304. CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllAudio, 1);
  305. /* Set divider for Audio PLL. */
  306. CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_LSB_MASK;
  307. CCM_ANALOG->MISC2 &= ~CCM_ANALOG_MISC2_AUDIO_DIV_MSB_MASK;
  308. /* Enable Audio PLL output. */
  309. CCM_ANALOG->PLL_AUDIO |= CCM_ANALOG_PLL_AUDIO_ENABLE_MASK;
  310. /* Init Enet PLL. */
  311. CLOCK_InitEnetPll(&enetPllConfig_BOARD_BootClockRUN);
  312. /* Bypass Enet PLL. */
  313. CLOCK_SetPllBypass(CCM_ANALOG, kCLOCK_PllEnet, 1);
  314. /* Set preperiph clock source. */
  315. CLOCK_SetMux(kCLOCK_PrePeriphMux, 2);
  316. /* Set periph clock source. */
  317. CLOCK_SetMux(kCLOCK_PeriphMux, 0);
  318. /* Set periph clock2 clock source. */
  319. CLOCK_SetMux(kCLOCK_PeriphClk2Mux, 0);
  320. /* Set per clock source. */
  321. CLOCK_SetMux(kCLOCK_PerclkMux, 0);
  322. /* Set clock out1 divider. */
  323. CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_DIV_MASK)) | CCM_CCOSR_CLKO1_DIV(0);
  324. /* Set clock out1 source. */
  325. CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO1_SEL_MASK)) | CCM_CCOSR_CLKO1_SEL(1);
  326. /* Set clock out2 divider. */
  327. CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO2_DIV_MASK)) | CCM_CCOSR_CLKO2_DIV(0);
  328. /* Set clock out2 source. */
  329. CCM->CCOSR = (CCM->CCOSR & (~CCM_CCOSR_CLKO2_SEL_MASK)) | CCM_CCOSR_CLKO2_SEL(3);
  330. /* Set clock out1 drives clock out1. */
  331. CCM->CCOSR &= ~CCM_CCOSR_CLK_OUT_SEL_MASK;
  332. /* Disable clock out1. */
  333. CCM->CCOSR &= ~CCM_CCOSR_CLKO1_EN_MASK;
  334. /* Disable clock out2. */
  335. CCM->CCOSR &= ~CCM_CCOSR_CLKO2_EN_MASK;
  336. /* Set SAI1 MCLK1 clock source. */
  337. IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI1MClk1Sel, 0);
  338. /* Set SAI1 MCLK2 clock source. */
  339. IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI1MClk2Sel, 0);
  340. /* Set SAI1 MCLK3 clock source. */
  341. IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI1MClk3Sel, 0);
  342. /* Set SAI2 MCLK3 clock source. */
  343. IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI2MClk3Sel, 0);
  344. /* Set SAI3 MCLK3 clock source. */
  345. IOMUXC_SetSaiMClkClockSource(IOMUXC_GPR, kIOMUXC_GPR_SAI3MClk3Sel, 0);
  346. /* Set MQS configuration. */
  347. IOMUXC_MQSConfig(IOMUXC_GPR,kIOMUXC_MqsPwmOverSampleRate32, 0);
  348. /* Set ENET Ref clock source. */
  349. IOMUXC_GPR->GPR1 &= ~IOMUXC_GPR_GPR1_ENET_REF_CLK_DIR_MASK;
  350. /* Set GPT1 High frequency reference clock source. */
  351. IOMUXC_GPR->GPR5 &= ~IOMUXC_GPR_GPR5_VREF_1M_CLK_GPT1_MASK;
  352. /* Set GPT2 High frequency reference clock source. */
  353. IOMUXC_GPR->GPR5 &= ~IOMUXC_GPR_GPR5_VREF_1M_CLK_GPT2_MASK;
  354. /* Set SystemCoreClock variable. */
  355. SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK;
  356. }