Kinetis SDK v.2.0 API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Clock: Clock driver

Overview

The MCUXpresso SDK provides a clock driver for MCUXpresso SDK devices.

Function groups

Clock driver provides these functions:

SYSCON Clock frequency functions

SYSCON clock module provides clocks, such as ADCCLK, DMICCLK, FXCOMCLK,WDTOSC, RTCOSC and SYSPLL. The functions CLOCK_EnableClock() and CLOCK_DisableClock() enables and disables the various clocks. The SYSCON clock driver provides functions to get the frequency of clocks, such as CLOCK_GetFreq(),

SYSCON clock Selection Muxes

The SYSCON clock driver provides the function to configure the clock selected. The function CLOCK_AttachClk() is implemented for this. The function selects the clock source for a particular peripheral like MAINCLK, DMIC, FLEXCOMM, USB, ADC and PLL.

SYSCON clock dividers

The SYSCON clock module provides the function to setup the peripheral clock dividers. The function CLOCK_SetClkDiv() configures the CLKDIV registers for various periperals like USB, DMIC, I2S, SYSTICK, AHB, ADC and also for CLKOUT and TRACE functions.

Files

file  fsl_clock.h
 

Data Structures

struct  ClockCapacitanceCompensation_t
 Board specific constant capacitance characteristics Should be supplied by board manufacturer for best performance. More...
 

Macros

#define FLEXCOMM_CLOCKS
 Clock ip name array for FLEXCOMM. More...
 
#define CTIMER_CLOCKS
 Clock ip name array for CTIMER. More...
 
#define GINT_CLOCKS
 Clock ip name array for GINT. More...
 
#define WWDT_CLOCKS
 Clock ip name array for WWDT. More...
 
#define DMIC_CLOCKS
 Clock ip name array for DMIC. More...
 
#define ADC_CLOCKS
 Clock ip name array for ADC. More...
 
#define SPIFI_CLOCKS
 Clock ip name array for SPIFI. More...
 
#define GPIO_CLOCKS
 Clock ip name array for GPIO. More...
 
#define DMA_CLOCKS
 Clock ip name array for DMA. More...
 

Enumerations

enum  CHIP_SYSCON_MAINCLKSRC_T {
  SYSCON_MAINCLKSRC_FRO12M,
  SYSCON_MAINCLKSRC_OSC32K,
  SYSCON_MAINCLKSRC_XTAL32M,
  SYSCON_MAINCLKSRC_FRO32M,
  SYSCON_MAINCLKSRC_FRO48M,
  SYSCON_MAINCLKSRC_EXT,
  SYSCON_MAINCLKSRC_FRO1M
}
 Clock sources for main system clock. More...
 
enum  CHIP_SYSCON_FRGCLKSRC_T {
  SYSCON_FRGCLKSRC_MAINCLK,
  SYSCON_FRGCLKSRC_OSC32M,
  SYSCON_FRGCLKSRC_FRO48MHZ,
  SYSCON_FRGCLKSRC_NONE
}
 Fractional Divider clock sources. More...
 
enum  clock_name_t {
  kCLOCK_Rom = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_ROM_SHIFT),
  kCLOCK_Sram0 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_SRAM_CTRL0_SHIFT),
  kCLOCK_Sram1 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_SRAM_CTRL1_SHIFT),
  kCLOCK_Flash = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_FLASH_SHIFT),
  kCLOCK_Spifi = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_SPIFI_SHIFT),
  kCLOCK_InputMux = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_MUX_SHIFT),
  kCLOCK_Iocon = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_IOCON_SHIFT),
  kCLOCK_Gpio0 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_GPIO_SHIFT),
  kCLOCK_Pint = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_PINT_SHIFT) ,
  kCLOCK_Dma = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_DMA_SHIFT),
  kCLOCK_Iso7816 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_ISO7816_SHIFT),
  kCLOCK_WdtOsc = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_WWDT_SHIFT),
  kCLOCK_Rtc = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_RTC_SHIFT),
  kCLOCK_AnaInt,
  kCLOCK_WakeTmr,
  kCLOCK_Adc0 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_ADC_SHIFT),
  kCLOCK_Efuse = CLK_GATE_DEFINE(AHB_CLK_CTRL0, SYSCON_AHBCLKCTRL0_EFUSE_SHIFT),
  kCLOCK_FlexComm0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_USART0_SHIFT),
  kCLOCK_FlexComm1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_USART1_SHIFT),
  kCLOCK_FlexComm2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_I2C0_SHIFT),
  kCLOCK_FlexComm3 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_I2C1_SHIFT),
  kCLOCK_FlexComm4 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_SPI0_SHIFT),
  kCLOCK_FlexComm5 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_SPI1_SHIFT),
  kCLOCK_Ir = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_IR_SHIFT),
  kCLOCK_Pwm = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_PWM_SHIFT),
  kCLOCK_Rng = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_RNG_SHIFT),
  kCLOCK_FlexComm6 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_I2C2_SHIFT),
  kCLOCK_Usart0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_USART0_SHIFT),
  kCLOCK_Usart1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_USART1_SHIFT),
  kCLOCK_I2c0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_I2C0_SHIFT),
  kCLOCK_I2c1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_I2C1_SHIFT),
  kCLOCK_Spi0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_SPI0_SHIFT),
  kCLOCK_Spi1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_SPI1_SHIFT),
  kCLOCK_I2c2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_I2C2_SHIFT),
  kCLOCK_BLE = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_BLE_SHIFT),
  kCLOCK_Modem = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_MODEM_MASTER_SHIFT),
  kCLOCK_Aes = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_AES_SHIFT),
  kCLOCK_Rfp = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_RFP_SHIFT),
  kCLOCK_DMic = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_DMIC_SHIFT),
  kCLOCK_Sha0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_HASH_SHIFT),
  kCLOCK_Timer0 = CLK_GATE_DEFINE(ASYNC_CLK_CTRL0, 1),
  kCLOCK_Timer1 = CLK_GATE_DEFINE(ASYNC_CLK_CTRL0, 2),
  kCLOCK_MainClk = (1 << 16),
  kCLOCK_CoreSysClk,
  kCLOCK_BusClk,
  kCLOCK_Xtal32k,
  kCLOCK_Xtal32M,
  kCLOCK_Fro32k,
  kCLOCK_Fro1M,
  kCLOCK_Fro12M,
  kCLOCK_Fro32M,
  kCLOCK_Fro48M,
  kCLOCK_Fro64M,
  kCLOCK_ExtClk,
  kCLOCK_WdtClk,
  kCLOCK_Frg,
  kCLOCK_ClkOut,
  kCLOCK_Fmeas,
  kCLOCK_Sha = CLK_GATE_DEFINE(AHB_CLK_CTRL1, SYSCON_AHBCLKCTRL1_HASH_SHIFT)
}
 Clock name definition. More...
 
