![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The MCUXpresso SDK provides APIs for MCUXpresso SDK devices' clock operation.
Files | |
| file | fsl_clock.h |
Data Structures | |
| struct | clock_usb_pll_config_t |
| PLL configuration for USB. More... | |
| struct | clock_sys_pll_config_t |
| PLL configuration for System. More... | |
| struct | clock_audio_pll_config_t |
| PLL configuration for AUDIO and VIDEO. More... | |
| struct | clock_enet_pll_config_t |
| PLL configuration for ENET. More... | |
Macros | |
| #define | FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL 0 |
| Configure whether driver controls clock. More... | |
| #define | CCSR_OFFSET 0x0C |
| CCM registers offset. | |
| #define | PLL_SYS_OFFSET 0x30 |
| CCM Analog registers offset. | |
| #define | CCM_ANALOG_TUPLE(reg, shift) (((reg & 0xFFFU) << 16U) | (shift)) |
| CCM ANALOG tuple macros to map corresponding registers and bit fields. | |
| #define | CLKPN_FREQ 0U |
| clock1PN frequency. | |
| #define | ADC_CLOCKS |
| Clock ip name array for ADC. More... | |
| #define | AOI_CLOCKS |
| Clock ip name array for AOI. More... | |
| #define | DCDC_CLOCKS |
| Clock ip name array for DCDC. More... | |
| #define | DCP_CLOCKS |
| Clock ip name array for DCP. More... | |
| #define | DMAMUX_CLOCKS |
| Clock ip name array for DMAMUX_CLOCKS. More... | |
| #define | EDMA_CLOCKS |
| Clock ip name array for DMA. More... | |
| #define | EWM_CLOCKS |
| Clock ip name array for EWM. More... | |
| #define | FLEXIO_CLOCKS |
| Clock ip name array for FLEXIO. More... | |
| #define | FLEXRAM_CLOCKS |
| Clock ip name array for FLEXRAM. More... | |
| #define | FLEXSPI_CLOCKS |
| Clock ip name array for FLEXSPI. More... | |
| #define | GPIO_CLOCKS |
| Clock ip name array for GPIO. More... | |
| #define | GPT_CLOCKS |
| Clock ip name array for GPT. More... | |
| #define | KPP_CLOCKS |
| Clock ip name array for KPP. More... | |
| #define | LPI2C_CLOCKS |
| Clock ip name array for LPI2C. More... | |
| #define | LPSPI_CLOCKS |
| Clock ip name array for LPSPI. More... | |
| #define | LPUART_CLOCKS |
| Clock ip name array for LPUART. More... | |
| #define | OCRAM_EXSC_CLOCKS |
| Clock ip name array for OCRAM EXSC. More... | |
| #define | PIT_CLOCKS |
| Clock ip name array for PIT. More... | |
| #define | PWM_CLOCKS |
| Clock ip name array for PWM. More... | |
| #define | RTWDOG_CLOCKS |
| Clock ip name array for RTWDOG. More... | |
| #define | SAI_CLOCKS |
| Clock ip name array for SAI. More... | |
| #define | TRNG_CLOCKS |
| Clock ip name array for TRNG. More... | |
| #define | WDOG_CLOCKS |
| Clock ip name array for WDOG. More... | |
| #define | SPDIF_CLOCKS |
| Clock ip name array for SPDIF. More... | |
| #define | XBARA_CLOCKS |
| Clock ip name array for XBARA. More... | |
| #define | kCLOCK_CoreSysClk kCLOCK_CpuClk |
| For compatible with other platforms without CCM. More... | |
| #define | CLOCK_GetCoreSysClkFreq CLOCK_GetCpuClkFreq |
| For compatible with other platforms without CCM. More... | |
Enumerations | |
| enum | clock_name_t { kCLOCK_CpuClk = 0x0U, kCLOCK_CoreClk = 0x1U, kCLOCK_IpgClk = 0x2U, kCLOCK_PerClk = 0x3U, kCLOCK_OscClk = 0x4U, kCLOCK_RtcClk = 0x5U, kCLOCK_Usb1PllClk = 0x6U, kCLOCK_Usb1PllPfd0Clk = 0x7U, kCLOCK_Usb1PllPfd1Clk = 0x8U, kCLOCK_Usb1PllPfd2Clk = 0x9U, kCLOCK_Usb1PllPfd3Clk = 0xAU, kCLOCK_SysPllClk = 0xBU, kCLOCK_SysPllPfd0Clk = 0xCU, kCLOCK_SysPllPfd1Clk = 0xDU, kCLOCK_SysPllPfd2Clk = 0xEU, kCLOCK_SysPllPfd3Clk = 0xFU, kCLOCK_EnetPll500MClk = 0x10U, kCLOCK_AudioPllClk = 0x11U } |
| Clock name used to get clock frequency. More... | |
| enum | clock_ip_name_t { , kCLOCK_Aips_tz1 = (0U << 8U) | CCM_CCGR0_CG0_SHIFT, kCLOCK_Aips_tz2 = (0U << 8U) | CCM_CCGR0_CG1_SHIFT, kCLOCK_Mqs = (0U << 8U) | CCM_CCGR0_CG2_SHIFT, kCLOCK_FlexSpiExsc = (0U << 8U) | CCM_CCGR0_CG3_SHIFT, kCLOCK_Sim_m_clk_r = (0U << 8U) | CCM_CCGR0_CG4_SHIFT, kCLOCK_Dcp = (0U << 8U) | CCM_CCGR0_CG5_SHIFT, kCLOCK_Lpuart3 = (0U << 8U) | CCM_CCGR0_CG6_SHIFT, kCLOCK_Trace = (0U << 8U) | CCM_CCGR0_CG11_SHIFT, kCLOCK_Gpt2 = (0U << 8U) | CCM_CCGR0_CG12_SHIFT, kCLOCK_Gpt2S = (0U << 8U) | CCM_CCGR0_CG13_SHIFT, kCLOCK_Lpuart2 = (0U << 8U) | CCM_CCGR0_CG14_SHIFT, kCLOCK_Gpio2 = (0U << 8U) | CCM_CCGR0_CG15_SHIFT, kCLOCK_Lpspi1 = (1U << 8U) | CCM_CCGR1_CG0_SHIFT, kCLOCK_Lpspi2 = (1U << 8U) | CCM_CCGR1_CG1_SHIFT, kCLOCK_Pit = (1U << 8U) | CCM_CCGR1_CG6_SHIFT, kCLOCK_Adc1 = (1U << 8U) | CCM_CCGR1_CG8_SHIFT, kCLOCK_Gpt1 = (1U << 8U) | CCM_CCGR1_CG10_SHIFT, kCLOCK_Gpt1S = (1U << 8U) | CCM_CCGR1_CG11_SHIFT, kCLOCK_Lpuart4 = (1U << 8U) | CCM_CCGR1_CG12_SHIFT, kCLOCK_Gpio1 = (1U << 8U) | CCM_CCGR1_CG13_SHIFT, kCLOCK_Csu = (1U << 8U) | CCM_CCGR1_CG14_SHIFT, kCLOCK_Gpio5 = (1U << 8U) | CCM_CCGR1_CG15_SHIFT, kCLOCK_OcramExsc = (2U << 8U) | CCM_CCGR2_CG0_SHIFT, kCLOCK_IomuxcSnvs = (2U << 8U) | CCM_CCGR2_CG2_SHIFT, kCLOCK_Lpi2c1 = (2U << 8U) | CCM_CCGR2_CG3_SHIFT, kCLOCK_Lpi2c2 = (2U << 8U) | CCM_CCGR2_CG4_SHIFT, kCLOCK_Ocotp = (2U << 8U) | CCM_CCGR2_CG6_SHIFT, kCLOCK_Xbar1 = (2U << 8U) | CCM_CCGR2_CG11_SHIFT, kCLOCK_Aoi = (3U << 8U) | CCM_CCGR3_CG4_SHIFT, kCLOCK_Ewm0 = (3U << 8U) | CCM_CCGR3_CG7_SHIFT, kCLOCK_Wdog1 = (3U << 8U) | CCM_CCGR3_CG8_SHIFT, kCLOCK_FlexRam = (3U << 8U) | CCM_CCGR3_CG9_SHIFT, kCLOCK_IomuxcSnvsGpr = (3U << 8U) | CCM_CCGR3_CG15_SHIFT, kCLOCK_Sim_m7_clk_r = (4U << 8U) | CCM_CCGR4_CG0_SHIFT, kCLOCK_Iomuxc = (4U << 8U) | CCM_CCGR4_CG1_SHIFT, kCLOCK_IomuxcGpr = (4U << 8U) | CCM_CCGR4_CG2_SHIFT, kCLOCK_SimM7 = (4U << 8U) | CCM_CCGR4_CG4_SHIFT, kCLOCK_SimM = (4U << 8U) | CCM_CCGR4_CG6_SHIFT, kCLOCK_SimEms = (4U << 8U) | CCM_CCGR4_CG7_SHIFT, kCLOCK_Pwm1 = (4U << 8U) | CCM_CCGR4_CG8_SHIFT, kCLOCK_Dma_ps = (4U << 8U) | CCM_CCGR4_CG15_SHIFT, kCLOCK_Rom = (5U << 8U) | CCM_CCGR5_CG0_SHIFT, kCLOCK_Flexio1 = (5U << 8U) | CCM_CCGR5_CG1_SHIFT, kCLOCK_Wdog3 = (5U << 8U) | CCM_CCGR5_CG2_SHIFT, kCLOCK_Dma = (5U << 8U) | CCM_CCGR5_CG3_SHIFT, kCLOCK_Kpp = (5U << 8U) | CCM_CCGR5_CG4_SHIFT, kCLOCK_Wdog2 = (5U << 8U) | CCM_CCGR5_CG5_SHIFT, kCLOCK_Spdif = (5U << 8U) | CCM_CCGR5_CG7_SHIFT, kCLOCK_Sai1 = (5U << 8U) | CCM_CCGR5_CG9_SHIFT, kCLOCK_Sai3 = (5U << 8U) | CCM_CCGR5_CG11_SHIFT, kCLOCK_Lpuart1 = (5U << 8U) | CCM_CCGR5_CG12_SHIFT, kCLOCK_SnvsHp = (5U << 8U) | CCM_CCGR5_CG14_SHIFT, kCLOCK_SnvsLp = (5U << 8U) | CCM_CCGR5_CG15_SHIFT, kCLOCK_UsbOh3 = (6U << 8U) | CCM_CCGR6_CG0_SHIFT, kCLOCK_Dcdc = (6U << 8U) | CCM_CCGR6_CG3_SHIFT, kCLOCK_FlexSpi = (6U << 8U) | CCM_CCGR6_CG5_SHIFT, kCLOCK_Trng = (6U << 8U) | CCM_CCGR6_CG6_SHIFT, kCLOCK_SimPer = (6U << 8U) | CCM_CCGR6_CG10_SHIFT, kCLOCK_Anadig = (6U << 8U) | CCM_CCGR6_CG11_SHIFT } |
| CCM CCGR gate control for each module independently. More... | |
| enum | clock_osc_t { kCLOCK_RcOsc = 0U, kCLOCK_XtalOsc = 1U } |
| OSC 24M sorce select. More... | |
| enum | clock_gate_value_t { kCLOCK_ClockNotNeeded = 0U, kCLOCK_ClockNeededRun = 1U, kCLOCK_ClockNeededRunWait = 3U } |
| Clock gate value. More... | |
| enum | clock_mode_t { kCLOCK_ModeRun = 0U, kCLOCK_ModeWait = 1U, kCLOCK_ModeStop = 2U } |
| System clock mode. More... | |
| enum | clock_mux_t { kCLOCK_Pll3SwMux, kCLOCK_PeriphMux, kCLOCK_PrePeriphMux, kCLOCK_TraceMux, kCLOCK_PeriphClk2Mux, kCLOCK_LpspiMux, kCLOCK_FlexspiMux, kCLOCK_FlexspiSrcMux, kCLOCK_Sai3Mux, kCLOCK_Sai1Mux, kCLOCK_PerclkMux, kCLOCK_Flexio1Mux, kCLOCK_UartMux, kCLOCK_SpdifMux, kCLOCK_Lpi2cMux } |
| MUX control names for clock mux setting. More... | |
| enum | clock_div_t { kCLOCK_AhbDiv, kCLOCK_IpgDiv, kCLOCK_LpspiDiv, kCLOCK_FlexspiDiv, kCLOCK_PerclkDiv, kCLOCK_AdcDiv, kCLOCK_TraceDiv, kCLOCK_UartDiv, kCLOCK_Flexio1Div, kCLOCK_Sai3PreDiv, kCLOCK_Sai3Div, kCLOCK_Flexio1PreDiv, kCLOCK_Sai1PreDiv, kCLOCK_Sai1Div, kCLOCK_Spdif0PreDiv, kCLOCK_Spdif0Div, kCLOCK_Lpi2cDiv } |
| DIV control names for clock div setting. More... | |
| enum | clock_usb_src_t { kCLOCK_Usb480M = 0, kCLOCK_UsbSrcUnused = (int)0xFFFFFFFFU } |
| USB clock source definition. More... | |
| enum | clock_usb_phy_src_t { kCLOCK_Usbphy480M = 0 } |
| Source of the USB HS PHY. More... | |
| enum | _clock_pll_clk_src { kCLOCK_PllClkSrc24M = 0U, kCLOCK_PllSrcClkPN = 1U } |
| PLL clock source, bypass cloco source also. More... | |
| enum | clock_pll_t { kCLOCK_PllSys = CCM_ANALOG_TUPLE(PLL_SYS_OFFSET, CCM_ANALOG_PLL_SYS_ENABLE_SHIFT), kCLOCK_PllUsb1 = CCM_ANALOG_TUPLE(PLL_USB1_OFFSET, CCM_ANALOG_PLL_USB1_ENABLE_SHIFT), kCLOCK_PllAudio = CCM_ANALOG_TUPLE(PLL_AUDIO_OFFSET, CCM_ANALOG_PLL_AUDIO_ENABLE_SHIFT), kCLOCK_PllEnet500M = CCM_ANALOG_TUPLE(PLL_ENET_OFFSET, CCM_ANALOG_PLL_ENET_ENET_500M_REF_EN_SHIFT) } |
| PLL name. More... | |
| enum | clock_pfd_t { kCLOCK_Pfd0 = 0U, kCLOCK_Pfd1 = 1U, kCLOCK_Pfd2 = 2U, kCLOCK_Pfd3 = 3U } |
| PLL PFD name. More... | |
Functions | |
| static void | CLOCK_SetMux (clock_mux_t mux, uint32_t value) |
| Set CCM MUX node to certain value. More... | |
| static uint32_t | CLOCK_GetMux (clock_mux_t mux) |
| Get CCM MUX value. More... | |
| static void | CLOCK_SetDiv (clock_div_t divider, uint32_t value) |
| Set CCM DIV node to certain value. More... | |
| static uint32_t | CLOCK_GetDiv (clock_div_t divider) |
| Get CCM DIV node value. More... | |
| static void | CLOCK_ControlGate (clock_ip_name_t name, clock_gate_value_t value) |
| Control the clock gate for specific IP. More... | |
| static void | CLOCK_EnableClock (clock_ip_name_t name) |
| Enable the clock for specific IP. More... | |
| static void | CLOCK_DisableClock (clock_ip_name_t name) |
| Disable the clock for specific IP. More... | |
| static void | CLOCK_SetMode (clock_mode_t mode) |
| Setting the low power mode that system will enter on next assertion of dsm_request signal. More... | |
| static uint32_t | CLOCK_GetOscFreq (void) |
| Gets the OSC clock frequency. More... | |
| uint32_t | CLOCK_GetCoreFreq (void) |
| Gets the CORE clock frequency. More... | |
| uint32_t | CLOCK_GetIpgFreq (void) |
| Gets the IPG clock frequency. More... | |
| uint32_t | CLOCK_GetPerClkFreq (void) |
| Gets the PER clock frequency. More... | |
| uint32_t | CLOCK_GetFreq (clock_name_t name) |
| Gets the clock frequency for a specific clock name. More... | |
| static uint32_t | CLOCK_GetCpuClkFreq (void) |
| Get the CCM CPU/core/system frequency. More... | |
| bool | CLOCK_EnableUsbhs0Clock (clock_usb_src_t src, uint32_t freq) |
| Enable USB HS clock. More... | |
Variables | |
| volatile uint32_t | g_xtalFreq |
| External XTAL (24M OSC/SYSOSC) clock frequency. More... | |
| volatile uint32_t | g_rtcXtalFreq |
| External RTC XTAL (32K OSC) clock frequency. More... | |
Driver version | |
| #define | FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 3, 0)) |
| CLOCK driver version 2.3.0. More... | |
| #define | CCM_ANALOG_PLL_BYPASS_SHIFT (16U) |
| #define | CCM_ANALOG_PLL_BYPASS_SHIFT (16U) |
| #define | CCM_ANALOG_PLL_BYPASS_CLK_SRC_MASK (0xC000U) |
| #define | CCM_ANALOG_PLL_BYPASS_CLK_SRC_MASK (0xC000U) |
| #define | CCM_ANALOG_PLL_BYPASS_CLK_SRC_SHIFT (14U) |
| #define | CCM_ANALOG_PLL_BYPASS_CLK_SRC_SHIFT (14U) |
| #define | SDK_DEVICE_MAXIMUM_CPU_CLOCK_FREQUENCY (500000000UL) |
OSC operations | |
| void | CLOCK_InitExternalClk (bool bypassXtalOsc) |
| Initialize the external 24MHz clock. More... | |
| void | CLOCK_DeinitExternalClk (void) |
| Deinitialize the external 24MHz clock. More... | |
| void | CLOCK_SwitchOsc (clock_osc_t osc) |
| Switch the OSC. More... | |
| static uint32_t | CLOCK_GetRtcFreq (void) |
| Gets the RTC clock frequency. More... | |
| static void | CLOCK_SetXtalFreq (uint32_t freq) |
| Set the XTAL (24M OSC) frequency based on board setting. More... | |
| static void | CLOCK_SetRtcXtalFreq (uint32_t freq) |
| Set the RTC XTAL (32K OSC) frequency based on board setting. More... | |
| void | CLOCK_InitRcOsc24M (void) |
| Initialize the RC oscillator 24MHz clock. | |
| void | CLOCK_DeinitRcOsc24M (void) |
| Power down the RCOSC 24M clock. | |
| struct clock_usb_pll_config_t |
Data Fields | |
| uint8_t | loopDivider |
| PLL loop divider. More... | |
| uint8_t | src |
| Pll clock source, reference _clock_pll_clk_src. | |
| uint8_t clock_usb_pll_config_t::loopDivider |
0 - Fout=Fref*20; 1 - Fout=Fref*22
| struct clock_sys_pll_config_t |
Data Fields | |
| uint8_t | loopDivider |
| PLL loop divider. More... | |
| uint32_t | numerator |
| 30 bit numerator of fractional loop divider. More... | |
| uint32_t | denominator |
| 30 bit denominator of fractional loop divider | |
| uint8_t | src |
| Pll clock source, reference _clock_pll_clk_src. | |
| uint16_t | ss_stop |
| Stop value to get frequency change. More... | |
| uint8_t | ss_enable |
| Enable spread spectrum modulation. | |
| uint16_t | ss_step |
| Step value to get frequency change step. More... | |
| uint8_t clock_sys_pll_config_t::loopDivider |
Intended to be 1 (528M). 0 - Fout=Fref*20; 1 - Fout=Fref*22
| uint32_t clock_sys_pll_config_t::numerator |
| uint16_t clock_sys_pll_config_t::ss_stop |
| uint16_t clock_sys_pll_config_t::ss_step |
| struct clock_audio_pll_config_t |
Data Fields | |
| uint8_t | loopDivider |
| PLL loop divider. More... | |
| uint8_t | postDivider |
| Divider after the PLL, should only be 1, 2, 4, 8, 16. More... | |
| uint32_t | numerator |
| 30 bit numerator of fractional loop divider. More... | |
| uint32_t | denominator |
| 30 bit denominator of fractional loop divider | |
| uint8_t | src |
| Pll clock source, reference _clock_pll_clk_src. | |
| uint8_t clock_audio_pll_config_t::loopDivider |
Valid range for DIV_SELECT divider value: 27~54.
| uint8_t clock_audio_pll_config_t::postDivider |
| uint32_t clock_audio_pll_config_t::numerator |
| struct clock_enet_pll_config_t |
Data Fields | |
| bool | enableClkOutput |
| Power on and enable PLL clock output for ENET0 (ref_enetpll0). More... | |
| bool | enableClkOutput500M |
| Power on and enable PLL clock output for ENET (ref_enetpll500M). More... | |
| bool | enableClkOutput25M |
| Power on and enable PLL clock output for ENET1 (ref_enetpll1). More... | |
| uint8_t | loopDivider |
| Controls the frequency of the ENET0 reference clock. More... | |
| uint8_t | src |
| Pll clock source, reference _clock_pll_clk_src. | |
| bool clock_enet_pll_config_t::enableClkOutput |
| bool clock_enet_pll_config_t::enableClkOutput500M |
| bool clock_enet_pll_config_t::enableClkOutput25M |
| uint8_t clock_enet_pll_config_t::loopDivider |
b00 25MHz b01 50MHz b10 100MHz (not 50% duty cycle) b11 125MHz
| #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 FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 3, 0)) |
| #define ADC_CLOCKS |
| #define AOI_CLOCKS |
| #define DCDC_CLOCKS |
| #define DCP_CLOCKS |
| #define DMAMUX_CLOCKS |
| #define EDMA_CLOCKS |
| #define EWM_CLOCKS |
| #define FLEXIO_CLOCKS |
| #define FLEXRAM_CLOCKS |
| #define FLEXSPI_CLOCKS |
| #define GPIO_CLOCKS |
| #define GPT_CLOCKS |
| #define KPP_CLOCKS |
| #define LPI2C_CLOCKS |
| #define LPSPI_CLOCKS |
| #define LPUART_CLOCKS |
| #define OCRAM_EXSC_CLOCKS |
| #define PIT_CLOCKS |
| #define PWM_CLOCKS |
| #define RTWDOG_CLOCKS |
| #define SAI_CLOCKS |
| #define TRNG_CLOCKS |
| #define WDOG_CLOCKS |
| #define SPDIF_CLOCKS |
| #define XBARA_CLOCKS |
| #define kCLOCK_CoreSysClk kCLOCK_CpuClk |
| #define CLOCK_GetCoreSysClkFreq CLOCK_GetCpuClkFreq |
| enum clock_name_t |
| enum clock_ip_name_t |
| enum clock_osc_t |
| enum clock_gate_value_t |
| enum clock_mode_t |
| enum clock_mux_t |
These constants define the mux control names for clock mux setting.
| enum clock_div_t |
These constants define div control names for clock div setting.
| enum clock_usb_src_t |
| enum clock_usb_phy_src_t |
| enum _clock_pll_clk_src |
| enum clock_pll_t |
| enum clock_pfd_t |
|
inlinestatic |
| mux | Which mux node to set, see clock_mux_t. |
| value | Clock mux value to set, different mux has different value range. |
|
inlinestatic |
| mux | Which mux node to get, see clock_mux_t. |
|
inlinestatic |
| divider | Which div node to set, see clock_div_t. |
| value | Clock div value to set, different divider has different value range. |
|
inlinestatic |
| divider | Which div node to get, see clock_div_t. |
|
inlinestatic |
| name | Which clock to enable, see clock_ip_name_t. |
| value | Clock gate value to set, see clock_gate_value_t. |
|
inlinestatic |
| name | Which clock to enable, see clock_ip_name_t. |
|
inlinestatic |
| name | Which clock to disable, see clock_ip_name_t. |
|
inlinestatic |
| mode | Which mode to enter, see clock_mode_t. |
|
inlinestatic |
This function will return the external XTAL OSC frequency if it is selected as the source of OSC, otherwise internal 24MHz RC OSC frequency will be returned.
| osc | OSC type to get frequency. |
| uint32_t CLOCK_GetCoreFreq | ( | void | ) |
| uint32_t CLOCK_GetIpgFreq | ( | void | ) |
| uint32_t CLOCK_GetPerClkFreq | ( | void | ) |
| uint32_t CLOCK_GetFreq | ( | clock_name_t | name | ) |
This function checks the current clock configurations and then calculates the clock frequency for a specific clock name defined in clock_name_t.
| clockName | Clock names defined in clock_name_t |
|
inlinestatic |
| void CLOCK_InitExternalClk | ( | bool | bypassXtalOsc | ) |
This function supports two modes:
After this function, please call CLOCK_SetXtal0Freq to inform clock driver the external clock frequency.
| bypassXtalOsc | Pass in true to bypass the external crystal oscillator. |
| void CLOCK_DeinitExternalClk | ( | void | ) |
This function disables the external 24MHz clock.
After this function, please call CLOCK_SetXtal0Freq to set external clock frequency to 0.
| void CLOCK_SwitchOsc | ( | clock_osc_t | osc | ) |
This function switches the OSC source for SoC.
| osc | OSC source to switch to. |
|
inlinestatic |
|
inlinestatic |
| freq | The XTAL input clock frequency in Hz. |
|
inlinestatic |
| freq | The RTC XTAL input clock frequency in Hz. |
| bool CLOCK_EnableUsbhs0Clock | ( | clock_usb_src_t | src, |
| uint32_t | freq | ||
| ) |
This function only enables the access to USB HS prepheral, upper layer should first call the CLOCK_EnableUsbhs0PhyPllClock to enable the PHY clock to use USB HS.
| src | USB HS does not care about the clock source, here must be kCLOCK_UsbSrcUnused. |
| freq | USB HS does not care about the clock source, so this parameter is ignored. |
| true | The clock is set successfully. |
| false | The clock source is invalid to get proper USB HS clock. |
| volatile uint32_t g_xtalFreq |
The XTAL (24M OSC/SYSOSC) 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 24MHz,
| volatile uint32_t g_rtcXtalFreq |
The RTC XTAL (32K OSC) clock frequency in Hz, when the clock is setup, use the function CLOCK_SetRtcXtalFreq to set the value in to clock driver.