63 static void CLOCK_CONFIG_FircSafeConfig(
const scg_firc_config_t *fircConfig)
65 scg_sys_clk_config_t curConfig;
66 const scg_sirc_config_t scgSircConfig = {.enableMode = kSCG_SircEnable,
67 .div1 = kSCG_AsyncClkDisable,
68 .div2 = kSCG_AsyncClkDivBy2,
69 .range = kSCG_SircRangeHigh};
70 scg_sys_clk_config_t sysClkSafeConfigSource = {
71 .divSlow = kSCG_SysClkDivBy4,
72 .divCore = kSCG_SysClkDivBy1,
73 .src = kSCG_SysClkSrcSirc
76 CLOCK_InitSirc(&scgSircConfig);
78 CLOCK_SetRunModeSysClkConfig(&sysClkSafeConfigSource);
82 CLOCK_GetCurSysClkConfig(&curConfig);
83 }
while (curConfig.src != sysClkSafeConfigSource.src);
86 CLOCK_InitFirc(fircConfig);
88 sysClkSafeConfigSource.src = kSCG_SysClkSrcFirc;
89 CLOCK_SetRunModeSysClkConfig(&sysClkSafeConfigSource);
93 CLOCK_GetCurSysClkConfig(&curConfig);
94 }
while (curConfig.src != sysClkSafeConfigSource.src);
143 .divSlow = kSCG_SysClkDivBy3,
144 .divCore = kSCG_SysClkDivBy1,
145 .src = kSCG_SysClkSrcLpFll,
150 .enableMode = kSCG_SysOscEnable | kSCG_SysOscEnableInLowPower,
151 .monitorMode = kSCG_SysOscMonitorDisable,
152 .div2 = kSCG_AsyncClkDivBy1,
153 .workMode = kSCG_SysOscModeOscLowPower,
157 .enableMode = kSCG_SircEnable,
158 .div2 = kSCG_AsyncClkDivBy2,
159 .range = kSCG_SircRangeHigh,
163 .enableMode = kSCG_FircEnable,
164 .div2 = kSCG_AsyncClkDivBy1,
165 .range = kSCG_FircRange48M,
170 .enableMode = kSCG_LpFllEnable,
171 .div2 = kSCG_AsyncClkDivBy2,
172 .range = kSCG_LpFllRange72M,
180 scg_sys_clk_config_t curConfig;
183 CLOCK_InitSysOsc(&g_scgSysOscConfig_BOARD_BootClockRUN);
185 CLOCK_SetXtal0Freq(g_scgSysOscConfig_BOARD_BootClockRUN.freq);
187 CLOCK_CONFIG_FircSafeConfig(&g_scgFircConfig_BOARD_BootClockRUN);
189 CLOCK_InitSirc(&g_scgSircConfig_BOARD_BootClockRUN);
191 CLOCK_InitLpFll(&g_scgLpFllConfig_BOARD_BootClockRUN);
193 CLOCK_SetRunModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockRUN);
197 CLOCK_GetCurSysClkConfig(&curConfig);
198 }
while (curConfig.src != g_sysClkConfig_BOARD_BootClockRUN.src);
247 .divSlow = kSCG_SysClkDivBy4,
248 .divCore = kSCG_SysClkDivBy2,
249 .src = kSCG_SysClkSrcSysOsc,
254 .enableMode = kSCG_SysOscEnable | kSCG_SysOscEnableInLowPower,
255 .monitorMode = kSCG_SysOscMonitorDisable,
256 .div2 = kSCG_AsyncClkDivBy1,
257 .workMode = kSCG_SysOscModeOscLowPower,
261 .enableMode = kSCG_SircEnable,
262 .div2 = kSCG_AsyncClkDivBy2,
263 .range = kSCG_SircRangeHigh,
267 .enableMode = kSCG_FircEnable,
268 .div2 = kSCG_AsyncClkDivBy1,
269 .range = kSCG_FircRange48M,
274 .enableMode = kSCG_LpFllEnable,
275 .div2 = kSCG_AsyncClkDivBy2,
276 .range = kSCG_LpFllRange72M,
285 CLOCK_InitSysOsc(&g_scgSysOscConfig_BOARD_BootClockVLPR);
287 CLOCK_SetXtal0Freq(g_scgSysOscConfig_BOARD_BootClockVLPR.freq);
289 CLOCK_SetVlprModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockVLPR);
291 SMC_SetPowerModeProtection(
SMC, kSMC_AllowPowerModeAll);
294 while (SMC_GetPowerModeState(
SMC) != kSMC_PowerStateVlpr)
const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockRUN
SIRC set for BOARD_BootClockRUN configuration.
const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockRUN
SCG set for BOARD_BootClockRUN configuration.
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.
status_t SMC_SetPowerModeVlpr(void *arg)
Configures the system to VLPR power mode. API name used from Kinetis family to maintain compatibility...
const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockRUN
System OSC set for BOARD_BootClockRUN configuration.
const scg_firc_config_t g_scgFircConfig_BOARD_BootClockVLPR
const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockVLPR
System OSC set for BOARD_BootClockVLPR configuration.
const scg_firc_config_t g_scgFircConfig_BOARD_BootClockRUN
void BOARD_BootClockRUN(void)
This function executes configuration of clocks.
#define BOARD_BOOTCLOCKVLPR_CORE_CLOCK
const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockVLPR
const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockVLPR
SIRC set for BOARD_BootClockVLPR configuration.
const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockRUN
#define BOARD_BOOTCLOCKRUN_CORE_CLOCK