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

Overview

The MCUXpresso SDK provides APIs for MCUXpresso SDK devices' clock operation.

Files

file  fsl_clock.h
 

Data Structures

struct  clock_sys_pll_config_t
 PLL configuration for SYSPLL. More...
 
struct  clock_audio_pll_config_t
 PLL configuration for SYSPLL. More...
 
struct  clock_frg_clk_config_t
 PLL configuration for FRG. More...
 

Macros

#define MIPI_DSI_HOST_CLOCKS
 Clock ip name array for MIPI DSI. More...
 
#define LCDIF_CLOCKS
 Clock ip name array for LCDIF. More...
 
#define SCT_CLOCKS
 Clock ip name array for SCT. More...
 
#define USBD_CLOCKS
 Clock ip name array for USBD. More...
 
#define FLEXSPI_CLOCKS
 Clock ip name array for FlexSPI.
 
#define CACHE64_CLOCKS
 Clock ip name array for Cache64.
 
#define TRNG_CLOCKS
 Clock ip name array for RNG.
 
#define PUF_CLOCKS
 Clock ip name array for PUF.
 
#define HASHCRYPT_CLOCKS
 Clock ip name array for HashCrypt.
 
#define CASPER_CLOCKS
 Clock ip name array for Casper.
 
#define POWERQUAD_CLOCKS
 Clock ip name array for Powerquad.
 
#define LPADC_CLOCKS
 Clock ip name array for ADC. More...
 
#define CMP_CLOCKS
 Clock ip name array for ACMP. More...
 
#define USDHC_CLOCKS
 Clock ip name array for uSDHC.
 
#define WWDT_CLOCKS
 Clock ip name array for WWDT. More...
 
#define UTICK_CLOCKS
 Clock ip name array for UTICK. More...
 
#define FLEXIO_CLOCKS
 Clock ip name array for FlexIO. More...
 
#define OSTIMER_CLOCKS
 Clock ip name array for OSTimer.
 
#define FLEXCOMM_CLOCKS
 Clock ip name array for FLEXCOMM. More...
 
#define USART_CLOCKS
 Clock ip name array for LPUART. More...
 
#define I2C_CLOCKS
 Clock ip name array for I2C. More...
 
#define SPI_CLOCKS
 Clock ip name array for SPI. More...
 
#define I2S_CLOCKS
 Clock ip name array for FLEXI2S. More...
 
#define DMIC_CLOCKS
 Clock ip name array for DMIC. More...
 
#define SEMA42_CLOCKS
 Clock ip name array for SEMA.
 
#define MU_CLOCKS
 Clock ip name array for MUA.
 
#define DMA_CLOCKS
 Clock ip name array for DMA. More...
 
#define CRC_CLOCKS
 Clock ip name array for CRC. More...
 
#define GPIO_CLOCKS
 Clock ip name array for GPIO. More...
 
#define PINT_CLOCKS
 Clock ip name array for PINT. More...
 
#define I3C_CLOCKS
 Clock ip name array for I3C. More...
 
#define MRT_CLOCKS
 Clock ip name array for MRT. More...
 
#define RTC_CLOCKS
 Clock ip name array for RTC. More...
 
#define CTIMER_CLOCKS
 Clock ip name array for CT32B. More...
 
#define CLK_GATE_REG_OFFSET_SHIFT   8U
 Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. More...
 
#define SYSPLL0CLKSEL_OFFSET   0x200
 Clock Mux Switches The encoding is as follows each connection identified is 32bits wide starting from LSB upwards. More...
 

Enumerations

enum  clock_ip_name_t
 Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. More...
 
