clock_manager_error_code_t CLOCK_SYS_GetFreq(clock_names_t clockName, uint32_t *frequency) { clock_manager_error_code_t returnCode = kClockManagerSuccess; switch (clockName) { case kCoreClock: case kSystemClock: *frequency = CLOCK_SYS_GetCoreClockFreq(); break; case kPlatformClock: *frequency = CLOCK_SYS_GetSystemClockFreq(); break; case kBusClock: *frequency = CLOCK_SYS_GetBusClockFreq(); break; case kFlexBusClock: *frequency = CLOCK_SYS_GetFlexbusFreq(); break; case kFlashClock: *frequency = CLOCK_SYS_GetFlashClockFreq(); break; case kOsc32kClock: *frequency = CLOCK_SYS_GetExternalRefClock32kFreq(); break; case kOsc0ErClock: *frequency = CLOCK_SYS_GetOsc0ExternalRefClockFreq(); break; case kRtcoutClock: *frequency = CLOCK_SYS_GetRtcOutFreq(); break; case kMcgFfClock: *frequency = CLOCK_SYS_GetFixedFreqClockFreq(); break; case kMcgFllClock: *frequency = CLOCK_HAL_GetFllClk(MCG_BASE); break; case kMcgPll0Clock: *frequency = CLOCK_HAL_GetPll0Clk(MCG_BASE); break; case kMcgOutClock: *frequency = CLOCK_HAL_GetOutClk(MCG_BASE); break; case kMcgIrClock: *frequency = CLOCK_HAL_GetInternalRefClk(MCG_BASE); break; case kLpoClock: *frequency = CLOCK_SYS_GetLpoClockFreq(); break; default: *frequency = 0U; returnCode = kClockManagerNoSuchClockName; break; } return returnCode; }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetTraceFreq * Description : Gets debug trace clock frequency. * This function gets the debug trace clock frequency. * *END**************************************************************************/ uint32_t CLOCK_SYS_GetTraceFreq(uint32_t instance) { clock_trace_src_t src = CLOCK_HAL_GetTraceClkSrc(SIM); if (kClockTraceSrcMcgoutClk == src) { return CLOCK_HAL_GetOutClk(MCG); } else { return CLOCK_SYS_GetCoreClockFreq(); } }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetSystemClockFreq * Description : Gets the systen clock frequency. * This function gets the systen clock frequency. * *END**************************************************************************/ uint32_t CLOCK_SYS_GetSystemClockFreq(void) { return CLOCK_HAL_GetOutClk(MCG) / (CLOCK_HAL_GetOutDiv1(SIM) + 1); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetFlashClockFreq * Description : Gets the flash clock frequency. * This function gets the flash clock frequency. * *END**************************************************************************/ uint32_t CLOCK_SYS_GetFlashClockFreq(void) { return CLOCK_HAL_GetOutClk(MCG) / (CLOCK_HAL_GetOutDiv4(SIM) + 1); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetFlexbusFreq * Description : Gets the clock frequency for FLEXBUS module * This function gets the clock frequency for FLEXBUS module. * *END**************************************************************************/ uint32_t CLOCK_SYS_GetFlexbusFreq(void) { return CLOCK_HAL_GetOutClk(MCG_BASE) / (CLOCK_HAL_GetOutDiv3(SIM_BASE) + 1); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetBusClockFreq * Description : Gets the bus clock frequency. * This function gets the bus clock frequency. * *END**************************************************************************/ uint32_t CLOCK_SYS_GetBusClockFreq(void) { return CLOCK_HAL_GetOutClk(MCG_BASE) / (CLOCK_HAL_GetOutDiv2(SIM_BASE) + 1); }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetBusClockFreq * Description : Gets the bus clock frequency. * This function gets the bus clock frequency. * *END**************************************************************************/ uint32_t CLOCK_SYS_GetBusClockFreq(void) { return CLOCK_HAL_GetOutClk(MCG) / ((CLOCK_HAL_GetOutDiv1(SIM) + 1) *(CLOCK_HAL_GetOutDiv4(SIM) + 1)); }