MCUXpresso SDK API Reference Manual  Rev 2.12.1
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
CLOCK: Clock Driver

Overview

Macros

#define FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL   0
 Configure whether driver controls clock. More...
 
#define FSL_CLOCK_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))
 CLOCK driver version. More...
 
#define SPI_CLOCKS
 Clock ip name array for SPI. More...
 
#define I2C_CLOCKS
 Clock ip name array for I2C. More...
 
#define GPDMA_CLOCKS
 Clock ip name array for GPDMA. More...
 
#define LPUART_CLOCKS
 Clock ip name array for LPUART. More...
 
#define SCT_CLOCKS
 Clock ip name array for SCTimer.
 

Enumerations

enum  clock_name_t { kCLOCK_CoreSysClk }
 Clock name used to get clock frequency. More...
 
enum  clock_ip_name_t {
  kCLOCK_Timer = E_PN76_PCRM_TIMERS_CLK,
  kCLOCK_Hostif = E_PN76_PCRM_HOSTIF_CLK,
  kCLOCK_Usb = E_PN76_PCRM_USB_CLK,
  kCLOCK_Spi = E_PN76_PCRM_SPIM_CLK,
  kCLOCK_I2c = E_PN76_PCRM_I2CM_CLK,
  kCLOCK_Ct = E_PN76_PCRM_CT_CLK,
  kCLOCK_Gpdma = E_PN76_PCRM_DMA_CLK,
  kCLOCK_Sct = E_PN76_PCRM_PWM_CLK,
  kCLOCK_SctSrc45M = E_PN76_PCRM_PWM_45M_CLK,
  kCLOCK_IpInvalid = 127
}
 Peripheral clock name difinition used for clock gate. More...
 
enum  clock_usb_pll_src_t {
  kCLOCK_UsbPllSrcXtal = 0,
  kCLOCK_UsbPllSrcClifPll
}
 Enum for selection of the USB PLL reference clock. More...
 
enum  clock_lpuart_src_t {
  kCLOCK_LpuartSrcHfo = E_PN76_PCRM_LP_UART_CLK,
  kCLOCK_LpuartSrcXtal = E_PN76_PCRM_LP_UART_XTAL_CLK
}
 LPUART clock source. More...
 

Functions

static void CLOCK_InitClockGeneration (void)
 Performs Clock Module Initialization. More...
 
uint32_t CLOCK_GetFreq (clock_name_t clockName)
 Gets the clock frequency for a specific clock name. More...
 
uint32_t CLOCK_GetCoreSysClkFreq (void)
 Get the core clock or system clock frequency. More...
 
uint32_t CLOCK_GetLpuartClkFreq (uint8_t instance)
 Get the LPUART clock frequency. More...
 
uint32_t CLOCK_GetSpiClkFreq (uint8_t instance)
 Get the SPIM clock frequency. More...
 
uint32_t CLOCK_GetI2cClkFreq (uint8_t instance)
 Get the I2CM clock frequency. More...
 
uint32_t CLOCK_GetSctClkFreq (uint8_t instance)
 Get the SCTimer clock frequency. More...
 
uint32_t CLOCK_GetGptClkFreq (uint8_t instance)
 Get the TIMERS(GPT) clock frequency. More...
 
uint32_t CLOCK_GetGpadcClkFreq (uint8_t instance)
 Get the GPADC clock frequency. More...
 
uint32_t CLOCK_GetCtClkFreq (uint8_t instance)
 Get the CT clock frequency. More...
 
uint32_t CLOCK_GetClifClkFreq (uint8_t instance)
 Get the CLIF clock frequency. More...
 
void CLOCK_SetLpuartClk (uint8_t instance, clock_lpuart_src_t src)
 Set the LPUART clock source. More...
 
static void CLOCK_EnableClock (clock_ip_name_t name)
 Enable the clock for specific IP. More...
 
static void CLOCK_DisableClock (clock_ip_name_t name)
 Disable the clock for specific IP. More...
 
static status_t CLOCK_SetUsbPllSource (clock_usb_pll_src_t source)
 Select the USB PLL Reference Clock Source. More...
 
static status_t CLOCK_StartUsbPll (void)
 This function enables the USB PLL and returns after the PLL is Locked. More...
 
status_t CLOCK_InitOsc (void)
 Start the Crystal oscillator (XTAL). More...
 
static void CLOCK_SwitchSystemClockToHfo (void)
 Switch system clock and CLIF clock to HFO. More...
 
status_t CLOCK_InitUsbPll (void)
 Initialize the USB PLL. More...
 

Macro Definition Documentation

#define FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL   0

When set to 0, peripheral drivers will enable clock in initialize function and disable clock in de-initialize function. When set to 1, peripheral driver will not control the clock, application could control the clock out of the driver.