enum  clock_name_t {
  kCLOCK_CoreSysClk,
  kCLOCK_BusClk,
  kCLOCK_MclkClk,
  kCLOCK_ClockOutClk,
  kCLOCK_AdcClk,
  kCLOCK_Flexspi0Clk,
  kCLOCK_Flexspi1Clk,
  kCLOCK_SctClk,
  kCLOCK_Wdt0Clk,
  kCLOCK_Wdt1Clk,
  kCLOCK_SystickClk,
  kCLOCK_Sdio0Clk,
  kCLOCK_Sdio1Clk,
  kCLOCK_I3cClk,
  kCLOCK_UsbClk,
  kCLOCK_DmicClk,
  kCLOCK_DspCpuClk,
  kCLOCK_AcmpClk,
  kCLOCK_Flexcomm0Clk,
  kCLOCK_Flexcomm1Clk,
  kCLOCK_Flexcomm2Clk,
  kCLOCK_Flexcomm3Clk,
  kCLOCK_Flexcomm4Clk,
  kCLOCK_Flexcomm5Clk,
  kCLOCK_Flexcomm6Clk,
  kCLOCK_Flexcomm7Clk,
  kCLOCK_Flexcomm8Clk,
  kCLOCK_Flexcomm9Clk,
  kCLOCK_Flexcomm10Clk,
  kCLOCK_Flexcomm11Clk,
  kCLOCK_Flexcomm12Clk,
  kCLOCK_Flexcomm13Clk,
  kCLOCK_Flexcomm14Clk,
  kCLOCK_Flexcomm15Clk,
  kCLOCK_Flexcomm16Clk,
  kCLOCK_FlexioClk,
  kCLOCK_GpuClk,
  kCLOCK_DcPixelClk,
  kCLOCK_MipiDphyClk,
  kCLOCK_MipiDphyEscRxClk,
  kCLOCK_MipiDphyEscTxClk
}
 Clock name used to get clock frequency. More...
 
enum  clock_pfd_t {
  kCLOCK_Pfd0 = 0U,
  kCLOCK_Pfd1 = 1U,
  kCLOCK_Pfd2 = 2U,
  kCLOCK_Pfd3 = 3U
}
 
enum  sys_pll_src_t {
  kCLOCK_SysPllFro24MClk = 0,
  kCLOCK_SysPllXtalIn = 1,
  kCLOCK_SysPllNone = 7
}
 SysPLL Reference Input Clock Source. More...
 
enum  sys_pll_mult_t {
  kCLOCK_SysPllMult16 = 0,
  kCLOCK_SysPllMult17,
  kCLOCK_SysPllMult20,
  kCLOCK_SysPllMult22,
  kCLOCK_SysPllMult27,
  kCLOCK_SysPllMult33
}
 SysPLL Multiplication Factor. More...
 
enum  audio_pll_src_t {
  kCLOCK_AudioPllFro24MClk = 0,
  kCLOCK_AudioPllXtalIn = 1,
  kCLOCK_AudioPllNone = 7
}
 AudioPll Reference Input Clock Source. More...
 
enum  audio_pll_mult_t {
  kCLOCK_AudioPllMult16 = 0,
  kCLOCK_AudioPllMult17,
  kCLOCK_AudioPllMult20,
  kCLOCK_AudioPllMult22,
  kCLOCK_AudioPllMult27,
  kCLOCK_AudioPllMult33
}
 AudioPll Multiplication Factor. More...
 
enum  clock_fro_output_en_t
 FRO192M output enable.
 

Functions

void CLOCK_AttachClk (clock_attach_id_t connection)
 Configure the clock selection muxes. More...
 
void CLOCK_SetClkDiv (clock_div_name_t div_name, uint32_t divider)
 Setup peripheral clock dividers. More...
 
uint32_t CLOCK_GetFreq (clock_name_t clockName)
 Return Frequency of selected clock. More...
 
uint32_t CLOCK_GetFRGClock (uint32_t id)
 Return Input frequency for the Fractional baud rate generator. More...
 
void CLOCK_SetFRGClock (const clock_frg_clk_config_t *config)
 Set output of the Fractional baud rate generator. More...
 
uint32_t CLOCK_GetSysPllFreq (void)
 Return Frequency of SYSPLL. More...
 
uint32_t CLOCK_GetSysPfdFreq (clock_pfd_t pfd)
 Get current output frequency of specific System PLL PFD. More...
 
uint32_t CLOCK_GetAudioPllFreq (void)
 Return Frequency of AUDIO PLL. More...
 
uint32_t CLOCK_GetAudioPfdFreq (clock_pfd_t pfd)
 Get current output frequency of specific Audio PLL PFD. More...
 
uint32_t CLOCK_GetMainClkFreq (void)
 Return Frequency of main clk. More...
 
uint32_t CLOCK_GetDspMainClkFreq (void)
 Return Frequency of DSP main clk. More...
 
uint32_t CLOCK_GetAcmpClkFreq (void)
 Return Frequency of ACMP clk. More...
 
uint32_t CLOCK_GetDmicClkFreq (void)
 Return Frequency of DMIC clk. More...
 
uint32_t CLOCK_GetUsbClkFreq (void)
 Return Frequency of USB clk. More...
 
