89 static void CLOCK_CONFIG_FircSafeConfig(
const scg_firc_config_t *fircConfig)
91 scg_sys_clk_config_t curConfig;
92 const scg_sirc_config_t scgSircConfig = {.enableMode = kSCG_SircEnable,
93 .div1 = kSCG_AsyncClkDisable,
94 .div2 = kSCG_AsyncClkDivBy2,
95 .range = kSCG_SircRangeHigh};
96 scg_sys_clk_config_t sysClkSafeConfigSource = {
97 .divSlow = kSCG_SysClkDivBy4,
98 .divCore = kSCG_SysClkDivBy1,
99 .src = kSCG_SysClkSrcSirc
102 CLOCK_InitSirc(&scgSircConfig);
104 CLOCK_SetRunModeSysClkConfig(&sysClkSafeConfigSource);
108 CLOCK_GetCurSysClkConfig(&curConfig);
109 }
while (curConfig.src != sysClkSafeConfigSource.src);
112 CLOCK_InitFirc(fircConfig);
114 sysClkSafeConfigSource.src = kSCG_SysClkSrcFirc;
115 CLOCK_SetRunModeSysClkConfig(&sysClkSafeConfigSource);
119 CLOCK_GetCurSysClkConfig(&curConfig);
120 }
while (curConfig.src != sysClkSafeConfigSource.src);
169 .divSlow = kSCG_SysClkDivBy3,
170 .divCore = kSCG_SysClkDivBy1,
171 .src = kSCG_SysClkSrcLpFll,
176 .enableMode = kSCG_SysOscEnable | kSCG_SysOscEnableInLowPower,
177 .monitorMode = kSCG_SysOscMonitorDisable,
178 .div2 = kSCG_AsyncClkDivBy1,
179 .workMode = kSCG_SysOscModeOscLowPower,
183 .enableMode = kSCG_SircEnable,
184 .div2 = kSCG_AsyncClkDivBy2,
185 .range = kSCG_SircRangeHigh,
189 .enableMode = kSCG_FircEnable,
190 .div2 = kSCG_AsyncClkDivBy1,
191 .range = kSCG_FircRange48M,
196 .enableMode = kSCG_LpFllEnable,
197 .div2 = kSCG_AsyncClkDivBy2,
198 .range = kSCG_LpFllRange72M,
206 scg_sys_clk_config_t curConfig;
209 CLOCK_InitSysOsc(&g_scgSysOscConfig_BOARD_BootClockRUN);
211 CLOCK_SetXtal0Freq(g_scgSysOscConfig_BOARD_BootClockRUN.freq);
213 CLOCK_CONFIG_FircSafeConfig(&g_scgFircConfig_BOARD_BootClockRUN);
215 CLOCK_InitSirc(&g_scgSircConfig_BOARD_BootClockRUN);
217 CLOCK_InitLpFll(&g_scgLpFllConfig_BOARD_BootClockRUN);
219 CLOCK_SetRunModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockRUN);
223 CLOCK_GetCurSysClkConfig(&curConfig);
224 }
while (curConfig.src != g_sysClkConfig_BOARD_BootClockRUN.src);
273 .divSlow = kSCG_SysClkDivBy4,
274 .divCore = kSCG_SysClkDivBy2,
275 .src = kSCG_SysClkSrcSysOsc,
280 .enableMode = kSCG_SysOscEnable | kSCG_SysOscEnableInLowPower,
281 .monitorMode = kSCG_SysOscMonitorDisable,
282 .div2 = kSCG_AsyncClkDivBy1,
283 .workMode = kSCG_SysOscModeOscLowPower,
287 .enableMode = kSCG_SircEnable,
288 .div2 = kSCG_AsyncClkDivBy2,
289 .range = kSCG_SircRangeHigh,
293 .enableMode = kSCG_FircEnable,
294 .div2 = kSCG_AsyncClkDivBy1,
295 .range = kSCG_FircRange48M,
300 .enableMode = kSCG_LpFllEnable,
301 .div2 = kSCG_AsyncClkDivBy2,
302 .range = kSCG_LpFllRange72M,
311 CLOCK_InitSysOsc(&g_scgSysOscConfig_BOARD_BootClockVLPR);
313 CLOCK_SetXtal0Freq(g_scgSysOscConfig_BOARD_BootClockVLPR.freq);
315 CLOCK_SetVlprModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockVLPR);
317 SMC_SetPowerModeProtection(
SMC, kSMC_AllowPowerModeAll);
319 SMC_SetPowerModeVlpr(
SMC);
320 while (SMC_GetPowerModeState(
SMC) != kSMC_PowerStateVlpr)
void BOARD_BootClockRUN(void)
This function executes configuration of clocks.
const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockVLPR
const scg_firc_config_t g_scgFircConfig_BOARD_BootClockVLPR
const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockVLPR
SCG set for BOARD_BootClockVLPR configuration.
void BOARD_BootClockVLPR(void)
This function executes configuration of clocks.
const scg_firc_config_t g_scgFircConfig_BOARD_BootClockRUN
const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockRUN
SIRC set for BOARD_BootClockRUN configuration.
#define BOARD_BOOTCLOCKVLPR_CORE_CLOCK
const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockRUN
System OSC set for BOARD_BootClockRUN configuration.
const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockRUN
#define BOARD_BOOTCLOCKRUN_CORE_CLOCK
const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockVLPR
SIRC set for BOARD_BootClockVLPR configuration.
const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockVLPR
System OSC set for BOARD_BootClockVLPR configuration.
const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockRUN
SCG set for BOARD_BootClockRUN configuration.