HPM SDK
HPMicro Software Development Kit
hpm_sysctl_drv.c File Reference
#include "hpm_soc_feature.h"
#include "hpm_sysctl_drv.h"
#include "hpm_clock_drv.h"

Macros

#define SYSCTL_RESOURCE_GROUP0   0
 
#define SYSCTL_CPU_RELEASE_KEY(cpu)   (0xC0BEF1A9UL | ((cpu & 1) << 24))
 

Functions

hpm_stat_t sysctl_get_cpu0_gpr (SYSCTL_Type *ptr, uint32_t *data, uint32_t size)
 
hpm_stat_t sysctl_cpu0_get_gpr (SYSCTL_Type *ptr, uint8_t start, uint8_t count, uint32_t *data)
 Get data saved from GPU0 GPR starting from given index. More...
 
hpm_stat_t sysctl_cpu0_set_gpr (SYSCTL_Type *ptr, uint8_t start, uint8_t count, uint32_t *data, bool lock)
 Save data to GPU0 GPR starting from given index. More...
 
void sysctl_monitor_get_default_config (SYSCTL_Type *ptr, monitor_config_t *config)
 Get default monitor config. More...
 
void sysctl_monitor_init (SYSCTL_Type *ptr, uint8_t monitor_index, monitor_config_t *config)
 Initialize Monitor. More...
 
uint32_t sysctl_monitor_measure_frequency (SYSCTL_Type *ptr, uint8_t monitor_index, monitor_target_t target, bool enable_output)
 Measure specific target frequency. More...
 
hpm_stat_t sysctl_set_cpu0_entry (SYSCTL_Type *ptr, uint32_t entry)
 
hpm_stat_t sysctl_set_cpu0_lp_mode (SYSCTL_Type *ptr, cpu_lp_mode_t mode)
 Set CPU0 low power mode. More...
 
hpm_stat_t sysctl_enable_group_resource (SYSCTL_Type *ptr, uint8_t group, sysctl_resource_t resource, bool enable)
 Enable group resource. More...
 
bool sysctl_check_group_resource_enable (SYSCTL_Type *ptr, uint8_t group, sysctl_resource_t resource)
 Check group resource enable status. More...
 
uint32_t sysctl_get_group_resource_value (SYSCTL_Type *ptr, uint8_t group, uint8_t index)
 Get group resource value. More...
 
hpm_stat_t sysctl_add_resource_to_cpu0 (SYSCTL_Type *ptr, sysctl_resource_t resource)
 Add resource to CPU0. More...
 
hpm_stat_t sysctl_remove_resource_from_cpu0 (SYSCTL_Type *ptr, sysctl_resource_t resource)
 Remove resource from CPU0. More...
 
hpm_stat_t sysctl_update_divider (SYSCTL_Type *ptr, clock_node_t node, uint32_t divide_by)
 
hpm_stat_t sysctl_config_clock (SYSCTL_Type *ptr, clock_node_t node, clock_source_t source, uint32_t divide_by)
 Config lock. More...
 
hpm_stat_t sysctl_set_adc_clock_mux (SYSCTL_Type *ptr, clock_node_t node, clock_source_adc_t source)
 Set ADC clock mux. More...
 
hpm_stat_t sysctl_set_i2s_clock_mux (SYSCTL_Type *ptr, clock_node_t node, clock_source_i2s_t source)
 Set I2S clock mux. More...
 

Macro Definition Documentation

◆ SYSCTL_CPU_RELEASE_KEY

#define SYSCTL_CPU_RELEASE_KEY (   cpu)    (0xC0BEF1A9UL | ((cpu & 1) << 24))

◆ SYSCTL_RESOURCE_GROUP0

#define SYSCTL_RESOURCE_GROUP0   0

Function Documentation

◆ sysctl_get_cpu0_gpr()

hpm_stat_t sysctl_get_cpu0_gpr ( SYSCTL_Type ptr,
uint32_t *  data,
uint32_t  size 
)

◆ sysctl_set_cpu0_entry()

hpm_stat_t sysctl_set_cpu0_entry ( SYSCTL_Type ptr,
uint32_t  entry 
)

◆ sysctl_set_cpu0_lp_mode()

hpm_stat_t sysctl_set_cpu0_lp_mode ( SYSCTL_Type ptr,
cpu_lp_mode_t  mode 
)

Set CPU0 low power mode.

Parameters
[in]ptrSYSCTL_Type base address
[in]modetarget mode to set
Returns
status_success if everything is okay

◆ sysctl_update_divider()

hpm_stat_t sysctl_update_divider ( SYSCTL_Type ptr,
clock_node_t  node,
uint32_t  divide_by 
)