uint32_t CLOCK_GetSdioClkFreq (uint32_t id)
 Return Frequency of SDIO clk. More...
 
uint32_t CLOCK_GetI3cClkFreq (void)
 Return Frequency of I3C clk. More...
 
uint32_t CLOCK_GetSystickClkFreq (void)
 Return Frequency of systick clk. More...
 
uint32_t CLOCK_GetWdtClkFreq (uint32_t id)
 Return Frequency of WDT clk. More...
 
uint32_t CLOCK_GetMclkClkFreq (void)
 Return output Frequency of mclk. More...
 
uint32_t CLOCK_GetSctClkFreq (void)
 Return Frequency of sct. More...
 
void CLOCK_EnableSysOscClk (bool enable, bool enableLowPower, uint32_t delay_us)
 Enable/Disable sys osc clock from external crystal clock. More...
 
void CLOCK_EnableFroClk (uint32_t divOutEnable)
 Enable/Disable FRO192M clock output. More...
 
void CLOCK_EnableLpOscClk (void)
 Enable LPOSC 1MHz clock.
 
static uint32_t CLOCK_GetXtalInClkFreq (void)
 Return Frequency of sys osc Clock. More...
 
static uint32_t CLOCK_GetMclkInClkFreq (void)
 Return Frequency of MCLK Input Clock. More...
 
static uint32_t CLOCK_GetLpOscFreq (void)
 Return Frequency of Lower power osc. More...
 
static uint32_t CLOCK_GetOsc32KFreq (void)
 Return Frequency of 32kHz osc. More...
 
static void CLOCK_EnableOsc32K (bool enable)
 Enables and disables 32kHz osc. More...
 
static uint32_t CLOCK_GetWakeClk32KFreq (void)
 Return Frequency of 32khz wake clk. More...
 
static void CLOCK_SetXtalFreq (uint32_t freq)
 Set the XTALIN (system OSC) frequency based on board setting. More...
 
static void CLOCK_SetMclkFreq (uint32_t freq)
 Set the MCLK IN frequency based on board setting. More...
 
uint32_t CLOCK_GetFlexcommClkFreq (uint32_t id)
 Return Frequency of Flexcomm functional Clock. More...
 
uint32_t CLOCK_GetFlexioClkFreq (void)
 Return Frequency of Flexio functional Clock. More...
 
uint32_t CLOCK_GetCtimerClkFreq (uint32_t id)
 Return Frequency of Ctimer Clock. More...
 
uint32_t CLOCK_GetClockOutClkFreq (void)
 Return Frequency of ClockOut. More...
 
uint32_t CLOCK_GetAdcClkFreq (void)
 Return Frequency of Adc Clock. More...
 
uint32_t CLOCK_GetFlexspiClkFreq (uint32_t id)
 Return Frequency of FLEXSPI Clock. More...
 
uint32_t CLOCK_GetGpuClkFreq (void)
 Return Frequency of GPU functional Clock. More...
 
uint32_t CLOCK_GetDcPixelClkFreq (void)
 Return Frequency of DCNano Pixel functional Clock. More...
 
uint32_t CLOCK_GetMipiDphyClkFreq (void)
 Return Frequency of MIPI DPHY functional Clock. More...
 
uint32_t CLOCK_GetMipiDphyEscRxClkFreq (void)
 Return Frequency of MIPI DPHY Esc RX functional Clock. More...
 
uint32_t CLOCK_GetMipiDphyEscTxClkFreq (void)
 Return Frequency of MIPI DPHY Esc Tx functional Clock. More...
 
void CLOCK_InitSysPll (const clock_sys_pll_config_t *config)
 Initialize the System PLL. More...
 
static void CLOCK_DeinitSysPll (void)
 brief Deinit the System PLL. More...
 
void CLOCK_InitSysPfd (clock_pfd_t pfd, uint8_t divider)
 Initialize the System PLL PFD. More...
 
static void CLOCK_DeinitSysPfd (clock_pfd_t pfd)
 brief Disable the audio PLL PFD. More...
 
void CLOCK_InitAudioPll (const clock_audio_pll_config_t *config)
 Initialize the audio PLL. More...
 
static void CLOCK_DeinitAudioPll (void)
 brief Deinit the Audio PLL. More...
 
void CLOCK_InitAudioPfd (clock_pfd_t pfd, uint8_t divider)
 Initialize the audio PLL PFD. More...
 