Note
All drivers share this feature switcher. If it is set to 1, application should handle clock enable and disable for all drivers.
#define FSL_CLOCK_DRIVER_VERSION   (MAKE_VERSION(2, 0, 1))
#define SPI_CLOCKS
Value:
{ \
}
Definition: fsl_clock.h:108
#define I2C_CLOCKS
Value:
{ \
}
Definition: fsl_clock.h:109
#define GPDMA_CLOCKS
Value:
{ \
}
Definition: fsl_clock.h:111
#define LPUART_CLOCKS
Value:
{ \
}
Invalid IP clock.
Definition: fsl_clock.h:114

The clock is already enabled by calling CLOCK_SetLpuartClk.

Enumeration Type Documentation

Enumerator
kCLOCK_CoreSysClk 

Core/system clock.

Enumerator
kCLOCK_Timer 

TIMER CLOCK.

kCLOCK_Hostif 

HOST IF CLOCK.

kCLOCK_Usb 

USB IP CLOCK.

kCLOCK_Spi 

SPIM IP CLOCK

kCLOCK_I2c 

I2CM IP CLOCK

kCLOCK_Ct 

CT IP CLOCK

kCLOCK_Gpdma 

DMA IP CLOCK

kCLOCK_Sct 

PWM IP CLOCK

kCLOCK_SctSrc45M 

PWM 45MHz counter clock 0.

kCLOCK_IpInvalid 

Invalid IP clock.

Enumerator
kCLOCK_UsbPllSrcXtal 

27.12MHz XTAL clock

kCLOCK_UsbPllSrcClifPll 

27.12MHz CLIF PLL clock

Enumerator
kCLOCK_LpuartSrcHfo 

HFO 90M

kCLOCK_LpuartSrcXtal 

XTAL 27.12M

Function Documentation

static void CLOCK_InitClockGeneration ( void  )
inlinestatic

This function initialize XTAL, SYSTEM CLK (HFO) and also configures the clock to the CLIF Module as SYSTEM Clock till PLL is available/locked.

uint32_t CLOCK_GetFreq ( clock_name_t  clockName)

This function checks the current clock configurations and then calculates the clock frequency for a specific clock name defined in clock_name_t. The MCG must be properly configured before using this function.

Parameters
clockNameClock names defined in clock_name_t
Returns
Clock frequency value in Hertz
uint32_t CLOCK_GetCoreSysClkFreq ( void  )
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetLpuartClkFreq ( uint8_t  instance)
Parameters
instanceThe LPUART instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetSpiClkFreq ( uint8_t  instance)
Parameters
instanceThe SPIM instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetI2cClkFreq ( uint8_t  instance)
Parameters
instanceThe I2CM instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetSctClkFreq ( uint8_t  instance)
Parameters
instanceThe SCTimer instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetGptClkFreq ( uint8_t  instance)
Parameters
instanceThe peripheral instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetGpadcClkFreq ( uint8_t  instance)
Parameters
instanceThe peripheral instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetCtClkFreq ( uint8_t  instance)
Parameters
instanceThe peripheral instance.
Returns
Clock frequency in Hz.
uint32_t CLOCK_GetClifClkFreq ( uint8_t  instance)
Parameters
instanceThe peripheral instance.
Returns
Clock frequency in Hz.
void CLOCK_SetLpuartClk ( uint8_t  instance,
clock_lpuart_src_t  src 
)
Parameters
instanceThe LPUART instance.
srcThe LPUART clock source.
static void CLOCK_EnableClock ( clock_ip_name_t  name)
inlinestatic
Parameters
nameWhich clock to enable, see clock_ip_name_t.
static void CLOCK_DisableClock ( clock_ip_name_t  name)
inlinestatic
Parameters
nameWhich clock to disable, see clock_ip_name_t.
static status_t CLOCK_SetUsbPllSource ( clock_usb_pll_src_t  source)
inlinestatic
Parameters
sourceClock source for the USB PLL Reference Clock clock_usb_pll_src_t.
Return values
kStatus_SuccessOperation Successful
kStatus_InvalidArgumentInvalid parameter
static status_t CLOCK_StartUsbPll ( void  )
inlinestatic
Note
Pre-Requisite for this function is that USB PLL reference clock source should be selected and running.
Return values
kStatus_SuccessOperation Successful
kStatus_TimeoutOperation failed.
status_t CLOCK_InitOsc ( void  )
Note
This function should only be used when XTAL is used as the CLIF Clock source.
Returns
Returns kStatus_Success if succeed, otherwise returns kStatus_Fail.
static void CLOCK_SwitchSystemClockToHfo ( void  )
inlinestatic

This function is used to initialize the System clock to HFO and revert the CLIF Clock from XTAL/PLL to HFO before entering Standby/ULP Standby.

status_t CLOCK_InitUsbPll ( void  )

This function initializes the USB PLL to work, it tries to use XTAL clock as reference clock of USB PLL, if the XTAL is not available, then tries to use CLIF PLL as reference clock.

Returns
Return if succeed, otherwise return kStatus_Fail.