![]() |
MCUXpresso SDK API Reference Manual
Rev 2.16.000
NXP Semiconductors
|
The MCUXpresso SDK provides APIs for MCUXpresso SDK devices' clock operation.
The clock driver supports:
Files | |
file | fsl_clock.h |
Data Structures | |
struct | _pll_config |
PLL configuration structure. More... | |
struct | _pll_setup |
PLL setup structure This structure can be used to pre-build a PLL setup configuration at run-time and quickly set the PLL to the configuration. More... | |
struct | _usb_pll_setup |
PLL setup structure This structure can be used to pre-build a USB PLL setup configuration at run-time and quickly set the usb PLL to the configuration. More... | |
Macros | |
#define | FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL 0 |
Configure whether driver controls clock. More... | |
#define | CLOCK_USR_CFG_PLL_CONFIG_CACHE_COUNT 2U |
User-defined the size of cache for CLOCK_PllGetConfig() function. More... | |
#define | CLOCK_FROHF_SETTING_API_ROM_ADDRESS (0x030091DFU) |
FROHF clock setting API address in ROM. More... | |
#define | set_fro_frequency(iFreq) (*((void (*)(uint32_t iFreq))(CLOCK_FROHF_SETTING_API_ROM_ADDRESS)))(iFreq) |
#define | ADC_CLOCKS |
Clock ip name array for ROM. More... | |
#define | ROM_CLOCKS |
Clock ip name array for ROM. More... | |
#define | SRAM_CLOCKS |
Clock ip name array for SRAM. More... | |
#define | FLASH_CLOCKS |
Clock ip name array for FLASH. More... | |
#define | FMC_CLOCKS |
Clock ip name array for FMC. More... | |
#define | EEPROM_CLOCKS |
Clock ip name array for EEPROM. More... | |
#define | SPIFI_CLOCKS |
Clock ip name array for SPIFI. More... | |
#define | INPUTMUX_CLOCKS |
Clock ip name array for INPUTMUX. More... | |
#define | IOCON_CLOCKS |
Clock ip name array for IOCON. More... | |
#define | GPIO_CLOCKS |
Clock ip name array for GPIO. More... | |
#define | PINT_CLOCKS |
Clock ip name array for PINT. More... | |
#define | GINT_CLOCKS |
Clock ip name array for GINT. More... | |
#define | DMA_CLOCKS |
Clock ip name array for DMA. More... | |
#define | CRC_CLOCKS |
Clock ip name array for CRC. More... | |
#define | WWDT_CLOCKS |
Clock ip name array for WWDT. More... | |
#define | RTC_CLOCKS |
Clock ip name array for RTC. More... | |
#define | ADC0_CLOCKS |
Clock ip name array for ADC0. More... | |
#define | MRT_CLOCKS |
Clock ip name array for MRT. More... | |
#define | RIT_CLOCKS |
Clock ip name array for RIT. More... | |
#define | SCT_CLOCKS |
Clock ip name array for SCT0. More... | |
#define | MCAN_CLOCKS |
Clock ip name array for MCAN. More... | |
#define | UTICK_CLOCKS |
Clock ip name array for UTICK. More... | |
#define | FLEXCOMM_CLOCKS |
Clock ip name array for FLEXCOMM. More... | |
#define | LPUART_CLOCKS |
Clock ip name array for LPUART. More... | |
#define | BI2C_CLOCKS |
Clock ip name array for BI2C. More... | |
#define | LPSI_CLOCKS |
Clock ip name array for LSPI. More... | |
#define | FLEXI2S_CLOCKS |
Clock ip name array for FLEXI2S. More... | |
#define | DMIC_CLOCKS |
Clock ip name array for DMIC. More... | |
#define | CTIMER_CLOCKS |
Clock ip name array for CT32B. More... | |
#define | LCD_CLOCKS |
Clock ip name array for LCD. More... | |
#define | SDIO_CLOCKS |
Clock ip name array for SDIO. More... | |
#define | USBRAM_CLOCKS |
Clock ip name array for USBRAM. More... | |
#define | EMC_CLOCKS |
Clock ip name array for EMC. More... | |
#define | ETH_CLOCKS |
Clock ip name array for ETH. More... | |
#define | AES_CLOCKS |
Clock ip name array for AES. More... | |
#define | OTP_CLOCKS |
Clock ip name array for OTP. More... | |
#define | RNG_CLOCKS |
Clock ip name array for RNG. More... | |
#define | USBHMR0_CLOCKS |
Clock ip name array for USBHMR0. More... | |
#define | USBHSL0_CLOCKS |
Clock ip name array for USBHSL0. More... | |
#define | SHA0_CLOCKS |
Clock ip name array for SHA0. More... | |
#define | SMARTCARD_CLOCKS |
Clock ip name array for SMARTCARD. More... | |
#define | USBD_CLOCKS |
Clock ip name array for USBD. More... | |
#define | USBH_CLOCKS |
Clock ip name array for USBH. More... | |
#define | CLK_GATE_REG_OFFSET_SHIFT 8U |
Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. More... | |
#define | CLK_ATTACH_ID(mux, sel, pos) ((((mux) << 0U) | (((sel) + 1U) & 0xFU) << 8U) << ((pos)*12U)) |
Clock Mux Switches The encoding is as follows each connection identified is 32bits wide while 24bits are valuable starting from LSB upwards. More... | |
#define | PLL_CONFIGFLAG_USEINRATE (1UL << 0U) |
PLL configuration structure flags for 'flags' field These flags control how the PLL configuration function sets up the PLL setup structure. More... | |
#define | PLL_CONFIGFLAG_FORCENOFRACT |
Force non-fractional output mode, PLL output will not use the fractional, automatic bandwidth, or SS \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ hardware. | |
#define | PLL_SETUPFLAG_POWERUP (1UL << 0U) |
PLL setup structure flags for 'flags' field These flags control how the PLL setup function sets up the PLL. More... | |
#define | PLL_SETUPFLAG_WAITLOCK (1UL << 1U) |
Setup will wait for PLL lock, implies the PLL will be pwoered on. | |
#define | PLL_SETUPFLAG_ADGVOLT (1UL << 2U) |
Optimize system voltage for the new PLL rate. | |
Typedefs | |
typedef enum _clock_ip_name | clock_ip_name_t |
Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. More... | |
typedef enum _clock_name | clock_name_t |
Clock name used to get clock frequency. More... | |
typedef enum _async_clock_src | async_clock_src_t |
Clock source selections for the asynchronous APB clock. | |
typedef enum _clock_attach_id | clock_attach_id_t |
The enumerator of clock attach Id. | |
typedef enum _clock_div_name | clock_div_name_t |
Clock dividers. | |
typedef enum _clock_flashtim | clock_flashtim_t |
FLASH Access time definitions. | |
typedef struct _pll_config | pll_config_t |
PLL configuration structure. More... | |
typedef struct _pll_setup | pll_setup_t |
PLL setup structure This structure can be used to pre-build a PLL setup configuration at run-time and quickly set the PLL to the configuration. More... | |
typedef enum _pll_error | pll_error_t |
PLL status definitions. | |
typedef enum _clock_usb_src | clock_usb_src_t |
USB clock source definition. More... | |
typedef enum _usb_pll_psel | usb_pll_psel |
USB PDEL Divider. More... | |
typedef struct _usb_pll_setup | usb_pll_setup_t |
PLL setup structure This structure can be used to pre-build a USB PLL setup configuration at run-time and quickly set the usb PLL to the configuration. More... | |
Enumerations | |
enum | _clock_ip_name { kCLOCK_IpInvalid = 0U, kCLOCK_Rom = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 1), kCLOCK_Sram1 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 3), kCLOCK_Sram2 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 4), kCLOCK_Sram3 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 5), kCLOCK_Flash = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 7), kCLOCK_Fmc = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 8), kCLOCK_Eeprom = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 9), kCLOCK_Spifi = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 10), kCLOCK_InputMux = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 11), kCLOCK_Iocon = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 13), kCLOCK_Gpio0 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 14), kCLOCK_Gpio1 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 15), kCLOCK_Gpio2 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 16), kCLOCK_Gpio3 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 17), kCLOCK_Pint = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 18), kCLOCK_Gint = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 19), kCLOCK_Dma = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 20), kCLOCK_Crc = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 21), kCLOCK_Wwdt = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 22), kCLOCK_Rtc = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 23), kCLOCK_Adc0 = CLK_GATE_DEFINE(AHB_CLK_CTRL0, 27), kCLOCK_Mrt = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 0), kCLOCK_Rit = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 1), kCLOCK_Sct0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 2), kCLOCK_Mcan0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 7), kCLOCK_Mcan1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 8), kCLOCK_Utick = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 10), kCLOCK_FlexComm0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 11), kCLOCK_FlexComm1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 12), kCLOCK_FlexComm2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 13), kCLOCK_FlexComm3 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 14), kCLOCK_FlexComm4 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 15), kCLOCK_FlexComm5 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 16), kCLOCK_FlexComm6 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 17), kCLOCK_FlexComm7 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 18), kCLOCK_MinUart0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 11), kCLOCK_MinUart1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 12), kCLOCK_MinUart2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 13), kCLOCK_MinUart3 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 14), kCLOCK_MinUart4 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 15), kCLOCK_MinUart5 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 16), kCLOCK_MinUart6 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 17), kCLOCK_MinUart7 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 18), kCLOCK_LSpi0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 11), kCLOCK_LSpi1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 12), kCLOCK_LSpi2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 13), kCLOCK_LSpi3 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 14), kCLOCK_LSpi4 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 15), kCLOCK_LSpi5 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 16), kCLOCK_LSpi6 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 17), kCLOCK_LSpi7 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 18), kCLOCK_BI2c0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 11), kCLOCK_BI2c1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 12), kCLOCK_BI2c2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 13), kCLOCK_BI2c3 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 14), kCLOCK_BI2c4 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 15), kCLOCK_BI2c5 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 16), kCLOCK_BI2c6 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 17), kCLOCK_BI2c7 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 18), kCLOCK_FlexI2s0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 11), kCLOCK_FlexI2s1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 12), kCLOCK_FlexI2s2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 13), kCLOCK_FlexI2s3 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 14), kCLOCK_FlexI2s4 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 15), kCLOCK_FlexI2s5 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 16), kCLOCK_FlexI2s6 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 17), kCLOCK_FlexI2s7 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 18), kCLOCK_DMic = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 19), kCLOCK_Ct32b2 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 22), kCLOCK_Usbd0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 25), kCLOCK_Ct32b0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 26), kCLOCK_Ct32b1 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 27), kCLOCK_BodyBias0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 29), kCLOCK_EzhArchB0 = CLK_GATE_DEFINE(AHB_CLK_CTRL1, 31), kCLOCK_Lcd = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 2), kCLOCK_Sdio = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 3), kCLOCK_Usbh1 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 4), kCLOCK_Usbd1 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 5), kCLOCK_UsbRam1 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 6), kCLOCK_Emc = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 7), kCLOCK_Eth = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 8), kCLOCK_Gpio4 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 9), kCLOCK_Gpio5 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 10), kCLOCK_Aes = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 11), kCLOCK_Otp = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 12), kCLOCK_Rng = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 13), kCLOCK_FlexComm8 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 14), kCLOCK_FlexComm9 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 15), kCLOCK_MinUart8 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 14), kCLOCK_MinUart9 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 15), kCLOCK_LSpi8 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 14), kCLOCK_LSpi9 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 15), kCLOCK_BI2c8 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 14), kCLOCK_BI2c9 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 15), kCLOCK_FlexI2s8 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 14), kCLOCK_FlexI2s9 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 15), kCLOCK_Usbhmr0 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 16), kCLOCK_Usbhsl0 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 17), kCLOCK_Sha0 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 18), kCLOCK_SmartCard0 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 19), kCLOCK_SmartCard1 = CLK_GATE_DEFINE(AHB_CLK_CTRL2, 20), kCLOCK_Ct32b3 = CLK_GATE_DEFINE(ASYNC_CLK_CTRL0, 13), kCLOCK_Ct32b4 = CLK_GATE_DEFINE(ASYNC_CLK_CTRL0, 14) } |
Clock gate name used for CLOCK_EnableClock/CLOCK_DisableClock. More... | |
enum | _clock_name { kCLOCK_CoreSysClk, kCLOCK_BusClk, kCLOCK_ClockOut, kCLOCK_FroHf, kCLOCK_UsbPll, kCLOCK_Mclk, kCLOCK_Fro12M, kCLOCK_ExtClk, kCLOCK_PllOut, kCLOCK_UsbClk, kCLOCK_WdtOsc, kCLOCK_Frg, kCLOCK_AsyncApbClk, kCLOCK_FlexI2S } |
Clock name used to get clock frequency. More... | |
enum | _async_clock_src { kCLOCK_AsyncMainClk = 0, kCLOCK_AsyncFro12Mhz, kCLOCK_AsyncAudioPllClk, kCLOCK_AsyncI2cClkFc6 } |
Clock source selections for the asynchronous APB clock. More... | |
enum | _clock_attach_id { kFRO12M_to_MAIN_CLK = MUX_A(CM_MAINCLKSELA, 0) | MUX_B(CM_MAINCLKSELB, 0, 0), kEXT_CLK_to_MAIN_CLK = MUX_A(CM_MAINCLKSELA, 1) | MUX_B(CM_MAINCLKSELB, 0, 0), kWDT_OSC_to_MAIN_CLK = MUX_A(CM_MAINCLKSELA, 2) | MUX_B(CM_MAINCLKSELB, 0, 0), kFRO_HF_to_MAIN_CLK = MUX_A(CM_MAINCLKSELA, 3) | MUX_B(CM_MAINCLKSELB, 0, 0), kSYS_PLL_to_MAIN_CLK = MUX_A(CM_MAINCLKSELA, 0) | MUX_B(CM_MAINCLKSELB, 2, 0), kOSC32K_to_MAIN_CLK = MUX_A(CM_MAINCLKSELA, 0) | MUX_B(CM_MAINCLKSELB, 3, 0), kMAIN_CLK_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 0), kEXT_CLK_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 1), kWDT_OSC_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 2), kFRO_HF_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 3), kSYS_PLL_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 4), kUSB_PLL_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 5), kAUDIO_PLL_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 6), kOSC32K_OSC_to_CLKOUT = MUX_A(CM_CLKOUTCLKSELA, 7), kFRO12M_to_SYS_PLL = MUX_A(CM_SYSPLLCLKSEL, 0), kEXT_CLK_to_SYS_PLL = MUX_A(CM_SYSPLLCLKSEL, 1), kWDT_OSC_to_SYS_PLL = MUX_A(CM_SYSPLLCLKSEL, 2), kOSC32K_to_SYS_PLL = MUX_A(CM_SYSPLLCLKSEL, 3), kNONE_to_SYS_PLL = MUX_A(CM_SYSPLLCLKSEL, 7), kFRO12M_to_AUDIO_PLL = MUX_A(CM_AUDPLLCLKSEL, 0), kEXT_CLK_to_AUDIO_PLL = MUX_A(CM_AUDPLLCLKSEL, 1), kNONE_to_AUDIO_PLL = MUX_A(CM_AUDPLLCLKSEL, 7), kMAIN_CLK_to_SPIFI_CLK = MUX_A(CM_SPIFICLKSEL, 0), kSYS_PLL_to_SPIFI_CLK = MUX_A(CM_SPIFICLKSEL, 1), kUSB_PLL_to_SPIFI_CLK = MUX_A(CM_SPIFICLKSEL, 2), kFRO_HF_to_SPIFI_CLK = MUX_A(CM_SPIFICLKSEL, 3), kAUDIO_PLL_to_SPIFI_CLK = MUX_A(CM_SPIFICLKSEL, 4), kNONE_to_SPIFI_CLK = MUX_A(CM_SPIFICLKSEL, 7), kFRO_HF_to_ADC_CLK = MUX_A(CM_ADCASYNCCLKSEL, 0), kSYS_PLL_to_ADC_CLK = MUX_A(CM_ADCASYNCCLKSEL, 1), kUSB_PLL_to_ADC_CLK = MUX_A(CM_ADCASYNCCLKSEL, 2), kAUDIO_PLL_to_ADC_CLK = MUX_A(CM_ADCASYNCCLKSEL, 3), kNONE_to_ADC_CLK = MUX_A(CM_ADCASYNCCLKSEL, 7), kFRO_HF_to_USB0_CLK = MUX_A(CM_USB0CLKSEL, 0), kSYS_PLL_to_USB0_CLK = MUX_A(CM_USB0CLKSEL, 1), kUSB_PLL_to_USB0_CLK = MUX_A(CM_USB0CLKSEL, 2), kNONE_to_USB0_CLK = MUX_A(CM_USB0CLKSEL, 7), kFRO_HF_to_USB1_CLK = MUX_A(CM_USB1CLKSEL, 0), kSYS_PLL_to_USB1_CLK = MUX_A(CM_USB1CLKSEL, 1), kUSB_PLL_to_USB1_CLK = MUX_A(CM_USB1CLKSEL, 2), kNONE_to_USB1_CLK = MUX_A(CM_USB1CLKSEL, 7), kFRO12M_to_FLEXCOMM0 = MUX_A(CM_FXCOMCLKSEL0, 0), kFRO_HF_to_FLEXCOMM0 = MUX_A(CM_FXCOMCLKSEL0, 1), kAUDIO_PLL_to_FLEXCOMM0 = MUX_A(CM_FXCOMCLKSEL0, 2), kMCLK_to_FLEXCOMM0 = MUX_A(CM_FXCOMCLKSEL0, 3), kFRG_to_FLEXCOMM0 = MUX_A(CM_FXCOMCLKSEL0, 4), kNONE_to_FLEXCOMM0 = MUX_A(CM_FXCOMCLKSEL0, 7), kFRO12M_to_FLEXCOMM1 = MUX_A(CM_FXCOMCLKSEL1, 0), kFRO_HF_to_FLEXCOMM1 = MUX_A(CM_FXCOMCLKSEL1, 1), kAUDIO_PLL_to_FLEXCOMM1 = MUX_A(CM_FXCOMCLKSEL1, 2), kMCLK_to_FLEXCOMM1 = MUX_A(CM_FXCOMCLKSEL1, 3), kFRG_to_FLEXCOMM1 = MUX_A(CM_FXCOMCLKSEL1, 4), kNONE_to_FLEXCOMM1 = MUX_A(CM_FXCOMCLKSEL1, 7), kFRO12M_to_FLEXCOMM2 = MUX_A(CM_FXCOMCLKSEL2, 0), kFRO_HF_to_FLEXCOMM2 = MUX_A(CM_FXCOMCLKSEL2, 1), kAUDIO_PLL_to_FLEXCOMM2 = MUX_A(CM_FXCOMCLKSEL2, 2), kMCLK_to_FLEXCOMM2 = MUX_A(CM_FXCOMCLKSEL2, 3), kFRG_to_FLEXCOMM2 = MUX_A(CM_FXCOMCLKSEL2, 4), kNONE_to_FLEXCOMM2 = MUX_A(CM_FXCOMCLKSEL2, 7), kFRO12M_to_FLEXCOMM3 = MUX_A(CM_FXCOMCLKSEL3, 0), kFRO_HF_to_FLEXCOMM3 = MUX_A(CM_FXCOMCLKSEL3, 1), kAUDIO_PLL_to_FLEXCOMM3 = MUX_A(CM_FXCOMCLKSEL3, 2), kMCLK_to_FLEXCOMM3 = MUX_A(CM_FXCOMCLKSEL3, 3), kFRG_to_FLEXCOMM3 = MUX_A(CM_FXCOMCLKSEL3, 4), kNONE_to_FLEXCOMM3 = MUX_A(CM_FXCOMCLKSEL3, 7), kFRO12M_to_FLEXCOMM4 = MUX_A(CM_FXCOMCLKSEL4, 0), kFRO_HF_to_FLEXCOMM4 = MUX_A(CM_FXCOMCLKSEL4, 1), kAUDIO_PLL_to_FLEXCOMM4 = MUX_A(CM_FXCOMCLKSEL4, 2), kMCLK_to_FLEXCOMM4 = MUX_A(CM_FXCOMCLKSEL4, 3), kFRG_to_FLEXCOMM4 = MUX_A(CM_FXCOMCLKSEL4, 4), kNONE_to_FLEXCOMM4 = MUX_A(CM_FXCOMCLKSEL4, 7), kFRO12M_to_FLEXCOMM5 = MUX_A(CM_FXCOMCLKSEL5, 0), kFRO_HF_to_FLEXCOMM5 = MUX_A(CM_FXCOMCLKSEL5, 1), kAUDIO_PLL_to_FLEXCOMM5 = MUX_A(CM_FXCOMCLKSEL5, 2), kMCLK_to_FLEXCOMM5 = MUX_A(CM_FXCOMCLKSEL5, 3), kFRG_to_FLEXCOMM5 = MUX_A(CM_FXCOMCLKSEL5, 4), kNONE_to_FLEXCOMM5 = MUX_A(CM_FXCOMCLKSEL5, 7), kFRO12M_to_FLEXCOMM6 = MUX_A(CM_FXCOMCLKSEL6, 0), kFRO_HF_to_FLEXCOMM6 = MUX_A(CM_FXCOMCLKSEL6, 1), kAUDIO_PLL_to_FLEXCOMM6 = MUX_A(CM_FXCOMCLKSEL6, 2), kMCLK_to_FLEXCOMM6 = MUX_A(CM_FXCOMCLKSEL6, 3), kFRG_to_FLEXCOMM6 = MUX_A(CM_FXCOMCLKSEL6, 4), kNONE_to_FLEXCOMM6 = MUX_A(CM_FXCOMCLKSEL6, 7), kFRO12M_to_FLEXCOMM7 = MUX_A(CM_FXCOMCLKSEL7, 0), kFRO_HF_to_FLEXCOMM7 = MUX_A(CM_FXCOMCLKSEL7, 1), kAUDIO_PLL_to_FLEXCOMM7 = MUX_A(CM_FXCOMCLKSEL7, 2), kMCLK_to_FLEXCOMM7 = MUX_A(CM_FXCOMCLKSEL7, 3), kFRG_to_FLEXCOMM7 = MUX_A(CM_FXCOMCLKSEL7, 4), kNONE_to_FLEXCOMM7 = MUX_A(CM_FXCOMCLKSEL7, 7), kFRO12M_to_FLEXCOMM8 = MUX_A(CM_FXCOMCLKSEL8, 0), kFRO_HF_to_FLEXCOMM8 = MUX_A(CM_FXCOMCLKSEL8, 1), kAUDIO_PLL_to_FLEXCOMM8 = MUX_A(CM_FXCOMCLKSEL8, 2), kMCLK_to_FLEXCOMM8 = MUX_A(CM_FXCOMCLKSEL8, 3), kFRG_to_FLEXCOMM8 = MUX_A(CM_FXCOMCLKSEL8, 4), kNONE_to_FLEXCOMM8 = MUX_A(CM_FXCOMCLKSEL8, 7), kFRO12M_to_FLEXCOMM9 = MUX_A(CM_FXCOMCLKSEL9, 0), kFRO_HF_to_FLEXCOMM9 = MUX_A(CM_FXCOMCLKSEL9, 1), kAUDIO_PLL_to_FLEXCOMM9 = MUX_A(CM_FXCOMCLKSEL9, 2), kMCLK_to_FLEXCOMM9 = MUX_A(CM_FXCOMCLKSEL9, 3), kFRG_to_FLEXCOMM9 = MUX_A(CM_FXCOMCLKSEL9, 4), kNONE_to_FLEXCOMM9 = MUX_A(CM_FXCOMCLKSEL9, 7), kFRO_HF_to_MCLK = MUX_A(CM_MCLKCLKSEL, 0), kAUDIO_PLL_to_MCLK = MUX_A(CM_MCLKCLKSEL, 1), kNONE_to_MCLK = MUX_A(CM_MCLKCLKSEL, 7), kMAIN_CLK_to_FRG = MUX_A(CM_FRGCLKSEL, 0), kSYS_PLL_to_FRG = MUX_A(CM_FRGCLKSEL, 1), kFRO12M_to_FRG = MUX_A(CM_FRGCLKSEL, 2), kFRO_HF_to_FRG = MUX_A(CM_FRGCLKSEL, 3), kNONE_to_FRG = MUX_A(CM_FRGCLKSEL, 7), kFRO12M_to_DMIC = MUX_A(CM_DMICCLKSEL, 0), kFRO_HF_DIV_to_DMIC = MUX_A(CM_DMICCLKSEL, 1), kAUDIO_PLL_to_DMIC = MUX_A(CM_DMICCLKSEL, 2), kMCLK_to_DMIC = MUX_A(CM_DMICCLKSEL, 3), kNONE_to_DMIC = MUX_A(CM_DMICCLKSEL, 7), kMAIN_CLK_to_SCT_CLK = MUX_A(CM_SCTCLKSEL, 0), kSYS_PLL_to_SCT_CLK = MUX_A(CM_SCTCLKSEL, 1), kFRO_HF_to_SCT_CLK = MUX_A(CM_SCTCLKSEL, 2), kAUDIO_PLL_to_SCT_CLK = MUX_A(CM_SCTCLKSEL, 3), kNONE_to_SCT_CLK = MUX_A(CM_SCTCLKSEL, 7), kMAIN_CLK_to_SDIO_CLK = MUX_A(CM_SDIOCLKSEL, 0), kSYS_PLL_to_SDIO_CLK = MUX_A(CM_SDIOCLKSEL, 1), kUSB_PLL_to_SDIO_CLK = MUX_A(CM_SDIOCLKSEL, 2), kFRO_HF_to_SDIO_CLK = MUX_A(CM_SDIOCLKSEL, 3), kAUDIO_PLL_to_SDIO_CLK = MUX_A(CM_SDIOCLKSEL, 4), kNONE_to_SDIO_CLK = MUX_A(CM_SDIOCLKSEL, 7), kMAIN_CLK_to_LCD_CLK = MUX_A(CM_LCDCLKSEL, 0), kLCDCLKIN_to_LCD_CLK = MUX_A(CM_LCDCLKSEL, 1), kFRO_HF_to_LCD_CLK = MUX_A(CM_LCDCLKSEL, 2), kNONE_to_LCD_CLK = MUX_A(CM_LCDCLKSEL, 3), kMAIN_CLK_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 0), kFRO12M_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 1), kAUDIO_PLL_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 2), kI2C_CLK_FC6_to_ASYNC_APB = MUX_A(CM_ASYNCAPB, 3), kNONE_to_NONE = (int)0x80000000U } |
The enumerator of clock attach Id. More... | |
enum | _clock_div_name { kCLOCK_DivSystickClk = 0, kCLOCK_DivArmTrClkDiv = 1, kCLOCK_DivCan0Clk = 2, kCLOCK_DivCan1Clk = 3, kCLOCK_DivSmartCard0Clk = 4, kCLOCK_DivSmartCard1Clk = 5, kCLOCK_DivAhbClk = 32, kCLOCK_DivClkOut = 33, kCLOCK_DivFrohfClk = 34, kCLOCK_DivSpifiClk = 36, kCLOCK_DivAdcAsyncClk = 37, kCLOCK_DivUsb0Clk = 38, kCLOCK_DivUsb1Clk = 39, kCLOCK_DivFrg = 40, kCLOCK_DivDmicClk = 42, kCLOCK_DivMClk = 43, kCLOCK_DivLcdClk = 44, kCLOCK_DivSctClk = 45, kCLOCK_DivEmcClk = 46, kCLOCK_DivSdioClk = 47 } |
Clock dividers. More... | |
enum | _clock_flashtim { kCLOCK_Flash1Cycle = 0U, kCLOCK_Flash2Cycle, kCLOCK_Flash3Cycle, kCLOCK_Flash4Cycle, kCLOCK_Flash5Cycle, kCLOCK_Flash6Cycle, kCLOCK_Flash7Cycle, kCLOCK_Flash8Cycle, kCLOCK_Flash9Cycle } |
FLASH Access time definitions. More... | |
enum | _pll_error { kStatus_PLL_Success = MAKE_STATUS(kStatusGroup_Generic, 0), kStatus_PLL_OutputTooLow = MAKE_STATUS(kStatusGroup_Generic, 1), kStatus_PLL_OutputTooHigh = MAKE_STATUS(kStatusGroup_Generic, 2), kStatus_PLL_InputTooLow = MAKE_STATUS(kStatusGroup_Generic, 3), kStatus_PLL_InputTooHigh = MAKE_STATUS(kStatusGroup_Generic, 4), kStatus_PLL_OutsideIntLimit = MAKE_STATUS(kStatusGroup_Generic, 5), kStatus_PLL_CCOTooLow = MAKE_STATUS(kStatusGroup_Generic, 6), kStatus_PLL_CCOTooHigh = MAKE_STATUS(kStatusGroup_Generic, 7) } |
PLL status definitions. More... | |
enum | _clock_usb_src { kCLOCK_UsbSrcFro = (uint32_t)kCLOCK_FroHf, kCLOCK_UsbSrcSystemPll = (uint32_t)kCLOCK_PllOut, kCLOCK_UsbSrcMainClock = (uint32_t)kCLOCK_CoreSysClk, kCLOCK_UsbSrcUsbPll = (uint32_t)kCLOCK_UsbPll, kCLOCK_UsbSrcNone } |
USB clock source definition. More... | |
enum | _usb_pll_psel |
USB PDEL Divider. More... | |
Functions | |
static void | CLOCK_SetFLASHAccessCycles (clock_flashtim_t clks) |
Set FLASH memory access time in clocks. More... | |
status_t | CLOCK_SetupFROClocking (uint32_t iFreq) |
Initialize the Core clock to given frequency (12, 48 or 96 MHz). Turns on FRO and uses default CCO, if freq is 12000000, then high speed output is off, else high speed output is enabled. More... | |
void | CLOCK_AttachClk (clock_attach_id_t connection) |
Configure the clock selection muxes. More... | |
clock_attach_id_t | CLOCK_GetClockAttachId (clock_attach_id_t attachId) |
Get the actual clock attach id. This fuction uses the offset in input attach id, then it reads the actual source value in the register and combine the offset to obtain an actual attach id. More... | |
void | CLOCK_SetClkDiv (clock_div_name_t div_name, uint32_t divided_by_value, bool reset) |
Setup peripheral clock dividers. More... | |
void | CLOCK_SetFLASHAccessCyclesForFreq (uint32_t iFreq) |
Set the flash wait states for the input freuqency. More... | |
uint32_t | CLOCK_SetFRGClock (uint32_t freq) |
Set the frg output frequency. More... | |
uint32_t | CLOCK_GetFRGInputClock (void) |
Return Frequency of FRG input clock. More... | |
uint32_t | CLOCK_GetFreq (clock_name_t clockName) |
Return Frequency of selected clock. More... | |
uint32_t | CLOCK_GetFro12MFreq (void) |
Return Frequency of FRO 12MHz. More... | |
uint32_t | CLOCK_GetClockOutClkFreq (void) |
Return Frequency of ClockOut. More... | |
uint32_t | CLOCK_GetSpifiClkFreq (void) |
Return Frequency of Spifi Clock. More... | |
uint32_t | CLOCK_GetAdcClkFreq (void) |
Return Frequency of Adc Clock. More... | |
uint32_t | CLOCK_GetMCanClkFreq (uint32_t MCanSel) |
brief Return Frequency of MCAN Clock param MCanSel : 0U: MCAN0; 1U: MCAN1 return Frequency of MCAN Clock | |
uint32_t | CLOCK_GetUsb0ClkFreq (void) |
Return Frequency of Usb0 Clock. More... | |
uint32_t | CLOCK_GetUsb1ClkFreq (void) |
Return Frequency of Usb1 Clock. More... | |
uint32_t | CLOCK_GetMclkClkFreq (void) |
Return Frequency of MClk Clock. More... | |
uint32_t | CLOCK_GetSctClkFreq (void) |
Return Frequency of SCTimer Clock. More... | |
uint32_t | CLOCK_GetSdioClkFreq (void) |
Return Frequency of SDIO Clock. More... | |
uint32_t | CLOCK_GetLcdClkFreq (void) |
Return Frequency of LCD Clock. More... | |
uint32_t | CLOCK_GetLcdClkIn (void) |
Return Frequency of LCD CLKIN Clock. More... | |
uint32_t | CLOCK_GetExtClkFreq (void) |
Return Frequency of External Clock. More... | |
uint32_t | CLOCK_GetWdtOscFreq (void) |
Return Frequency of Watchdog Oscillator. More... | |
uint32_t | CLOCK_GetFroHfFreq (void) |
Return Frequency of High-Freq output of FRO. More... | |
uint32_t | CLOCK_GetFrgClkFreq (void) |
Return Frequency of frg. More... | |
uint32_t | CLOCK_GetDmicClkFreq (void) |
Return Frequency of dmic. More... | |
uint32_t | CLOCK_GetPllOutFreq (void) |
Return Frequency of PLL. More... | |
uint32_t | CLOCK_GetUsbPllOutFreq (void) |
Return Frequency of USB PLL. More... | |
uint32_t | CLOCK_GetAudioPllOutFreq (void) |
Return Frequency of AUDIO PLL. More... | |
uint32_t | CLOCK_GetOsc32KFreq (void) |
Return Frequency of 32kHz osc. More... | |
uint32_t | CLOCK_GetCoreSysClkFreq (void) |
Return Frequency of Core System. More... | |
uint32_t | CLOCK_GetI2SMClkFreq (void) |
Return Frequency of I2S MCLK Clock. More... | |
uint32_t | CLOCK_GetFlexCommClkFreq (uint32_t id) |
Return Frequency of Flexcomm functional Clock. More... | |
__STATIC_INLINE async_clock_src_t | CLOCK_GetAsyncApbClkSrc (void) |
Return Asynchronous APB Clock source. More... | |
uint32_t | CLOCK_GetAsyncApbClkFreq (void) |
Return Frequency of Asynchronous APB Clock. More... | |
__STATIC_INLINE uint32_t | CLOCK_GetEmcClkFreq (void) |
Return EMC source. More... | |
uint32_t | CLOCK_GetAudioPLLInClockRate (void) |
Return Audio PLL input clock rate. More... | |
uint32_t | CLOCK_GetSystemPLLInClockRate (void) |
Return System PLL input clock rate. More... | |
uint32_t | CLOCK_GetSystemPLLOutClockRate (bool recompute) |
Return System PLL output clock rate. More... | |
uint32_t | CLOCK_GetAudioPLLOutClockRate (bool recompute) |
Return System AUDIO PLL output clock rate. More... | |
uint32_t | CLOCK_GetUsbPLLOutClockRate (bool recompute) |
Return System USB PLL output clock rate. More... | |
__STATIC_INLINE void | CLOCK_SetBypassPLL (bool bypass) |
Enables and disables PLL bypass mode. More... | |
__STATIC_INLINE bool | CLOCK_IsSystemPLLLocked (void) |
Check if PLL is locked or not. More... | |
__STATIC_INLINE bool | CLOCK_IsUsbPLLLocked (void) |
Check if USB PLL is locked or not. More... | |
__STATIC_INLINE bool | CLOCK_IsAudioPLLLocked (void) |
Check if AUDIO PLL is locked or not. More... | |
__STATIC_INLINE void | CLOCK_Enable_SysOsc (bool enable) |
Enables and disables SYS OSC. More... | |
void | CLOCK_SetStoredPLLClockRate (uint32_t rate) |
Store the current PLL rate. More... | |
void | CLOCK_SetStoredAudioPLLClockRate (uint32_t rate) |
Store the current AUDIO PLL rate. More... | |
uint32_t | CLOCK_GetSystemPLLOutFromSetup (pll_setup_t *pSetup) |
Return System PLL output clock rate from setup structure. More... | |
uint32_t | CLOCK_GetAudioPLLOutFromSetup (pll_setup_t *pSetup) |
Return System AUDIO PLL output clock rate from setup structure. More... | |
uint32_t | CLOCK_GetAudioPLLOutFromFractSetup (pll_setup_t *pSetup) |
Return System AUDIO PLL output clock rate from audio fractioanl setup structure. More... | |
uint32_t | CLOCK_GetUsbPLLOutFromSetup (const usb_pll_setup_t *pSetup) |
Return System USB PLL output clock rate from setup structure. More... | |
void | CLOCK_SetStoredUsbPLLClockRate (uint32_t rate) |
Set USB PLL output frequency. More... | |
pll_error_t | CLOCK_SetupPLLData (pll_config_t *pControl, pll_setup_t *pSetup) |
Set PLL output based on the passed PLL setup data. More... | |
pll_error_t | CLOCK_SetupAudioPLLData (pll_config_t *pControl, pll_setup_t *pSetup) |
Set AUDIO PLL output based on the passed AUDIO PLL setup data. More... | |
pll_error_t | CLOCK_SetupSystemPLLPrec (pll_setup_t *pSetup, uint32_t flagcfg) |
Set PLL output from PLL setup structure (precise frequency) More... | |
pll_error_t | CLOCK_SetupAudioPLLPrec (pll_setup_t *pSetup, uint32_t flagcfg) |
Set AUDIO PLL output from AUDIOPLL setup structure (precise frequency) More... | |
pll_error_t | CLOCK_SetupAudioPLLPrecFract (pll_setup_t *pSetup, uint32_t flagcfg) |
Set AUDIO PLL output from AUDIOPLL setup structure using the Audio Fractional divider register(precise frequency) More... | |
pll_error_t | CLOCK_SetPLLFreq (const pll_setup_t *pSetup) |
Set PLL output from PLL setup structure (precise frequency) More... | |
pll_error_t | CLOCK_SetAudioPLLFreq (const pll_setup_t *pSetup) |
Set Audio PLL output from Audio PLL setup structure (precise frequency) More... | |
pll_error_t | CLOCK_SetUsbPLLFreq (const usb_pll_setup_t *pSetup) |
Set USB PLL output from USB PLL setup structure (precise frequency) More... | |
void | CLOCK_SetupSystemPLLMult (uint32_t multiply_by, uint32_t input_freq) |
Set PLL output based on the multiplier and input frequency. More... | |
static void | CLOCK_DisableUsbDevicefs0Clock (clock_ip_name_t clk) |
Disable USB clock. More... | |
bool | CLOCK_EnableUsbfs0DeviceClock (clock_usb_src_t src, uint32_t freq) |
Enable USB Device FS clock. More... | |
bool | CLOCK_EnableUsbfs0HostClock (clock_usb_src_t src, uint32_t freq) |
Enable USB HOST FS clock. More... | |
bool | CLOCK_EnableUsbhs0DeviceClock (clock_usb_src_t src, uint32_t freq) |
Enable USB Device HS clock. More... | |
bool | CLOCK_EnableUsbhs0HostClock (clock_usb_src_t src, uint32_t freq) |
Enable USB HOST HS clock. More... | |
Driver version | |
#define | FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 5, 4)) |
CLOCK driver version 2.5.4. More... | |
struct _pll_config |
This structure can be used to configure the settings for a PLL setup structure. Fill in the desired configuration for the PLL and call the PLL setup function to fill in a PLL setup structure.
Data Fields | |
uint32_t | desiredRate |
Desired PLL rate in Hz. | |
uint32_t | inputRate |
PLL input clock in Hz, only used if PLL_CONFIGFLAG_USEINRATE flag is set. | |
uint32_t | flags |
PLL configuration flags, Or'ed value of PLL_CONFIGFLAG_* definitions. | |
struct _pll_setup |
It can be populated with the PLL setup function. If powering up or waiting for PLL lock, the PLL input clock source should be configured prior to PLL setup.
Data Fields | |
uint32_t | pllctrl |
PLL control register SYSPLLCTRL. | |
uint32_t | pllndec |
PLL NDEC register SYSPLLNDEC. | |
uint32_t | pllpdec |
PLL PDEC register SYSPLLPDEC. | |
uint32_t | pllmdec |
PLL MDEC registers SYSPLLPDEC. | |
uint32_t | pllRate |
Acutal PLL rate. | |
uint32_t | audpllfrac |
only aduio PLL has this function | |
uint32_t | flags |
PLL setup flags, Or'ed value of PLL_SETUPFLAG_* definitions. | |
struct _usb_pll_setup |
It can be populated with the USB PLL setup function. If powering up or waiting for USB PLL lock, the PLL input clock source should be configured prior to USB PLL setup.
Data Fields | |
uint8_t | msel |
USB PLL control register msel:1U-256U. | |
uint8_t | psel |
USB PLL control register psel:only support inter 1U 2U 4U 8U. | |
uint8_t | nsel |
USB PLL control register nsel:only suppoet inter 1U 2U 3U 4U. | |
bool | direct |
USB PLL CCO output control. | |
bool | bypass |
USB PLL inout clock bypass control. | |
bool | fbsel |
USB PLL ineter mode and non-integer mode control. | |
uint32_t | inputRate |
USB PLL input rate. | |
#define FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 5, 4)) |
#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.
#define CLOCK_USR_CFG_PLL_CONFIG_CACHE_COUNT 2U |
Once define this MACRO to be non-zero value, CLOCK_PllGetConfig() function would cache the recent calulation and accelerate the execution to get the right settings.
#define CLOCK_FROHF_SETTING_API_ROM_ADDRESS (0x030091DFU) |
#define set_fro_frequency | ( | iFreq | ) | (*((void (*)(uint32_t iFreq))(CLOCK_FROHF_SETTING_API_ROM_ADDRESS)))(iFreq) |
Initialize the Core clock to given frequency (12, 48 or 96 MHz), this API is implememnt in ROM code. Turns on FRO and uses default CCO, if freq is 12000000, then high speed output is off, else high speed output is enabled. Usage: set_fro_frequency(frequency), (frequency must be one of 12, 48 or 96 MHz)
#define ADC_CLOCKS |
#define ROM_CLOCKS |
#define SRAM_CLOCKS |
#define FLASH_CLOCKS |
#define FMC_CLOCKS |
#define EEPROM_CLOCKS |
#define SPIFI_CLOCKS |
#define INPUTMUX_CLOCKS |
#define IOCON_CLOCKS |
#define GPIO_CLOCKS |
#define PINT_CLOCKS |
#define GINT_CLOCKS |
#define DMA_CLOCKS |
#define CRC_CLOCKS |
#define WWDT_CLOCKS |
#define RTC_CLOCKS |
#define ADC0_CLOCKS |
#define MRT_CLOCKS |
#define RIT_CLOCKS |
#define SCT_CLOCKS |
#define MCAN_CLOCKS |
#define UTICK_CLOCKS |
#define FLEXCOMM_CLOCKS |
#define LPUART_CLOCKS |
#define BI2C_CLOCKS |
#define LPSI_CLOCKS |
#define FLEXI2S_CLOCKS |
#define DMIC_CLOCKS |
#define CTIMER_CLOCKS |
#define LCD_CLOCKS |
#define SDIO_CLOCKS |
#define USBRAM_CLOCKS |
#define EMC_CLOCKS |
#define ETH_CLOCKS |
#define AES_CLOCKS |
#define OTP_CLOCKS |
#define RNG_CLOCKS |
#define USBHMR0_CLOCKS |
#define USBHSL0_CLOCKS |
#define SHA0_CLOCKS |
#define SMARTCARD_CLOCKS |
#define USBD_CLOCKS |
#define USBH_CLOCKS |
#define CLK_GATE_REG_OFFSET_SHIFT 8U |
#define CLK_ATTACH_ID | ( | mux, | |
sel, | |||
pos | |||
) | ((((mux) << 0U) | (((sel) + 1U) & 0xFU) << 8U) << ((pos)*12U)) |
[4 bits for choice, 0 means invalid choice] [8 bits mux ID]*
#define PLL_CONFIGFLAG_USEINRATE (1UL << 0U) |
When the PLL_CONFIGFLAG_USEINRATE flag is selected, the 'InputRate' field in the configuration structure must be assigned with the expected PLL frequency. If the PLL_CONFIGFLAG_USEINRATE is not used, 'InputRate' is ignored in the configuration function and the driver will determine the PLL rate from the currently selected PLL source. This flag might be used to configure the PLL input clock more accurately when using the WDT oscillator or a more dyanmic CLKIN source.
When the PLL_CONFIGFLAG_FORCENOFRACT flag is selected, the PLL hardware for the automatic bandwidth selection, Spread Spectrum (SS) support, and fractional M-divider are not used.
Flag to use InputRate in PLL configuration structure for setup
#define PLL_SETUPFLAG_POWERUP (1UL << 0U) |
Setup will power on the PLL after setup
typedef enum _clock_ip_name clock_ip_name_t |
typedef enum _clock_name clock_name_t |
typedef struct _pll_config pll_config_t |
This structure can be used to configure the settings for a PLL setup structure. Fill in the desired configuration for the PLL and call the PLL setup function to fill in a PLL setup structure.
typedef struct _pll_setup pll_setup_t |
It can be populated with the PLL setup function. If powering up or waiting for PLL lock, the PLL input clock source should be configured prior to PLL setup.
typedef enum _clock_usb_src clock_usb_src_t |
typedef enum _usb_pll_psel usb_pll_psel |
typedef struct _usb_pll_setup usb_pll_setup_t |
It can be populated with the USB PLL setup function. If powering up or waiting for USB PLL lock, the PLL input clock source should be configured prior to USB PLL setup.
enum _clock_ip_name |
enum _clock_name |
enum _async_clock_src |
enum _clock_attach_id |
enum _clock_div_name |
enum _clock_flashtim |
enum _pll_error |
enum _clock_usb_src |
enum _usb_pll_psel |
|
inlinestatic |
clks | : Clock cycles for FLASH access |
status_t CLOCK_SetupFROClocking | ( | uint32_t | iFreq | ) |
iFreq | : Desired frequency (must be one of CLK_FRO_12MHZ or CLK_FRO_48MHZ or CLK_FRO_96MHZ) |
void CLOCK_AttachClk | ( | clock_attach_id_t | connection | ) |
connection | : Clock to be configured. |
clock_attach_id_t CLOCK_GetClockAttachId | ( | clock_attach_id_t | attachId | ) |
attachId | : Clock attach id to get. |
void CLOCK_SetClkDiv | ( | clock_div_name_t | div_name, |
uint32_t | divided_by_value, | ||
bool | reset | ||
) |
div_name | : Clock divider name |
divided_by_value,: | Value to be divided |
reset | : Whether to reset the divider counter. |
void CLOCK_SetFLASHAccessCyclesForFreq | ( | uint32_t | iFreq | ) |
iFreq | : Input frequency |
uint32_t CLOCK_SetFRGClock | ( | uint32_t | freq | ) |
freq | : output frequency |
uint32_t CLOCK_GetFRGInputClock | ( | void | ) |
uint32_t CLOCK_GetFreq | ( | clock_name_t | clockName | ) |
uint32_t CLOCK_GetFro12MFreq | ( | void | ) |
uint32_t CLOCK_GetClockOutClkFreq | ( | void | ) |
uint32_t CLOCK_GetSpifiClkFreq | ( | void | ) |
uint32_t CLOCK_GetAdcClkFreq | ( | void | ) |
uint32_t CLOCK_GetUsb0ClkFreq | ( | void | ) |
uint32_t CLOCK_GetUsb1ClkFreq | ( | void | ) |
uint32_t CLOCK_GetMclkClkFreq | ( | void | ) |
uint32_t CLOCK_GetSctClkFreq | ( | void | ) |
uint32_t CLOCK_GetSdioClkFreq | ( | void | ) |
uint32_t CLOCK_GetLcdClkFreq | ( | void | ) |
uint32_t CLOCK_GetLcdClkIn | ( | void | ) |
uint32_t CLOCK_GetExtClkFreq | ( | void | ) |
uint32_t CLOCK_GetWdtOscFreq | ( | void | ) |
uint32_t CLOCK_GetFroHfFreq | ( | void | ) |
uint32_t CLOCK_GetFrgClkFreq | ( | void | ) |
uint32_t CLOCK_GetDmicClkFreq | ( | void | ) |
uint32_t CLOCK_GetPllOutFreq | ( | void | ) |
uint32_t CLOCK_GetUsbPllOutFreq | ( | void | ) |
uint32_t CLOCK_GetAudioPllOutFreq | ( | void | ) |
uint32_t CLOCK_GetOsc32KFreq | ( | void | ) |
uint32_t CLOCK_GetCoreSysClkFreq | ( | void | ) |
uint32_t CLOCK_GetI2SMClkFreq | ( | void | ) |
uint32_t CLOCK_GetFlexCommClkFreq | ( | uint32_t | id | ) |
__STATIC_INLINE async_clock_src_t CLOCK_GetAsyncApbClkSrc | ( | void | ) |
uint32_t CLOCK_GetAsyncApbClkFreq | ( | void | ) |
__STATIC_INLINE uint32_t CLOCK_GetEmcClkFreq | ( | void | ) |
uint32_t CLOCK_GetAudioPLLInClockRate | ( | void | ) |
uint32_t CLOCK_GetSystemPLLInClockRate | ( | void | ) |
uint32_t CLOCK_GetSystemPLLOutClockRate | ( | bool | recompute | ) |
recompute | : Forces a PLL rate recomputation if true |
uint32_t CLOCK_GetAudioPLLOutClockRate | ( | bool | recompute | ) |
recompute | : Forces a AUDIO PLL rate recomputation if true |
uint32_t CLOCK_GetUsbPLLOutClockRate | ( | bool | recompute | ) |
recompute | : Forces a USB PLL rate recomputation if true |
__STATIC_INLINE void CLOCK_SetBypassPLL | ( | bool | bypass | ) |
bypass : true to bypass PLL (PLL output = PLL input, false to disable bypass
__STATIC_INLINE bool CLOCK_IsSystemPLLLocked | ( | void | ) |
__STATIC_INLINE bool CLOCK_IsUsbPLLLocked | ( | void | ) |
__STATIC_INLINE bool CLOCK_IsAudioPLLLocked | ( | void | ) |
__STATIC_INLINE void CLOCK_Enable_SysOsc | ( | bool | enable | ) |
enable : true to enable SYS OSC, false to disable SYS OSC
void CLOCK_SetStoredPLLClockRate | ( | uint32_t | rate | ) |
rate,: | Current rate of the PLL |
void CLOCK_SetStoredAudioPLLClockRate | ( | uint32_t | rate | ) |
rate,: | Current rate of the PLL |
uint32_t CLOCK_GetSystemPLLOutFromSetup | ( | pll_setup_t * | pSetup | ) |
pSetup | : Pointer to a PLL setup structure |
uint32_t CLOCK_GetAudioPLLOutFromSetup | ( | pll_setup_t * | pSetup | ) |
pSetup | : Pointer to a PLL setup structure |
uint32_t CLOCK_GetAudioPLLOutFromFractSetup | ( | pll_setup_t * | pSetup | ) |
pSetup | : Pointer to a PLL setup structure |
uint32_t CLOCK_GetUsbPLLOutFromSetup | ( | const usb_pll_setup_t * | pSetup | ) |
pSetup | : Pointer to a PLL setup structure |
void CLOCK_SetStoredUsbPLLClockRate | ( | uint32_t | rate | ) |
rate | : frequency value |
pll_error_t CLOCK_SetupPLLData | ( | pll_config_t * | pControl, |
pll_setup_t * | pSetup | ||
) |
pControl | : Pointer to populated PLL control structure to generate setup with |
pSetup | : Pointer to PLL setup structure to be filled |
pll_error_t CLOCK_SetupAudioPLLData | ( | pll_config_t * | pControl, |
pll_setup_t * | pSetup | ||
) |
pControl | : Pointer to populated PLL control structure to generate setup with |
pSetup | : Pointer to PLL setup structure to be filled |
pll_error_t CLOCK_SetupSystemPLLPrec | ( | pll_setup_t * | pSetup, |
uint32_t | flagcfg | ||
) |
pSetup | : Pointer to populated PLL setup structure |
flagcfg | : Flag configuration for PLL config structure |
pll_error_t CLOCK_SetupAudioPLLPrec | ( | pll_setup_t * | pSetup, |
uint32_t | flagcfg | ||
) |
pSetup | : Pointer to populated PLL setup structure |
flagcfg | : Flag configuration for PLL config structure |
pll_error_t CLOCK_SetupAudioPLLPrecFract | ( | pll_setup_t * | pSetup, |
uint32_t | flagcfg | ||
) |
pSetup | : Pointer to populated PLL setup structure |
flagcfg | : Flag configuration for PLL config structure |
pll_error_t CLOCK_SetPLLFreq | ( | const pll_setup_t * | pSetup | ) |
pSetup | : Pointer to populated PLL setup structure |
pll_error_t CLOCK_SetAudioPLLFreq | ( | const pll_setup_t * | pSetup | ) |
pSetup | : Pointer to populated PLL setup structure |
pll_error_t CLOCK_SetUsbPLLFreq | ( | const usb_pll_setup_t * | pSetup | ) |
pSetup | : Pointer to populated USB PLL setup structure |
void CLOCK_SetupSystemPLLMult | ( | uint32_t | multiply_by, |
uint32_t | input_freq | ||
) |
multiply_by | : multiplier |
input_freq | : Clock input frequency of the PLL |
|
inlinestatic |
Disable USB clock.
bool CLOCK_EnableUsbfs0DeviceClock | ( | clock_usb_src_t | src, |
uint32_t | freq | ||
) |
src | : clock source |
freq,: | clock frequency Enable USB Device Full Speed clock. |
bool CLOCK_EnableUsbfs0HostClock | ( | clock_usb_src_t | src, |
uint32_t | freq | ||
) |
src | : clock source |
freq,: | clock frequency Enable USB HOST Full Speed clock. |
bool CLOCK_EnableUsbhs0DeviceClock | ( | clock_usb_src_t | src, |
uint32_t | freq | ||
) |
src | : clock source |
freq,: | clock frequency Enable USB Device High Speed clock. |
bool CLOCK_EnableUsbhs0HostClock | ( | clock_usb_src_t | src, |
uint32_t | freq | ||
) |
src | : clock source |
freq,: | clock frequency Enable USB HOST High Speed clock. |