static void CLOCK_DeinitAudioPfd (uint32_t pfd)
 brief Disable the audio PLL PFD. More...
 
void CLOCK_EnableFroTuning (bool enable)
 Enable/Disable FRO tuning. More...
 
void CLOCK_EnableUsbHs0DeviceClock (clock_attach_id_t src, uint8_t divider)
 Enable USB HS device clock. More...
 
void CLOCK_DisableUsbHs0DeviceClock (void)
 Disable USB HS device clock. More...
 
void CLOCK_EnableUsbHs0HostClock (clock_attach_id_t src, uint8_t divider)
 Enable USB HS host clock. More...
 
void CLOCK_DisableUsbHs0HostClock (void)
 Disable USB HS host clock. More...
 
bool CLOCK_EnableUsbHs0PhyPllClock (clock_attach_id_t src, uint32_t freq)
 brief Enable USB hs0PhyPll clock. More...
 
void CLOCK_DisableUsbHs0PhyPllClock (void)
 Disable USB hs0PhyPll clock. More...
 

Variables

volatile uint32_t g_xtalFreq
 External XTAL (SYSOSC) clock frequency. More...
 
volatile uint32_t g_mclkFreq
 External MCLK IN clock frequency. More...
 

Driver version

#define FSL_CLOCK_DRIVER_VERSION   (MAKE_VERSION(2, 3, 1))
 CLOCK driver version 2.3.1. More...
 

Data Structure Documentation

struct clock_sys_pll_config_t

Data Fields

sys_pll_src_t sys_pll_src
 Reference Input Clock Source.
 
uint32_t numerator
 30 bit numerator of fractional loop divider. More...
 
uint32_t denominator
 30 bit numerator of fractional loop divider. More...
 
sys_pll_mult_t sys_pll_mult
 Multiplication Factor.
 

Field Documentation

uint32_t clock_sys_pll_config_t::numerator
uint32_t clock_sys_pll_config_t::denominator
struct clock_audio_pll_config_t

Data Fields

audio_pll_src_t audio_pll_src
 Reference Input Clock Source.
 
uint32_t numerator
 30 bit numerator of fractional loop divider. More...
 
uint32_t denominator
 30 bit numerator of fractional loop divider. More...
 
audio_pll_mult_t audio_pll_mult
 Multiplication Factor.
 

Field Documentation

uint32_t clock_audio_pll_config_t::numerator
uint32_t clock_audio_pll_config_t::denominator
struct clock_frg_clk_config_t

Public Types

enum  {
  kCLOCK_FrgMainClk = 0,
  kCLOCK_FrgPllDiv,
  kCLOCK_FrgFro48M
}
 

Data Fields

uint8_t num
 FRG clock, [0 - 16]: Flexcomm, [17]: Flexio.
 
uint8_t divider
 Denominator of the fractional divider. More...
 
uint8_t mult
 Numerator of the fractional divider. More...
 

Member Enumeration Documentation

anonymous enum
Enumerator
kCLOCK_FrgMainClk 

Main System clock.

kCLOCK_FrgPllDiv 

Main pll clock divider.

kCLOCK_FrgFro48M 

48MHz FRO

Field Documentation

uint8_t clock_frg_clk_config_t::divider
uint8_t clock_frg_clk_config_t::mult

Macro Definition Documentation