enum  clock_sel_ofst_t {
  CM_MAINCLKSEL = REG_OFST(SYSCON, MAINCLKSEL),
  CM_OSC32CLKSEL = REG_OFST(SYSCON, OSC32CLKSEL),
  CM_CLKOUTCLKSEL = REG_OFST(SYSCON, CLKOUTSEL),
  CM_SPIFICLKSEL = REG_OFST(SYSCON, SPIFICLKSEL),
  CM_ADCCLKSEL = REG_OFST(SYSCON, ADCCLKSEL),
  CM_USARTCLKSEL = REG_OFST(SYSCON, USARTCLKSEL),
  CM_I2CCLKSEL = REG_OFST(SYSCON, I2CCLKSEL),
  CM_SPICLKSEL = REG_OFST(SYSCON, SPICLKSEL),
  CM_IRCLKSEL = REG_OFST(SYSCON, IRCLKSEL),
  CM_PWMCLKSEL = REG_OFST(SYSCON, PWMCLKSEL),
  CM_WDTCLKSEL = REG_OFST(SYSCON, WDTCLKSEL),
  CM_MODEMCLKSEL = REG_OFST(SYSCON, MODEMCLKSEL),
  CM_FRGCLKSEL = REG_OFST(SYSCON, FRGCLKSEL),
  CM_DMICLKSEL = REG_OFST(SYSCON, DMICCLKSEL),
  CM_WKTCLKSEL = REG_OFST(SYSCON, WKTCLKSEL)
}
 Clock source selector definition. More...
 
