rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions | Variables
fsl_clock.c File Reference

Functions

static uint32_t CLOCK_GetSysPllCommonFreq (void)
 Get the common System PLL frequency for both RAW SPLL output and SPLL PFD output.
 
uint32_t CLOCK_GetErClkFreq (void)
 Get the external reference clock frequency (ERCLK).
 
uint32_t CLOCK_GetOsc32kClkFreq (void)
 Get the OSC 32K clock frequency (OSC32KCLK).
 
uint32_t CLOCK_GetFlashClkFreq (void)
 Get the flash clock frequency.
 
uint32_t CLOCK_GetBusClkFreq (void)
 Get the bus clock frequency.
 
uint32_t CLOCK_GetCoreSysClkFreq (void)
 Get the core clock or system clock frequency.
 
uint32_t CLOCK_GetFreq (clock_name_t clockName)
 Gets the clock frequency for a specific clock name.
 
uint32_t CLOCK_GetIpFreq (clock_ip_name_t name)
 Gets the clock frequency for a specific IP module.
 
void OSC32_Init (OSC32_Type *base, osc32_mode_t mode)
 Initializes OSC32.
 
void OSC32_Deinit (OSC32_Type *base)
 Deinitializes OSC32.
 
uint32_t CLOCK_GetSysClkFreq (scg_sys_clk_t type)
 Gets the SCG system clock frequency.
 
status_t CLOCK_InitSysOsc (const scg_sosc_config_t *config)
 Initializes the SCG system OSC.
 
status_t CLOCK_DeinitSysOsc (void)
 De-initializes the SCG system OSC.
 
uint32_t CLOCK_GetSysOscFreq (void)
 Gets the SCG system OSC clock frequency (SYSOSC).
 
uint32_t CLOCK_GetSysOscAsyncFreq (scg_async_clk_t type)
 Gets the SCG asynchronous clock frequency from the system OSC.
 
status_t CLOCK_InitSirc (const scg_sirc_config_t *config)
 Initializes the SCG slow IRC clock.
 
status_t CLOCK_DeinitSirc (void)
 De-initializes the SCG slow IRC.
 
uint32_t CLOCK_GetSircFreq (void)
 Gets the SCG SIRC clock frequency.
 
uint32_t CLOCK_GetSircAsyncFreq (scg_async_clk_t type)
 Gets the SCG asynchronous clock frequency from the SIRC.
 
status_t CLOCK_InitFirc (const scg_firc_config_t *config)
 Initializes the SCG fast IRC clock.
 
status_t CLOCK_DeinitFirc (void)
 De-initializes the SCG fast IRC.
 
uint32_t CLOCK_GetFircFreq (void)
 Gets the SCG FIRC clock frequency.
 
uint32_t CLOCK_GetFircAsyncFreq (scg_async_clk_t type)
 Gets the SCG asynchronous clock frequency from the FIRC.
 
uint32_t CLOCK_GetSysPllMultDiv (uint32_t refFreq, uint32_t desireFreq, uint8_t *mult, uint8_t *prediv)
 Calculates the MULT and PREDIV for the PLL.
 
status_t CLOCK_InitSysPll (const scg_spll_config_t *config)
 Initializes the SCG system PLL.
 
status_t CLOCK_DeinitSysPll (void)
 De-initializes the SCG system PLL.
 
uint32_t CLOCK_GetSysPllFreq (void)
 Gets the SCG system PLL clock frequency.
 
uint32_t CLOCK_GetSysPllAsyncFreq (scg_async_clk_t type)
 Gets the SCG asynchronous clock frequency from the system PLL.
 

Variables

volatile uint32_t g_xtal0Freq
 External XTAL0 (OSC0/SYSOSC) clock frequency.
 
volatile uint32_t g_xtal32Freq
 External XTAL32/EXTAL32 clock frequency.
 

Function Documentation

◆ CLOCK_GetSysPllCommonFreq()

static uint32_t CLOCK_GetSysPllCommonFreq ( void  )
static

Get the common System PLL frequency for both RAW SPLL output and SPLL PFD output.

The "raw" SPLL output is the clkout divided by postdiv1-2 of SAPLL. The "common" System PLL frequency is the common part for both RAW SPLL and SPLL PFD output. That is the frequency calculated based on the clock source which passes through POSTDIV & MULT. "Common" SPLL Frequency = Divided Reference Frequency * MULT

Returns
Clock frequency; If the clock is invalid, returns 0.

Definition at line 1053 of file fsl_clock.c.

1054{
1055 uint32_t freq = 0U;
1056
1057 if (SCG->SPLLCFG & SCG_SPLLCFG_SOURCE_MASK) /* If use FIRC */
1058 {
1059 freq = CLOCK_GetFircFreq();
1060 }
1061 else /* Use System OSC. */
1062 {
1063 freq = CLOCK_GetSysOscFreq();
1064 }
1065
1066 if (freq) /* If source is valid. */
1067 {
1068 freq /= (SCG_SPLLCFG_PREDIV_VAL + SCG_SPLL_PREDIV_BASE_VALUE); /* Pre-divider. */
1069 freq *= (SCG_SPLLCFG_MULT_VAL + SCG_SPLL_MULT_BASE_VALUE); /* Multiplier. */
1070 }
1071
1072 return freq;
1073}
uint32_t CLOCK_GetFircFreq(void)
Gets the SCG FIRC clock frequency.
Definition fsl_clock.c:781
uint32_t CLOCK_GetSysOscFreq(void)
Gets the SCG system OSC clock frequency (SYSOSC).
Definition fsl_clock.c:494

Referenced by CLOCK_GetSysPllFreq().

Here is the call graph for this function:
Here is the caller graph for this function:

Go to the source code of this file.