#define FSL_CLOCK_DRIVER_VERSION   (MAKE_VERSION(2, 3, 1))
#define MIPI_DSI_HOST_CLOCKS
Value:
{ \
kCLOCK_MipiDsiCtrl \
}
#define LCDIF_CLOCKS
Value:
{ \
kCLOCK_DisplayCtrl \
}
#define SCT_CLOCKS
Value:
{ \
kCLOCK_Sct \
}
#define USBD_CLOCKS
Value:
{ \
kCLOCK_UsbhsDevice \
}
#define LPADC_CLOCKS
Value:
{ \
kCLOCK_Adc0 \
}
#define CMP_CLOCKS
Value:
{ \
kCLOCK_Acmp0 \
}
#define WWDT_CLOCKS
Value:
{ \
kCLOCK_Wwdt0, kCLOCK_Wwdt1 \
}
#define UTICK_CLOCKS
Value:
{ \
kCLOCK_Utick0 \
}
#define FLEXIO_CLOCKS
Value:
{ \
kCLOCK_Flexio \
}
#define FLEXCOMM_CLOCKS
Value:
{ \
kCLOCK_Flexcomm0, kCLOCK_Flexcomm1, kCLOCK_Flexcomm2, kCLOCK_Flexcomm3, kCLOCK_Flexcomm4, kCLOCK_Flexcomm5, \
kCLOCK_Flexcomm6, kCLOCK_Flexcomm7, kCLOCK_Flexcomm8, kCLOCK_Flexcomm9, kCLOCK_Flexcomm10, \
kCLOCK_Flexcomm11, kCLOCK_Flexcomm12, kCLOCK_Flexcomm13, kCLOCK_Flexcomm14, kCLOCK_Flexcomm15, \
kCLOCK_Flexcomm16 \
}
#define USART_CLOCKS
Value:
{ \
kCLOCK_Usart0, kCLOCK_Usart1, kCLOCK_Usart2, kCLOCK_Usart3, kCLOCK_Usart4, kCLOCK_Usart5, kCLOCK_Usart6, \
kCLOCK_Usart7, kCLOCK_Usart8, kCLOCK_Usart9, kCLOCK_Usart10, kCLOCK_Usart11, kCLOCK_Usart12, \
kCLOCK_Usart13 \
}
#define I2C_CLOCKS
Value:
{ \
kCLOCK_I2c0, kCLOCK_I2c1, kCLOCK_I2c2, kCLOCK_I2c3, kCLOCK_I2c4, kCLOCK_I2c5, kCLOCK_I2c6, kCLOCK_I2c7, \
kCLOCK_I2c8, kCLOCK_I2c9, kCLOCK_I2c10, kCLOCK_I2c11, kCLOCK_I2c12, kCLOCK_I2c13, kCLOCK_I2c15 \
}
#define SPI_CLOCKS
Value:
{ \
kCLOCK_Spi0, kCLOCK_Spi1, kCLOCK_Spi2, kCLOCK_Spi3, kCLOCK_Spi4, kCLOCK_Spi5, kCLOCK_Spi6, kCLOCK_Spi7, \
kCLOCK_Spi8, kCLOCK_Spi9, kCLOCK_Spi10, kCLOCK_Spi11, kCLOCK_Spi12, kCLOCK_Spi13, kCLOCK_Spi14, \
kCLOCK_Spi16 \
}
#define I2S_CLOCKS
Value:
{ \
kCLOCK_I2s0, kCLOCK_I2s1, kCLOCK_I2s2, kCLOCK_I2s3, kCLOCK_I2s4, kCLOCK_I2s5, kCLOCK_I2s6, kCLOCK_I2s7, \
kCLOCK_I2s8, kCLOCK_I2s9, kCLOCK_I2s10, kCLOCK_I2s11, kCLOCK_I2s12, kCLOCK_I2s13 \
}
#define DMIC_CLOCKS
Value:
{ \
kCLOCK_Dmic0 \
}
#define DMA_CLOCKS
Value:
{ \
kCLOCK_Dmac0, kCLOCK_Dmac1 \
}
#define CRC_CLOCKS
Value:
{ \
kCLOCK_Crc \
}
#define GPIO_CLOCKS
Value:
{ \
kCLOCK_HsGpio0, kCLOCK_HsGpio1, kCLOCK_HsGpio2, kCLOCK_HsGpio3, kCLOCK_HsGpio4, kCLOCK_HsGpio5, \
kCLOCK_HsGpio6, kCLOCK_HsGpio7 \
}
#define PINT_CLOCKS
Value:
{ \
kCLOCK_GpioIntCtl \
}
#define I3C_CLOCKS
Value:
{ \
kCLOCK_I3c0, kCLOCK_I3c1 \
}
#define MRT_CLOCKS
Value:
{ \
kCLOCK_Mrt0 \
}
#define RTC_CLOCKS
Value:
{ \
kCLOCK_Rtc \
}
#define CTIMER_CLOCKS
Value:
{ \
kCLOCK_Ct32b0, kCLOCK_Ct32b1, kCLOCK_Ct32b2, kCLOCK_Ct32b3, kCLOCK_Ct32b4 \
}
#define CLK_GATE_REG_OFFSET_SHIFT   8U
#define SYSPLL0CLKSEL_OFFSET   0x200

[ 31 30 29:28 27:25 24:14 13:11 10:0 ] [CLKCTL index]:[FRODIVSEL onoff]:[FRODIVSEL]:[MUXB choice]:[MUXB offset]:[MUXA choice]:[MUXA offset] FRODIVSEL onoff '1' means need to set FRODIVSEL. MUX offset 0 means end of descriptor.

