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_EWDG (3U) |
| #define | CLK_SRC_GROUP_PEWDG (4U) |
| #define | CLK_SRC_GROUP_PMIC (5U) |
| #define | CLK_SRC_GROUP_AXI_SOC (6U) |
| #define | CLK_SRC_GROUP_AXI_FAST (7U) |
| #define | CLK_SRC_GROUP_AXI_VIDEO (8U) |
| #define | CLK_SRC_GROUP_SRC (9U) |
| #define | CLK_SRC_GROUP_CPU0 (10U) |
| #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 | RESOURCE_SHARED_AXI_SOC (0xFFFEU) |
| #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_axis = MAKE_STATUS(status_group_clk, 5) , status_clk_shared_axic = MAKE_STATUS(status_group_clk, 6) , status_clk_shared_axiv = MAKE_STATUS(status_group_clk, 7) , status_clk_shared_axif = MAKE_STATUS(status_group_clk, 8) , status_clk_shared_axid = 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 Note: This API return the direct 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... | |
| #define CLK_SRC_GROUP_ADC (1U) |
| #define CLK_SRC_GROUP_AXI_FAST (7U) |
| #define CLK_SRC_GROUP_AXI_SOC (6U) |
| #define CLK_SRC_GROUP_AXI_VIDEO (8U) |
| #define CLK_SRC_GROUP_COMMON (0U) |
Clock source group definitions.
| #define CLK_SRC_GROUP_CPU0 (10U) |
| #define CLK_SRC_GROUP_EWDG (3U) |
| #define CLK_SRC_GROUP_I2S (2U) |
| #define CLK_SRC_GROUP_INVALID (15U) |
| #define CLK_SRC_GROUP_PEWDG (4U) |
| #define CLK_SRC_GROUP_PMIC (5U) |
| #define CLK_SRC_GROUP_SRC (9U) |
| #define CLOCK_DIV_INVALID (~0UL) |
| #define GET_CLK_NODE_FROM_NAME | ( | name | ) | ((uint32_t)(name) & 0xFFUL) |
| #define GET_CLK_RESOURCE_FROM_NAME | ( | name | ) | ((uint32_t)(name) >> 16) |
| #define GET_CLK_SRC_GROUP | ( | src | ) | (((uint8_t)(src) >> 4) & 0x0FU) |
| #define GET_CLK_SRC_GROUP_FROM_NAME | ( | name | ) | (((uint32_t)(name) >> 8) & 0xFFUL) |
| #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 MAKE_CLK_SRC | ( | src_grp, | |
| index | |||
| ) | (((uint8_t)(src_grp)<<4) | (index)) |
| #define MAKE_CLOCK_NAME | ( | resource, | |
| src_type, | |||
| node | |||
| ) | (((uint32_t)(resource) << 16) | ((uint32_t)(src_type) << 8) | ((uint32_t)node)) |
| #define RESOURCE_INVALID (0xFFFFU) |
| #define RESOURCE_SHARED_AXI_SOC (0xFFFEU) |
| typedef enum _clock_sources clk_src_t |
Clock source definitions.
| typedef enum _clock_name clock_name_t |
Peripheral Clock Type Description.
| anonymous enum |