Go to the source code of this file.
Macros | |
| #define | CLOCK_DIV_INVALID (~0UL) |
| #define | CLK_SRC_GROUP_COMMON (0U) |
| Clock source group definitions. More... | |
| #define | CLK_SRC_GROUP_ADC (1U) |
| #define | CLK_SRC_GROUP_I2S (2U) |
| #define | CLK_SRC_GROUP_WDG (3U) |
| #define | CLK_SRC_GROUP_PMIC (4U) |
| #define | CLK_SRC_GROUP_AHB (5U) |
| #define | CLK_SRC_GROUP_AXI0 (6U) |
| #define | CLK_SRC_GROUP_AXI1 (7U) |
| #define | CLK_SRC_GROUP_AXI2 (8U) |
| #define | CLK_SRC_GROUP_CPU0 (9U) |
| #define | CLK_SRC_GROUP_CPU1 (10U) |
| #define | CLK_SRC_GROUP_SRC (11U) |
| #define | CLK_SRC_GROUP_PWDG (12U) |
| #define | CLK_SRC_GROUP_INVALID (15U) |
| #define | MAKE_CLK_SRC(src_grp, index) (((uint8_t)(src_grp) << 4) | (index)) |
| #define | GET_CLK_SRC_GROUP(src) (((uint8_t)(src) >> 4) & 0x0FU) |
| #define | GET_CLK_SRC_INDEX(src) ((uint8_t)(src)&0x0FU) |
| #define | GET_CLOCK_SOURCE_FROM_CLK_SRC(clk_src) (clock_source_t)((uint32_t)(clk_src) & 0xFU) |
| #define | RESOURCE_INVALID (0xFFFFU) |
| #define | MAKE_CLOCK_NAME(resource, src_type, node) (((uint32_t)(resource) << 16) | ((uint32_t)(src_type) << 8) | ((uint32_t)node)) |
| #define | GET_CLK_SRC_GROUP_FROM_NAME(name) (((uint32_t)(name) >> 8) & 0xFFUL) |
| #define | GET_CLK_NODE_FROM_NAME(name) ((uint32_t)(name)&0xFFUL) |
| #define | GET_CLK_RESOURCE_FROM_NAME(name) ((uint32_t)(name) >> 16) |
Typedefs | |
| typedef enum _clock_sources | clk_src_t |
| Clock source definitions. More... | |
| typedef enum _clock_name | clock_name_t |
| Peripheral Clock Type Description. More... | |
Enumerations | |
| enum | { status_clk_div_invalid = MAKE_STATUS(status_group_clk, 0) , status_clk_src_invalid = MAKE_STATUS(status_group_clk, 1) , status_clk_invalid = MAKE_STATUS(status_group_clk, 2) , status_clk_operation_unsupported = MAKE_STATUS(status_group_clk, 3) , status_clk_shared_ahb = MAKE_STATUS(status_group_clk, 4) , status_clk_shared_axi0 = MAKE_STATUS(status_group_clk, 5) , status_clk_shared_axi1 = MAKE_STATUS(status_group_clk, 6) , status_clk_shared_axi2 = MAKE_STATUS(status_group_clk, 7) , status_clk_shared_cpu0 = MAKE_STATUS(status_group_clk, 8) , status_clk_shared_cpu1 = MAKE_STATUS(status_group_clk, 9) , status_clk_fixed = MAKE_STATUS(status_group_clk, 10) } |
| Error codes for clock driver. More... | |
Functions | |
| uint32_t | clock_get_frequency (clock_name_t clock_name) |
| Get specified IP frequency. More... | |
| uint32_t | get_frequency_for_source (clock_source_t source) |
| Get Clock frequency for selected clock source. More... | |
| clk_src_t | clock_get_source (clock_name_t clock_name) |
| Get the IP clock source. More... | |
| uint32_t | clock_get_divider (clock_name_t clock_name) |
| Get the IP clock divider Note:This API return the direct clock divider. More... | |
| hpm_stat_t | clock_set_adc_source (clock_name_t clock_name, clk_src_t src) |
| Set ADC clock source. More... | |
| hpm_stat_t | clock_set_i2s_source (clock_name_t clock_name, clk_src_t src) |
| Set I2S clock source. More... | |
| hpm_stat_t | clock_set_wdg_source (clock_name_t clock_name, clk_src_t src) |
| Set the WDG clock source. More... | |
| hpm_stat_t | clock_set_source_divider (clock_name_t clock_name, clk_src_t src, uint32_t div) |
| Set the IP clock source and divider. More... | |
| hpm_stat_t | clock_wait_source_stable (clock_name_t clock_name) |
| Wait until the clock source for specified IP clock is stable. More... | |
| void | clock_enable (clock_name_t clock_name) |
| Enable IP clock. More... | |
| void | clock_disable (clock_name_t clock_name) |
| Disable IP clock. More... | |
| void | clock_add_to_group (clock_name_t clock_name, uint32_t group) |
| Add IP to specified group. More... | |
| void | clock_remove_from_group (clock_name_t clock_name, uint32_t group) |
| Remove IP from specified group. More... | |
| bool | clock_check_in_group (clock_name_t clock_name, uint32_t group) |
| Check IP in specified group. More... | |
| void | clock_connect_group_to_cpu (uint32_t group, uint32_t cpu) |
| Disconnect the clock group from specified CPU. More... | |
| void | clock_disconnect_group_from_cpu (uint32_t group, uint32_t cpu) |
| Disconnect the clock group from specified CPU. More... | |
| uint32_t | clock_get_core_clock_ticks_per_us (void) |
| Get core clock ticks per microsecond. More... | |
| uint32_t | clock_get_core_clock_ticks_per_ms (void) |
| Get core clock ticks per millisecond. More... | |
| void | clock_cpu_delay_us (uint32_t us) |
| Delay specified microseconds. More... | |
| void | clock_cpu_delay_ms (uint32_t ms) |
| Delay specified milliseconds. More... | |
| void | clock_update_core_clock (void) |
| Update the Core clock frequency. More... | |
Variables | |
| uint32_t | hpm_core_clock |
| HPM Core clock variable. More... | |