Enumeration Type Documentation

Enumerator
kCLOCK_CoreSysClk 

Core clock (aka HCLK)

kCLOCK_BusClk 

Bus clock (AHB/APB clock, aka HCLK)

kCLOCK_MclkClk 

MCLK, to MCLK pin.

kCLOCK_ClockOutClk 

CLOCKOUT.

kCLOCK_AdcClk 

ADC.

kCLOCK_Flexspi0Clk 

FlexSpi0.

kCLOCK_Flexspi1Clk 

FlexSpi1.

kCLOCK_SctClk 

SCT.

kCLOCK_Wdt0Clk 

Watchdog0.

kCLOCK_Wdt1Clk 

Watchdog1.

kCLOCK_SystickClk 

Systick.

kCLOCK_Sdio0Clk 

SDIO0.

kCLOCK_Sdio1Clk 

SDIO1.

kCLOCK_I3cClk 

I3C0 and I3C1.

kCLOCK_UsbClk 

USB0.

kCLOCK_DmicClk 

Digital Mic clock.

kCLOCK_DspCpuClk 

DSP clock.

kCLOCK_AcmpClk 

Acmp clock.

kCLOCK_Flexcomm0Clk 

Flexcomm0Clock.

kCLOCK_Flexcomm1Clk 

Flexcomm1Clock.

kCLOCK_Flexcomm2Clk 

Flexcomm2Clock.

kCLOCK_Flexcomm3Clk 

Flexcomm3Clock.

kCLOCK_Flexcomm4Clk 

Flexcomm4Clock.

kCLOCK_Flexcomm5Clk 

Flexcomm5Clock.

kCLOCK_Flexcomm6Clk 

Flexcomm6Clock.

kCLOCK_Flexcomm7Clk 

Flexcomm7Clock.

kCLOCK_Flexcomm8Clk 

Flexcomm8Clock.

kCLOCK_Flexcomm9Clk 

Flexcomm9Clock.

kCLOCK_Flexcomm10Clk 

Flexcomm10Clock.

kCLOCK_Flexcomm11Clk 

Flexcomm11Clock.

kCLOCK_Flexcomm12Clk 

Flexcomm12Clock.

kCLOCK_Flexcomm13Clk 

Flexcomm13Clock.

kCLOCK_Flexcomm14Clk 

Flexcomm14Clock.

kCLOCK_Flexcomm15Clk 

Flexcomm15Clock.

kCLOCK_Flexcomm16Clk 

Flexcomm16Clock.

kCLOCK_FlexioClk 

FlexIO.

kCLOCK_GpuClk 

GPU Core.

kCLOCK_DcPixelClk 

DCNano Pixel Clock.

kCLOCK_MipiDphyClk 

MIPI D-PHY Bit Clock.

kCLOCK_MipiDphyEscRxClk 

MIPI D-PHY RX Clock.

kCLOCK_MipiDphyEscTxClk 

MIPI D-PHY TX Clock.

PLL PFD clock name

Enumerator
kCLOCK_Pfd0 

PLL PFD0.

kCLOCK_Pfd1 

PLL PFD1.

kCLOCK_Pfd2 

PLL PFD2.

kCLOCK_Pfd3 

PLL PFD3.

Enumerator
kCLOCK_SysPllFro24MClk 

24MHz FRO clock

kCLOCK_SysPllXtalIn 

OSC clock.

kCLOCK_SysPllNone 

Gated to reduce power.

Enumerator
kCLOCK_SysPllMult16 

Divide by 16.

kCLOCK_SysPllMult17 

Divide by 17.

kCLOCK_SysPllMult20 

Divide by 20.

kCLOCK_SysPllMult22 

Divide by 22.

kCLOCK_SysPllMult27 

Divide by 27.

kCLOCK_SysPllMult33 

Divide by 33.

Enumerator
kCLOCK_AudioPllFro24MClk 

24MHz FRO clock

kCLOCK_AudioPllXtalIn 

OSC clock.

kCLOCK_AudioPllNone 

Gated to reduce power.

Enumerator
kCLOCK_AudioPllMult16 

Divide by 16.

kCLOCK_AudioPllMult17 

Divide by 17.

kCLOCK_AudioPllMult20 

Divide by 20.

kCLOCK_AudioPllMult22 

Divide by 22.