enum  clock_attach_id_t {
  kFRO12M_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 0),
  kOSC32K_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 1),
  kXTAL32M_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 2),
  kFRO32M_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 3),
  kFRO48M_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 4),
  kEXT_CLK_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 5),
  kFROM1M_to_MAIN_CLK = MUX_A(CM_MAINCLKSEL, 6),
  kFRO32M_to_OSC32M_CLK = MUX_A(CM_OSC32CLKSEL, 0),
  kXTAL32M_to_OSC32M_CLK = MUX_A(CM_OSC32CLKSEL, 1),
  kFRO32K_to_OSC32K_CLK = MUX_A(CM_OSC32CLKSEL, 2),
  kXTAL32K_to_OSC32K_CLK = MUX_A(CM_OSC32CLKSEL, 3),
  kMAIN_CLK_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 0),
  kXTAL32K_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 1),
  kFRO32K_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 2),
  kXTAL32M_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 3),
  kDCDC_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 4),
  kFRO48M_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 5),
  kFRO1M_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 6),
  kNONE_to_CLKOUT = MUX_A(CM_CLKOUTCLKSEL, 7),
  kMAIN_CLK_to_SPIFI = MUX_A(CM_SPIFICLKSEL, 0),
  kXTAL32M_to_SPIFI = MUX_A(CM_SPIFICLKSEL, 1),
  kFRO64M_to_SPIFI = MUX_A(CM_SPIFICLKSEL, 2),
  kFRO48M_to_SPIFI = MUX_A(CM_SPIFICLKSEL, 3),
  kXTAL32M_to_ADC_CLK = MUX_A(CM_ADCCLKSEL, 0),
  kFRO12M_to_ADC_CLK = MUX_A(CM_ADCCLKSEL, 1),
  kNONE_to_ADC_CLK = MUX_A(CM_ADCCLKSEL, 2),
  kOSC32M_to_USART_CLK = MUX_A(CM_USARTCLKSEL, 0),
  kFRO48M_to_USART_CLK = MUX_A(CM_USARTCLKSEL, 1),
  kFRG_CLK_to_USART_CLK = MUX_A(CM_USARTCLKSEL, 2),
  kNONE_to_USART_CLK = MUX_A(CM_USARTCLKSEL, 3),
  kOSC32M_to_I2C_CLK = MUX_A(CM_I2CCLKSEL, 0),
  kFRO48M_to_I2C_CLK = MUX_A(CM_I2CCLKSEL, 1),
  kNONE_to_I2C_CLK = MUX_A(CM_I2CCLKSEL, 2),
  kOSC32M_to_SPI_CLK = MUX_A(CM_SPICLKSEL, 0),
  kFRO48M_to_SPI_CLK = MUX_A(CM_SPICLKSEL, 1),
  kNONE_to_SPI_CLK = MUX_A(CM_SPICLKSEL, 2),
  kOSC32M_to_IR_CLK = MUX_A(CM_IRCLKSEL, 0),
  kFRO48M_to_IR_CLK = MUX_A(CM_IRCLKSEL, 1),
  kNONE_to_IR_CLK = MUX_A(CM_IRCLKSEL, 2),
  kOSC32M_to_PWM_CLK = MUX_A(CM_PWMCLKSEL, 0),
  kFRO48M_to_PWM_CLK = MUX_A(CM_PWMCLKSEL, 1),
  kNONE_to_PWM_CLK = MUX_A(CM_PWMCLKSEL, 2),
  kOSC32M_to_WDT_CLK = MUX_A(CM_WDTCLKSEL, 0),
  kOSC32K_to_WDT_CLK = MUX_A(CM_WDTCLKSEL, 1),
  kFRO1M_to_WDT_CLK = MUX_A(CM_WDTCLKSEL, 2),
  kMAIN_CLK_to_FRG_CLK = MUX_A(CM_FRGCLKSEL, 0),
  kOSC32M_to_FRG_CLK = MUX_A(CM_FRGCLKSEL, 1),
  kFRO48M_to_FRG_CLK = MUX_A(CM_FRGCLKSEL, 2),
  kNONE_to_FRG_CLK = MUX_A(CM_FRGCLKSEL, 3),
  kMAIN_CLK_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 0),
  kOSC32K_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 1),
  kFRO48M_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 2),
  kMCLK_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 3),
  kFRO1M_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 4),
  kFRO12M_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 5),
  kNONE_to_DMI_CLK = MUX_A(CM_DMICLKSEL, 6),
  kOSC32K_to_WKT_CLK = MUX_A(CM_WKTCLKSEL, 0),
  kNONE_to_WKT_CLK = MUX_A(CM_DMICLKSEL, 3),
  kXTAL32M_to_BLE_CLK = MUX_A(CM_MODEMCLKSEL, 3),
  kNONE_to_BLE_CLK = MUX_A(CM_MODEMCLKSEL, 1),
  kMAIN_CLK_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 0),
  kXTAL32M_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 1),
  kFRO32M_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 2),
  kFRO48M_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 3)
}
 Clock attach definition. More...
 
