/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_SetSimConfigration * Description : This funtion sets the SIM registers for clock transitiom. * *END**************************************************************************/ void CLOCK_SYS_SetSimConfigration(sim_config_t const *simConfig) { CLOCK_HAL_SetOutDiv(SIM, simConfig->outdiv1, 0U, 0U, simConfig->outdiv4); CLOCK_HAL_SetExternalRefClock32kSrc(SIM, simConfig->er32kSrc); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_SetSimConfigration * Description : This funtion sets the SIM registers for clock transitiom. * *END**************************************************************************/ static void CLOCK_SYS_SetSimConfigration(sim_config_t const *simConfig) { CLOCK_HAL_SetOutDiv(SIM_BASE, simConfig->outdiv1, simConfig->outdiv2, simConfig->outdiv3, simConfig->outdiv4); CLOCK_HAL_SetPllfllSel(SIM_BASE, simConfig->PllFllSel); CLOCK_HAL_SetExternalRefClock32kSrc(SIM_BASE, simConfig->er32kSrc); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_SetSimConfigration * Description : This funtion sets the SIM registers for clock transitiom. * *END**************************************************************************/ void CLOCK_SYS_SetSimConfigration(sim_config_t const *simConfig) { CLOCK_HAL_SetOutDiv(SIM, simConfig->outdiv1, 0U, 0U, simConfig->outdiv4); #if FSL_FEATURE_MCG_HAS_PLL_FLL_SELECTION CLOCK_HAL_SetPllfllSel(SIM, simConfig->pllFllSel); #endif CLOCK_HAL_SetExternalRefClock32kSrc(SIM, simConfig->er32kSrc); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_SetConfiguration * Description : This funtion sets the system to target configuration, it * only sets the clock modules registers for clock mode change, but not send * notifications to drivers. * *END**************************************************************************/ clock_manager_error_code_t CLOCK_SYS_SetConfiguration(clock_manager_user_config_t const* config) { assert(NULL != config); /* Set outdiv for safe output clock frequency. */ CLOCK_HAL_SetOutDiv(SIM_BASE, 0U, 1U, 1U, 4U); /* Set MCG mode. */ CLOCK_SYS_SetMcgMode(&config->mcgConfig, CLOCK_SYS_FllStableDelay); /* Set SIM setting. */ CLOCK_SYS_SetSimConfigration(&config->simConfig); /* Set OSCERCLK setting. */ CLOCK_SYS_SetOscerConfigration(0, &config->oscerConfig); return kClockManagerSuccess; }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetFreq * Description : Internal function to get the frequency by clock name * This function will get/calculate the clock frequency based on clock name * and current configuration of clock generator. * *END**************************************************************************/ clock_manager_error_code_t CLOCK_SYS_SetConfiguration(clock_manager_user_config_t const* config) { assert(NULL != config); /* Set outdiv for safe output clock frequency. */ CLOCK_HAL_SetOutDiv(SIM, 2U, 0U, 0U, 5U); /* Set MCG mode. */ CLOCK_SYS_SetMcgMode(&config->mcgConfig); /* Set SIM setting. */ CLOCK_SYS_SetSimConfigration(&config->simConfig); /* Set OSCERCLK setting. */ CLOCK_SYS_SetOscerConfigration(0, &config->oscerConfig); SystemCoreClock = CLOCK_SYS_GetCoreClockFreq(); return kClockManagerSuccess; }