kCLOCK_AudioPllMult27 

Divide by 27.

kCLOCK_AudioPllMult33 

Divide by 33.

Function Documentation

void CLOCK_AttachClk ( clock_attach_id_t  connection)
Parameters
connection: Clock to be configured.
Returns
Nothing
void CLOCK_SetClkDiv ( clock_div_name_t  div_name,
uint32_t  divider 
)
Parameters
div_name: Clock divider name
divider: Value to be divided.
Returns
Nothing
uint32_t CLOCK_GetFreq ( clock_name_t  clockName)
Returns
Frequency of selected clock
uint32_t CLOCK_GetFRGClock ( uint32_t  id)
Returns
Input Frequency for FRG
void CLOCK_SetFRGClock ( const clock_frg_clk_config_t config)
Parameters
config: Configuration to set to FRGn clock.
uint32_t CLOCK_GetSysPllFreq ( void  )
Returns
Frequency of SYSPLL
uint32_t CLOCK_GetSysPfdFreq ( clock_pfd_t  pfd)
Parameters
pfd: pfd name to get frequency.
Returns
Frequency of SYSPLL PFD.
uint32_t CLOCK_GetAudioPllFreq ( void  )
Returns
Frequency of AUDIO PLL
uint32_t CLOCK_GetAudioPfdFreq ( clock_pfd_t  pfd)
Parameters
pfd: pfd name to get frequency.
Returns
Frequency of AUDIO PLL PFD.
uint32_t CLOCK_GetMainClkFreq ( void  )
Returns
Frequency of main clk
uint32_t CLOCK_GetDspMainClkFreq ( void  )
Returns
Frequency of DSP main clk
uint32_t CLOCK_GetAcmpClkFreq ( void  )
Returns
Frequency of ACMP clk
uint32_t CLOCK_GetDmicClkFreq ( void  )
Returns
Frequency of DMIC clk
uint32_t CLOCK_GetUsbClkFreq ( void  )
Returns
Frequency of USB clk
uint32_t CLOCK_GetSdioClkFreq ( uint32_t  id)
Parameters
id: SDIO index to get frequency.
Returns
Frequency of SDIO clk
uint32_t CLOCK_GetI3cClkFreq ( void  )
Returns
Frequency of I3C clk
uint32_t CLOCK_GetSystickClkFreq ( void  )
Returns
Frequency of systick clk
uint32_t CLOCK_GetWdtClkFreq ( uint32_t  id)
Parameters
id: WDT index to get frequency.
Returns
Frequency of WDT clk
uint32_t CLOCK_GetMclkClkFreq ( void  )
Returns
Frequency of mclk output clk
uint32_t CLOCK_GetSctClkFreq ( void  )
Returns
Frequency of sct clk
void CLOCK_EnableSysOscClk ( bool  enable,
bool  enableLowPower,
uint32_t  delay_us 
)
Parameters
enable: true to enable system osc clock, false to bypass system osc.
enableLowPower: true to enable low power mode, false to enable high gain mode.
delay_us: Delay time after OSC power up.
void CLOCK_EnableFroClk ( uint32_t  divOutEnable)
Parameters
divOutEnable: Or'ed value of clock_fro_output_en_t to enable certain clock freq output.
static uint32_t CLOCK_GetXtalInClkFreq ( void  )
inlinestatic
Returns
Frequency of sys osc Clock. Or CLK_IN pin frequency.
static uint32_t CLOCK_GetMclkInClkFreq ( void  )
inlinestatic
Returns
Frequency of MCLK input Clock.
static uint32_t CLOCK_GetLpOscFreq ( void  )
inlinestatic
Returns
Frequency of LPOSC
static uint32_t CLOCK_GetOsc32KFreq ( void  )
inlinestatic
Returns
Frequency of 32kHz osc
static void CLOCK_EnableOsc32K ( bool  enable)
inlinestatic
Parameters
enable: true to enable 32k osc clock, false to disable clock
static uint32_t CLOCK_GetWakeClk32KFreq ( void  )
inlinestatic
Returns
Frequency of 32kHz wake clk
static void CLOCK_SetXtalFreq ( uint32_t  freq)
inlinestatic
Parameters
freq: The XTAL input clock frequency in Hz.
static void CLOCK_SetMclkFreq ( uint32_t  freq)
inlinestatic
Parameters
freq: The MCLK input clock frequency in Hz.
uint32_t CLOCK_GetFlexcommClkFreq ( uint32_t  id)
Parameters
id: flexcomm index to get frequency.
Returns
Frequency of Flexcomm functional Clock
uint32_t CLOCK_GetFlexioClkFreq ( void  )
Returns
Frequency of Flexcomm functional Clock
uint32_t CLOCK_GetCtimerClkFreq ( uint32_t  id)
Parameters
id: ctimer index to get frequency.
Returns
Frequency of Ctimer Clock
uint32_t CLOCK_GetClockOutClkFreq ( void  )
Returns
Frequency of ClockOut
uint32_t CLOCK_GetAdcClkFreq ( void  )
Returns
Frequency of Adc Clock.
uint32_t CLOCK_GetFlexspiClkFreq ( uint32_t  id)
Parameters
id: flexspi index to get frequency.
Returns
Frequency of Flexspi.
uint32_t CLOCK_GetGpuClkFreq ( void  )
Returns
Frequency of GPU functional Clock
uint32_t CLOCK_GetDcPixelClkFreq ( void  )
Returns
Frequency of DCNano pixel functional Clock
uint32_t CLOCK_GetMipiDphyClkFreq ( void  )
Returns
Frequency of MIPI DPHY functional Clock
uint32_t CLOCK_GetMipiDphyEscRxClkFreq ( void  )
Returns
Frequency of MIPI DPHY Esc RX functional Clock
uint32_t CLOCK_GetMipiDphyEscTxClkFreq ( void  )
Returns
Frequency of MIPI DPHY Esc Tx functional Clock
void CLOCK_InitSysPll ( const clock_sys_pll_config_t config)
Parameters
config: Configuration to set to PLL.
static void CLOCK_DeinitSysPll ( void  )
inlinestatic