enum  clock_div_name_t { ,
  kCLOCK_DivSystickClk = (offsetof(SYSCON_Type, SYSTICKCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivTraceClk = (offsetof(SYSCON_Type, TRACECLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivWdtClk = (offsetof(SYSCON_Type, WDTCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivIrClk = (offsetof(SYSCON_Type, IRCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivAhbClk = (offsetof(SYSCON_Type, AHBCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivClkout = (offsetof(SYSCON_Type, CLKOUTDIV) / sizeof(uint32_t)),
  kCLOCK_DivSpifiClk = (offsetof(SYSCON_Type, SPIFICLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivAdcClk = (offsetof(SYSCON_Type, ADCCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivRtcClk = (offsetof(SYSCON_Type, RTCCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivDmicClk = (offsetof(SYSCON_Type, DMICCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivRtc1HzClk = (offsetof(SYSCON_Type, RTC1HZCLKDIV) / sizeof(uint32_t)),
  kCLOCK_DivFrg = (offsetof(SYSCON_Type, FRGCTRL) / sizeof(uint32_t))
}
 Clock divider definition. More...
 
enum  main_clock_src_t {
  kCLOCK_MainFro12M = 0,
  kCLOCK_MainOsc32k = 1,
  kCLOCK_MainXtal32M = 2,
  kCLOCK_MainFro32M = 3,
  kCLOCK_MainFro48M = 4,
  kCLOCK_MainExtClk = 5,
  kCLOCK_MainFro1M = 6
}
 Clock source selections for the Main Clock. More...
 
enum  clkout_clock_src_t {
  kCLOCK_ClkoutMainClk = 0,
  kCLOCK_ClkoutXtal32k = 1,
  kCLOCK_ClkoutFro32k = 2,
  kCLOCK_ClkoutXtal32M = 3,
  kCLOCK_ClkoutDcDcTest = 4,
  kCLOCK_ClkoutFro48M = 5,
  kCLOCK_ClkoutFro1M = 6,
  kCLOCK_ClkoutNoClock = 7
}
 Clock source selections for CLKOUT. More...
 
enum  wdt_clock_src_t {
  kCLOCK_WdtOsc32MClk = 0,
  kCLOCK_WdtOsc32kClk = 1,
  kCLOCK_WdtFro1M = 2,
  kCLOCK_WdtNoClock = 3
}
 Clock source definition for Watchdog timer. More...
 
enum  frg_clock_src_t {
  kCLOCK_FrgMainClk = 0,
  kCLOCK_FrgOsc32MClk = 1,
  kCLOCK_FrgFro48M = 2,
  kCLOCK_FrgNoClock = 3
}
 Clock source definition for fractional divider. More...
 
enum  apb_clock_src_t {
  kCLOCK_ApbMainClk = 0,
  kCLOCK_ApbXtal32M = 1,
  kCLOCK_ApbFro32M = 2,
  kCLOCK_ApbFro48M = 3
}
 Clock source definition for the APB. More...
 
enum  fmeas_clock_src_t {
  kCLOCK_fmeasClkIn = 0,
  kCLOCK_fmeasXtal32Mhz = 1,
  kCLOCK_fmeasFRO1Mhz = 2,
  kCLOCK_fmeasXtal32kHz = 3,
  kCLOCK_fmeasMainClock = 4,
  kCLOCK_fmeasGPIO_0_4 = 5,
  kCLOCK_fmeasGPIO_0_20 = 6,
  kCLOCK_fmeasGPIO_0_16 = 7,
  kCLOCK_fmeasGPIO_0_15 = 8
}
 Clock source definition for frequency measure. More...
 
enum  spifi_clock_src_t {
  kCLOCK_SpifiMainClk = 0,
  kCLOCK_SpifiXtal32M = 1,
  kCLOCK_SpifiFro64M = 2,
  kCLOCK_SpifiFro48M = 3,
  kCLOCK_SpifiNoClock = 4
}
 Clock source selection for SPIFI. More...
 
enum  adc_clock_src_t {
  kCLOCK_AdcXtal32M = 0,
  kCLOCK_AdcFro12M = 1,
  kCLOCK_AdcNoClock = 2
}
 Clock definition for ADC. More...
 
enum  pwm_clock_source_t {
  kCLOCK_PWMOsc32Mclk = 0x0,
  kCLOCK_PWMFro48Mclk = 0x1,
  kCLOCK_PWMNoClkSel = 0x2,
  kCLOCK_PWMTestClk = 0x3
}
 PWM Clock source selection values. More...
 
enum  Fro_ClkSel_t {
  FRO12M_ENA = (1 << 0),
  FRO32M_ENA = (1 << 1),
  FRO48M_ENA = (1 << 2),
  FRO64M_ENA = (1 << 3),
  FRO96M_ENA = (1 << 4)
}
 FRO clock selection values. More...
 

Functions

uint32_t CLOCK_GetFreq (clock_name_t clock)
 Obtains frequency of specified clock. More...
 
void CLOCK_AttachClk (clock_attach_id_t connection)
 Selects clock source using <name>SEL register in syscon. More...
 
void CLOCK_SetClkDiv (clock_div_name_t div_name, uint32_t divided_by_value, bool reset)
 Selects clock divider using <name>DIV register in syscon. More...
 
void CLOCK_EnableClock (clock_ip_name_t clk)
 Enables specific AHB clock channel. More...
 
void CLOCK_DisableClock (clock_ip_name_t clk)
 Disables specific AHB clock channel. More...
 
bool CLOCK_IsClockEnable (clock_ip_name_t clk)
 Check if clock is enabled. More...
 
uint32_t CLOCK_GetApbCLkFreq (void)
 Obtains frequency of APB Bus clock. More...
 
uint32_t CLOCK_GetSpifiClkFreq (void)
 Return Frequency of Spifi Clock. More...
 
void CLOCK_uDelay (uint32_t delayUs)
 Delay execution by busy waiting. More...
 
void CLOCK_XtalBasicTrim (void)
 Sets default trim values for 32MHz XTAL. More...
 
void CLOCK_Xtal32M_Trim (int32_t XO_32M_OSC_CAP_Delta_x1000, const ClockCapacitanceCompensation_t *capa_charac)
 Sets board-specific trim values for 32MHz XTAL. More...
 
void CLOCK_Xtal32k_Trim (int32_t XO_32k_OSC_CAP_Delta_x1000, const ClockCapacitanceCompensation_t *capa_charac)
 Sets board-specific trim values for 32kHz XTAL. More...
 
void CLOCK_SetXtal32M_LDO (void)
 Enables and sets LDO for 32MHz XTAL. More...
 
void CLOCK_Xtal32M_WaitUntilStable (uint32_t u32AdditionalWait_us)
 Waits for 32MHz XTAL to stabilise. More...
 

Driver version

#define FSL_CLOCK_DRIVER_VERSION   (MAKE_VERSION(2, 1, 0))
 CLOCK driver version 2.1.0. More...
 

Data Structure Documentation

struct ClockCapacitanceCompensation_t

Capacitances are expressed in hundreds of pF

Macro Definition Documentation

#define FSL_CLOCK_DRIVER_VERSION   (MAKE_VERSION(2, 1, 0))
#define FLEXCOMM_CLOCKS
Value:
{ \
}
I2C0 clock.
Definition: fsl_clock.h:176
SPI0 clock.
Definition: fsl_clock.h:178
USART0 clock.
Definition: fsl_clock.h:174
USART1 clock.
Definition: fsl_clock.h:175
I2C1 clock.
Definition: fsl_clock.h:177
SPI1 clock.
Definition: fsl_clock.h:179
I2C2 clock.
Definition: fsl_clock.h:180
#define CTIMER_CLOCKS
Value:
{ \
}
Timer0 clock.
Definition: fsl_clock.h:187
Timer1 clock.
Definition: fsl_clock.h:188
#define GINT_CLOCKS
Value:
{ \
kCLOCK_Gint \
}
#define WWDT_CLOCKS
Value:
{ \
}
WDTOSC clock.
Definition: fsl_clock.h:156
#define DMIC_CLOCKS
Value:
{ \
}
DMIC clock.
Definition: fsl_clock.h:185
#define ADC_CLOCKS
Value:
{ \
}
ADC0 clock.
Definition: fsl_clock.h:162
#define SPIFI_CLOCKS
Value:
{ \
}
SPIFI clock.
Definition: fsl_clock.h:147
#define GPIO_CLOCKS
Value:
{ \
}
GPIO0 clock.
Definition: fsl_clock.h:150
#define DMA_CLOCKS
Value:
{ \
}
DMA clock.
Definition: fsl_clock.h:154

Enumeration Type Documentation

Enumerator
SYSCON_MAINCLKSRC_FRO12M 

FRO 12MHz.

SYSCON_MAINCLKSRC_OSC32K 

OSC 32kHz.

SYSCON_MAINCLKSRC_XTAL32M 

XTAL 32MHz.

SYSCON_MAINCLKSRC_FRO32M 

FRO 32MHz.

SYSCON_MAINCLKSRC_FRO48M 

FRO 48MHz.

SYSCON_MAINCLKSRC_EXT 

External clock.

SYSCON_MAINCLKSRC_FRO1M 

FRO 1MHz.

Enumerator
SYSCON_FRGCLKSRC_MAINCLK 

Main Clock.

SYSCON_FRGCLKSRC_OSC32M 

32MHz Clock (XTAL or FRO)

SYSCON_FRGCLKSRC_FRO48MHZ 

FRO 48-MHz.

SYSCON_FRGCLKSRC_NONE 

FRO 48-MHz.

Enumerator
kCLOCK_Rom 

ROM clock.

kCLOCK_Sram0 

SRAM0 clock.

kCLOCK_Sram1 

SRAM1 clock.

kCLOCK_Flash 

Flash clock.

kCLOCK_Spifi 

SPIFI clock.

kCLOCK_InputMux 

InputMux clock.

kCLOCK_Iocon 

IOCON clock.

kCLOCK_Gpio0 

GPIO0 clock.

kCLOCK_Pint 

PINT clock.

kCLOCK_Dma 

DMA clock.

kCLOCK_Iso7816 

ISO7816 clock.

kCLOCK_WdtOsc 

WDTOSC clock.

kCLOCK_Rtc 

RTC clock.

kCLOCK_AnaInt 

Analog Interrupt Control module clock.

kCLOCK_WakeTmr 

Wake up Timers clock.

kCLOCK_Adc0 

ADC0 clock.

kCLOCK_Efuse 

EFuse clock.

kCLOCK_FlexComm0 

FlexComm0 clock.

kCLOCK_FlexComm1 

FlexComm1 clock.

kCLOCK_FlexComm2 

FlexComm2 clock.

kCLOCK_FlexComm3 

FlexComm3 clock.

kCLOCK_FlexComm4 

FlexComm4 clock.

kCLOCK_FlexComm5 

FlexComm5 clock.

kCLOCK_Ir 

Infra Red clock.

kCLOCK_Pwm 

PWM clock.

kCLOCK_Rng 

RNG clock.

kCLOCK_FlexComm6 

FlexComm6 clock.

kCLOCK_Usart0 

USART0 clock.

kCLOCK_Usart1 

USART1 clock.

kCLOCK_I2c0 

I2C0 clock.

kCLOCK_I2c1 

I2C1 clock.

kCLOCK_Spi0 

SPI0 clock.

kCLOCK_Spi1 

SPI1 clock.

kCLOCK_I2c2 

I2C2 clock.

kCLOCK_BLE 

BLE clock.

kCLOCK_Modem 

MODEM clock.

kCLOCK_Aes 

AES clock.

kCLOCK_Rfp 

RFP clock.

kCLOCK_DMic 

DMIC clock.

kCLOCK_Sha0 

SHA0 clock.

kCLOCK_Timer0 

Timer0 clock.

kCLOCK_Timer1 

Timer1 clock.

kCLOCK_MainClk 

MAIN_CLK.

kCLOCK_CoreSysClk 

Core/system clock.

kCLOCK_BusClk 

AHB bus clock.

kCLOCK_Xtal32k 

32kHz crystal oscillator

kCLOCK_Xtal32M 

32MHz crystal oscillator

kCLOCK_Fro32k 

32kHz free running oscillator

kCLOCK_Fro1M 

1MHz Free Running Oscillator

kCLOCK_Fro12M 

12MHz Free Running Oscillator

kCLOCK_Fro32M 

32MHz Free Running Oscillator

kCLOCK_Fro48M 

48MHz Free Running Oscillator

kCLOCK_Fro64M 

64Mhz Free Running Oscillator

kCLOCK_ExtClk 

External clock.

kCLOCK_WdtClk 

Watchdog clock.

kCLOCK_Frg 

Fractional divider.

kCLOCK_ClkOut 

Clock out.

kCLOCK_Fmeas 

FMEAS clock.

kCLOCK_Sha 

Hash clock.

Enumerator
CM_MAINCLKSEL 

Clock source selector of Main clock source.

CM_OSC32CLKSEL 

Clock source selector of OSC32KCLK and OSC32MCLK.

CM_CLKOUTCLKSEL 

Clock source selector of CLKOUT.

CM_SPIFICLKSEL 

Clock source selector of SPIFI.

CM_ADCCLKSEL 

Clock source selector of ADC.

CM_USARTCLKSEL 

Clock source selector of USART0 & 1.

CM_I2CCLKSEL 

Clock source selector of I2C0, 1 and 2.

CM_SPICLKSEL 

Clock source selector of SPI0 & 1.

CM_IRCLKSEL 

Clock source selector of Infra Red.

CM_PWMCLKSEL 

Clock source selector of PWM.

CM_WDTCLKSEL 

Clock source selector of Watchdog Timer.

CM_MODEMCLKSEL 

Clock source selector of Modem.

CM_FRGCLKSEL 

Clock source selector of Fractional Rate Generator (FRG)

CM_DMICLKSEL 

Clock source selector of Digital microphone (DMIC)

CM_WKTCLKSEL 

Clock source selector of Wake-up Timer.

Enumerator
kFRO12M_to_MAIN_CLK 

Select FRO 12M for main clock.

kOSC32K_to_MAIN_CLK 

Select OSC 32K for main clock.

kXTAL32M_to_MAIN_CLK 

Select XTAL 32M for main clock.

kFRO32M_to_MAIN_CLK 

Select FRO 32M for main clock.

kFRO48M_to_MAIN_CLK 

Select FRO 48M for main clock.

kEXT_CLK_to_MAIN_CLK 

Select external clock for main clock.

kFROM1M_to_MAIN_CLK 

Select FRO 1M for main clock.

kFRO32M_to_OSC32M_CLK 

Select FRO 32M for OSC32KCLK and OSC32MCLK.

kXTAL32M_to_OSC32M_CLK 

Select XTAL 32M for OSC32KCLK and OSC32MCLK.

kFRO32K_to_OSC32K_CLK 

Select FRO 32K for OSC32KCLK and OSC32MCLK.

kXTAL32K_to_OSC32K_CLK 

Select XTAL 32K for OSC32KCLK and OSC32MCLK.

kMAIN_CLK_to_CLKOUT 

Select main clock for CLKOUT.

kXTAL32K_to_CLKOUT 

Select XTAL 32K for CLKOUT.

kFRO32K_to_CLKOUT 

Select FRO 32K for CLKOUT.

kXTAL32M_to_CLKOUT 

Select XTAL 32M for CLKOUT.

kDCDC_to_CLKOUT 

Select DCDC for CLKOUT.

kFRO48M_to_CLKOUT 

Select FRO 48M for CLKOUT.

kFRO1M_to_CLKOUT 

Select FRO 1M for CLKOUT.

kNONE_to_CLKOUT 

No clock for CLKOUT.

kMAIN_CLK_to_SPIFI 

Select main clock for SPIFI.

kXTAL32M_to_SPIFI 

Select XTAL 32M for SPIFI.

kFRO64M_to_SPIFI 

Select FRO 64M for SPIFI.

kFRO48M_to_SPIFI 

Select FRO 48M for SPIFI.

kXTAL32M_to_ADC_CLK 

Select XTAL 32M for ADC.

kFRO12M_to_ADC_CLK 

Select FRO 12M for ADC.

kNONE_to_ADC_CLK 

No clock for ADC.

kOSC32M_to_USART_CLK 

Select OSC 32M for USART0 & 1.

kFRO48M_to_USART_CLK 

Select FRO 48M for USART0 & 1.

kFRG_CLK_to_USART_CLK 

Select FRG clock for USART0 & 1.

kNONE_to_USART_CLK 

No clock for USART0 & 1.

kOSC32M_to_I2C_CLK 

Select OSC 32M for I2C0, 1 and 2.

kFRO48M_to_I2C_CLK 

Select FRO 48M for I2C0, 1 and 2.

kNONE_to_I2C_CLK 

No clock for I2C0, 1 and 2.

kOSC32M_to_SPI_CLK 

Select OSC 32M for SPI0 & 1.

kFRO48M_to_SPI_CLK 

Select FRO 48M for SPI0 & 1.

kNONE_to_SPI_CLK 

No clock for SPI0 & 1.

kOSC32M_to_IR_CLK 

Select OSC 32M for Infra Red.

kFRO48M_to_IR_CLK 

Select FRO 48M for Infra Red.

kNONE_to_IR_CLK 

No clock for Infra Red.

kOSC32M_to_PWM_CLK 

Select OSC 32M for PWM.

kFRO48M_to_PWM_CLK 

Select FRO 48M for PWM.

kNONE_to_PWM_CLK 

No clock for PWM.

kOSC32M_to_WDT_CLK 

Select OSC 32M for Watchdog Timer.

kOSC32K_to_WDT_CLK 

Select FRO 32K for Watchdog Timer.

kFRO1M_to_WDT_CLK 

Select FRO 1M for Watchdog Timer.

kMAIN_CLK_to_FRG_CLK 

Select main clock for FRG.

kOSC32M_to_FRG_CLK 

Select OSC 32M for FRG.

kFRO48M_to_FRG_CLK 

Select FRO 48M for FRG.

kNONE_to_FRG_CLK 

No clock for FRG.

kMAIN_CLK_to_DMI_CLK 

Select main clock for DMIC.

kOSC32K_to_DMI_CLK 

Select OSC 32K for DMIC.

kFRO48M_to_DMI_CLK 

Select FRO 48M for DMIC.

kMCLK_to_DMI_CLK 

Select external clock for DMIC.

kFRO1M_to_DMI_CLK 

Select FRO 1M for DMIC.

kFRO12M_to_DMI_CLK 

Select FRO 12M for DMIC.

kNONE_to_DMI_CLK 

No clock for DMIC.

kOSC32K_to_WKT_CLK 

Select OSC 32K for for WKT.

kNONE_to_WKT_CLK 

No clock for WKT.

kXTAL32M_to_BLE_CLK 

Select XTAL 32M for BLE.

kNONE_to_BLE_CLK 

No clock for BLE.

kMAIN_CLK_to_ASYNC_APB 

Select main clock for Asynchronous APB.

kXTAL32M_to_ASYNC_APB 

Select XTAL 32M for Asynchronous APB.

kFRO32M_to_ASYNC_APB 

Select FRO 32M for Asynchronous APB.

kFRO48M_to_ASYNC_APB 

Select FRO 48M for Asynchronous APB.

Enumerator
kCLOCK_DivSystickClk 

SYSTICK clock divider.

kCLOCK_DivTraceClk 

TRACE clock divider.

kCLOCK_DivWdtClk 

Watchdog Timer clock divider.

kCLOCK_DivIrClk 

Infra Red clock divider.

kCLOCK_DivAhbClk 

System clock divider.

kCLOCK_DivClkout 

CLKOUT clock divider.

kCLOCK_DivSpifiClk 

SPIFI clock divider.

kCLOCK_DivAdcClk 

ADC clock divider.

kCLOCK_DivRtcClk 

Real Time Clock divider.

kCLOCK_DivDmicClk 

DMIC clock divider.

kCLOCK_DivRtc1HzClk 

Real Time Clock divider.

kCLOCK_DivFrg 

FRG Clock divider.

Enumerator
kCLOCK_MainFro12M 

FRO 12M for main clock.

kCLOCK_MainOsc32k 

OSC 32K for main clock.

kCLOCK_MainXtal32M 

XTAL 32M for main clock.

kCLOCK_MainFro32M 

FRO 32M for main clock.

kCLOCK_MainFro48M 

FRO 48M for main clock.

kCLOCK_MainExtClk 

External clock for main clock.

kCLOCK_MainFro1M 

FRO 1M for main clock.

Enumerator
kCLOCK_ClkoutMainClk 

CPU & System Bus clock for CLKOUT.

kCLOCK_ClkoutXtal32k 

XTAL 32K for CLKOUT.

kCLOCK_ClkoutFro32k 

FRO 32K for CLKOUT.

kCLOCK_ClkoutXtal32M 

XTAL 32M for CLKOUT.

kCLOCK_ClkoutDcDcTest 

DCDC Test for CLKOUT.

kCLOCK_ClkoutFro48M 

FRO 48M for CLKOUT.

kCLOCK_ClkoutFro1M 

FRO 1M for CLKOUT.

kCLOCK_ClkoutNoClock 

No clock for CLKOUT.

Enumerator
kCLOCK_WdtOsc32MClk 

OSC 32M for WDT.

kCLOCK_WdtOsc32kClk 

OSC 32K for WDT.

kCLOCK_WdtFro1M 

FRO 1M for WDT.

kCLOCK_WdtNoClock 

No clock for WDT.

Enumerator
kCLOCK_FrgMainClk 

CPU & System Bus clock for FRG.

kCLOCK_FrgOsc32MClk 

OSC 32M clock for FRG.

kCLOCK_FrgFro48M 

FRO 48M for FRG.

kCLOCK_FrgNoClock 

No clock for FRG.

Enumerator
kCLOCK_ApbMainClk 

CPU & System Bus clock for APB bridge.

kCLOCK_ApbXtal32M 

XTAL 32M for APB bridge.

kCLOCK_ApbFro32M 

FRO 32M for APB bridge.

kCLOCK_ApbFro48M 

FRO 48M for APB bridge.

Enumerator
kCLOCK_fmeasClkIn 

Clock in for FMEAS.

kCLOCK_fmeasXtal32Mhz 

XTAL 32M for FMEAS.

kCLOCK_fmeasFRO1Mhz 

FRO 1M for FMEAS.

kCLOCK_fmeasXtal32kHz 

XTAL 32K for FMEAS.

kCLOCK_fmeasMainClock 

CPU & System Bus clock for FMEAS.

kCLOCK_fmeasGPIO_0_4 

GPIO0_4 input for FMEAS.

kCLOCK_fmeasGPIO_0_20 

GPIO0_20 input for FMEAS.

kCLOCK_fmeasGPIO_0_16 

GPIO0_16 input for FMEAS.

kCLOCK_fmeasGPIO_0_15 

GPIO0_15 input for FMEAS.

Enumerator
kCLOCK_SpifiMainClk 

CPU & System Bus clock for SPIFI.

kCLOCK_SpifiXtal32M 

XTAL 32M for SPIFI.

kCLOCK_SpifiFro64M 

FRO 64M for SPIFI.

kCLOCK_SpifiFro48M 

FRO 48M for SPIFI.

kCLOCK_SpifiNoClock 

No clock for SPIFI.

Enumerator
kCLOCK_AdcXtal32M 

XTAL 32MHz for ADC.

kCLOCK_AdcFro12M 

FRO 12MHz for ADC.

kCLOCK_AdcNoClock 

No clock for ADC.

Enumerator
kCLOCK_PWMOsc32Mclk 

32MHz FRO or XTAL clock

kCLOCK_PWMFro48Mclk 

FRO 48MHz clock.

kCLOCK_PWMNoClkSel 

No clock selected - Shutdown functional PWM clock for power saving.

kCLOCK_PWMTestClk 

Test clock input - Shutdown functional PWM clock for power saving.

Enumerator
FRO12M_ENA 

FRO12M.

FRO32M_ENA 

FRO32M.

FRO48M_ENA 

FRO48M.

FRO64M_ENA 

FRO64M.

FRO96M_ENA 

FRO96M.

Function Documentation

uint32_t CLOCK_GetFreq ( clock_name_t  clock)
Parameters
clock_name_tspecify clock to be read
Returns
uint32_t frequency
Note
void CLOCK_AttachClk ( clock_attach_id_t  connection)
Parameters
clock_attach_id_tspecify clock mapping
Returns
none
Note
void CLOCK_SetClkDiv ( clock_div_name_t  div_name,
uint32_t  divided_by_value,
bool  reset 
)
Parameters
clock_div_name_tspecifies which DIV register we are accessing
uint32_tspecifies divisor
booltrue if a syscon clock reset should also be carried out
Returns
none
Note
void CLOCK_EnableClock ( clock_ip_name_t  clk)
Parameters
clock_ip_name_tspecifies which peripheral clock we are controlling
Returns
none
Note
clock_ip_name_t is a typedef clone of clock_name_t
void CLOCK_DisableClock ( clock_ip_name_t  clk)
Parameters
clock_ip_name_tspecifies which peripheral clock we are controlling
Returns
none
Note
clock_ip_name_t is a typedef clone of clock_name_t
bool CLOCK_IsClockEnable ( clock_ip_name_t  clk)
Parameters
clock_ip_name_tspecifies which peripheral clock we are controlling
Returns
bool
Note
clock_ip_name_t is a typedef clone of clock_name_t
uint32_t CLOCK_GetApbCLkFreq ( void  )
Parameters
none
Returns
uint32_t frequency
Note
uint32_t CLOCK_GetSpifiClkFreq ( void  )
Returns
Frequency of Spifi.
void CLOCK_uDelay ( uint32_t  delayUs)
Parameters
delayUsdelay duration in micro seconds
Returns
none
void CLOCK_XtalBasicTrim ( void  )
Parameters
none
Returns
none
Note
Has no effect if CLOCK_Xtal32M_Trim has been called
void CLOCK_Xtal32M_Trim ( int32_t  XO_32M_OSC_CAP_Delta_x1000,
const ClockCapacitanceCompensation_t capa_charac 
)
Parameters
XO_32M_OSC_CAP_Delta_x1000capacitance correction in fF (femtoFarad)
capa_characboard 32M capacitance characteristics pointer
Returns
none
Note
capa_charac must point to a struct set in board.c using CLOCK_32MfXtalIecLoadpF Load capacitance, pF CLOCK_32MfXtalPPcbParCappF PCB +ve parasitic capacitance, pF CLOCK_32MfXtalNPcbParCappF PCB -ve parasitic capacitance, pF
void CLOCK_Xtal32k_Trim ( int32_t  XO_32k_OSC_CAP_Delta_x1000,
const ClockCapacitanceCompensation_t capa_charac 
)
Parameters
XO_32k_OSC_CAP_Delta_x1000capacitance correction in fF
capa_characboard 32k capacitance characteristics pointer
Returns
none
Note
capa_charac must point to a struct set in board.c using CLOCK_32kfXtalIecLoadpF Load capacitance, pF CLOCK_32kfXtalPPcbParCappF PCB +ve parasitic capacitance, pF CLOCK_32kfXtalNPcbParCappF PCB -ve parasitic capacitance, pF
void CLOCK_SetXtal32M_LDO ( void  )
Parameters
none
Returns
none
void CLOCK_Xtal32M_WaitUntilStable ( uint32_t  u32AdditionalWait_us)
Parameters
u32AdditionalWait_usAdditional wait after hardware indicates that stability has been reached
Returns
none
Note
Operates as a tight loop. Worst case would be ~600ms