param none.

void CLOCK_InitSysPfd ( clock_pfd_t  pfd,
uint8_t  divider 
)
Parameters
pfd: Which PFD clock to enable.
divider: The PFD divider value.
Note
It is recommended that PFD settings are kept between 12-35.
static void CLOCK_DeinitSysPfd ( clock_pfd_t  pfd)
inlinestatic

param pfd : Which PFD clock to disable.

void CLOCK_InitAudioPll ( const clock_audio_pll_config_t config)
Parameters
config: Configuration to set to PLL.
static void CLOCK_DeinitAudioPll ( void  )
inlinestatic

param none.

void CLOCK_InitAudioPfd ( clock_pfd_t  pfd,
uint8_t  divider 
)
Parameters
pfd: Which PFD clock to enable.
divider: The PFD divider value.
Note
It is recommended that PFD settings are kept between 12-35.
static void CLOCK_DeinitAudioPfd ( uint32_t  pfd)
inlinestatic

param pfd : Which PFD clock to disable.

void CLOCK_EnableFroTuning ( bool  enable)

On enable, the function will wait until FRO is close to the target frequency.

void CLOCK_EnableUsbHs0DeviceClock ( clock_attach_id_t  src,
uint8_t  divider 
)

This function enables USB HS device clock.

void CLOCK_DisableUsbHs0DeviceClock ( void  )

This function disables USB HS device clock.

void CLOCK_EnableUsbHs0HostClock ( clock_attach_id_t  src,
uint8_t  divider 
)

This function enables USB HS host clock.

void CLOCK_DisableUsbHs0HostClock ( void  )

This function disables USB HS host clock.

bool CLOCK_EnableUsbHs0PhyPllClock ( clock_attach_id_t  src,
uint32_t  freq 
)

param src USB HS clock source. param freq The frequency specified by src. retval true The clock is set successfully. retval false The clock source is invalid to get proper USB HS clock.

void CLOCK_DisableUsbHs0PhyPllClock ( void  )

This function disables USB hs0PhyPll clock.

Variable Documentation

volatile uint32_t g_xtalFreq

The XTAL (YSOSC) clock frequency in Hz, when the clock is setup, use the function CLOCK_SetXtalFreq to set the value in to clock driver. For example, if XTAL is 16MHz,

* CLOCK_SetXtalFreq(160000000); // Set the XTALIN value to clock driver.
*
volatile uint32_t g_mclkFreq

The MCLK IN clock frequency in Hz, when the clock is setup, use the function CLOCK_SetMclkFreq to set the value in to clock driver. For example, if MCLK IN is 16MHz,

* CLOCK_SetMclkFreq(160000000); // Set the MCLK IN value to clock driver.
*