12 #include "hpm_pcfg_regs.h"
21 #define PCFG_CLOCK_GATE_MODE_ALWAYS_ON (0x3UL)
22 #define PCFG_CLOCK_GATE_MODE_ALWAYS_OFF (0x2UL)
23 #define PCFG_CLOCK_GATE_MODE_ALWAYS_FOLLOW_FLOW (0x1UL)
25 #define PCFG_PERIPH_KEEP_CLOCK_ON(p) (PCFG_CLOCK_GATE_MODE_ALWAYS_ON << (p))
26 #define PCFG_PERIPH_KEEP_CLOCK_OFF(p) (PCFG_CLOCK_GATE_MODE_ALWAYS_OFF << (p))
27 #define PCFG_PERIPH_SET_CLOCK_AUTO(p) (PCFG_CLOCK_GATE_MODE_ALWAYS_FOLLOW_FLOW << (p))
93 bool return_to_default_on_xtal_loss;
98 #define PCFG_CLOCK_GATE_CONTROL_MASK(module, mode) \
99 ((uint32_t) (mode) << ((module) << 1))
101 #define PCFG_DEBUG_STOP_SOURCE_ENABLE_CORE0 (PCFG_DEBUG_STOP_CPU0_MASK)
102 #define PCFG_DEBUG_STOP_SOURCE_DISABLE_CORE0 (0)
103 #define PCFG_DEBUG_STOP_SOURCE_ENABLE_CORE1 (PCFG_DEBUG_STOP_CPU1_MASK)
104 #define PCFG_DEBUG_STOP_SOURCE_DISABLE_CORE1 (0)
591 const uint8_t pcfc_dcdc_min_duty_cycle[] = {
592 0x6E, 0x6E, 0x70, 0x70, 0x70, 0x70, 0x72, 0x72,
593 0x72, 0x72, 0x74, 0x74, 0x74, 0x74, 0x76, 0x76,
594 0x76, 0x78, 0x78, 0x78, 0x78, 0x7A, 0x7A, 0x7A,
595 0x7A, 0x7C, 0x7C, 0x7C, 0x7E, 0x7E, 0x7E, 0x7E
605 voltage = (voltage - 600) / 25;
#define PCFG_DCDC_RESUME_TIME_RESUME_TIME_GET(x)
Definition: hpm_pcfg_regs.h:592
#define PCFG_LDO2P5_READY_GET(x)
Definition: hpm_pcfg_regs.h:108
#define PCFG_POWER_TRAP_TRIGGERED_MASK
Definition: hpm_pcfg_regs.h:602
#define PCFG_DCDC_CURRENT_VALID_MASK
Definition: hpm_pcfg_regs.h:303
#define PCFG_POWER_TRAP_RETENTION_MASK
Definition: hpm_pcfg_regs.h:614
#define PCFG_DCDC_CURRENT_ESTI_EN_MASK
Definition: hpm_pcfg_regs.h:291
#define PCFG_DCDC_MODE_MODE_SET(x)
Definition: hpm_pcfg_regs.h:160
#define PCFG_LDO2P5_ENABLE_MASK
Definition: hpm_pcfg_regs.h:117
#define PCFG_DCDC_PROT_SHORT_CURRENT_MASK
Definition: hpm_pcfg_regs.h:269
#define PCFG_DCDC_ADVPARAM_MIN_DUT_MASK
Definition: hpm_pcfg_regs.h:437
#define PCFG_DCDC_MODE_READY_GET(x)
Definition: hpm_pcfg_regs.h:146
#define PCFG_DCDC_START_TIME_START_TIME_GET(x)
Definition: hpm_pcfg_regs.h:581
#define PCFG_DCDC_START_TIME_START_TIME_SET(x)
Definition: hpm_pcfg_regs.h:580
#define PCFG_POWER_TRAP_TRAP_MASK
Definition: hpm_pcfg_regs.h:626
#define PCFG_DCDC_PROT_OVERVOLT_FLAG_MASK
Definition: hpm_pcfg_regs.h:246
#define PCFG_DCDC_MODE_VOLT_GET(x)
Definition: hpm_pcfg_regs.h:175
#define PCFG_BANDGAP_VBG_TRIMMED_MASK
Definition: hpm_pcfg_regs.h:48
#define PCFG_DCDC_PROT_DISABLE_OVERVOLTAGE_MASK
Definition: hpm_pcfg_regs.h:234
#define PCFG_DCDC_RESUME_TIME_RESUME_TIME_SET(x)
Definition: hpm_pcfg_regs.h:591
#define PCFG_DCDC_MODE_MODE_MASK
Definition: hpm_pcfg_regs.h:158
#define PCFG_DCDC_PROT_ILIMIT_LP_MASK
Definition: hpm_pcfg_regs.h:200
#define PCFG_DCDC_PROT_OVERVOLT_FLAG_GET(x)
Definition: hpm_pcfg_regs.h:248
#define PCFG_DCDC_PROT_POWER_LOSS_FLAG_GET(x)
Definition: hpm_pcfg_regs.h:225
#define PCFG_RC24M_RC_TRIMMED_MASK
Definition: hpm_pcfg_regs.h:696
#define PCFG_DCDC_PROT_DISABLE_SHORT_MASK
Definition: hpm_pcfg_regs.h:257
#define PCFG_DCDC_PROT_ILIMIT_LP_SET(x)
Definition: hpm_pcfg_regs.h:202
#define PCFG_DCDC_ADVPARAM_MIN_DUT_SET(x)
Definition: hpm_pcfg_regs.h:439
#define PCFG_DEBUG_STOP_CPU0_MASK
Definition: hpm_pcfg_regs.h:749
#define PCFG_DCDC_PROT_DISABLE_POWER_LOSS_MASK
Definition: hpm_pcfg_regs.h:248
#define PCFG_DEBUG_STOP_CPU1_MASK
Definition: hpm_pcfg_regs.h:737
#define PCFG_BANDGAP_LOWPOWER_MODE_MASK
Definition: hpm_pcfg_regs.h:61
#define PCFG_BANDGAP_POWER_SAVE_MASK
Definition: hpm_pcfg_regs.h:73
static void pcfg_ldo2p5_turn_on(PCFG_Type *ptr)
turn on LDO 2.5V
Definition: hpm_pcfg_drv.h:187
static bool pcfg_bandgap_is_trimmed(PCFG_Type *ptr)
check if bandgap is trimmed or not
Definition: hpm_pcfg_drv.h:157
static void pcfg_enable_power_trap(PCFG_Type *ptr)
enable power trap
Definition: hpm_pcfg_drv.h:392
static void pcfg_update_periph_clock_mode(PCFG_Type *ptr, pcfg_pmc_periph_t periph, bool on)
update clock gate mode in vpmc domain
Definition: hpm_pcfg_drv.h:502
static bool pcfg_dcdc_is_measure_current_valid(PCFG_Type *ptr)
check if measured current is valid
Definition: hpm_pcfg_drv.h:326
static void pcfg_bandgap_disable_lowpower_mode(PCFG_Type *ptr)
bandgap disable power save mode
Definition: hpm_pcfg_drv.h:135
static void pcfg_clear_power_trap_trigger_flag(PCFG_Type *ptr)
clear power trap trigger flag
Definition: hpm_pcfg_drv.h:414
static void pcfg_bandgap_reload_trim(PCFG_Type *ptr)
bandgap reload trim value
Definition: hpm_pcfg_drv.h:167
static void pcfg_disable_cpu1_debug_stop_notfication(PCFG_Type *ptr)
Disable CPU1 debug stop notification to peripherals.
Definition: hpm_pcfg_drv.h:536
static uint32_t pcfg_dcdc_get_start_time_in_cycle(PCFG_Type *ptr)
get DCDC start time in number of 24MHz clock cycles
Definition: hpm_pcfg_drv.h:338
static void pcfg_dcdc_ensable_over_voltage_prot(PCFG_Type *ptr)
enable over voltage protection
Definition: hpm_pcfg_drv.h:283
static void pcfg_bandgap_enable_power_save_mode(PCFG_Type *ptr)
bandgap enable power save mode
Definition: hpm_pcfg_drv.h:125
static void pcfg_dcdc_disable_over_voltage_prot(PCFG_Type *ptr)
disable over voltage protection
Definition: hpm_pcfg_drv.h:273
static void pcfg_disable_dcdc_retention(PCFG_Type *ptr)
disable dcdc retention
Definition: hpm_pcfg_drv.h:424
static void pcfg_config_debug_stop_notification(PCFG_Type *ptr, uint8_t mask)
Configure CPU core debug stop notification to peripherals.
Definition: hpm_pcfg_drv.h:557
static bool pcfg_is_power_trap_triggered(PCFG_Type *ptr)
check if power trap is triggered
Definition: hpm_pcfg_drv.h:404
static bool pcfg_dcdc_is_stable(PCFG_Type *ptr)
Definition: hpm_pcfg_drv.h:209
static void pcfg_dcdc_enable_power_loss_prot(PCFG_Type *ptr)
enable power loss protection
Definition: hpm_pcfg_drv.h:251
static void pcfg_enable_cpu0_debug_stop_notfication(PCFG_Type *ptr)
Enable CPU0 debug stop notification to peripherals.
Definition: hpm_pcfg_drv.h:526
static void pcfg_bandgap_disable_power_save_mode(PCFG_Type *ptr)
bandgap disable power save mode
Definition: hpm_pcfg_drv.h:115
static void pcfg_set_periph_clock_mode(PCFG_Type *ptr, uint32_t mode)
set clock gate mode in vpmc domain
Definition: hpm_pcfg_drv.h:490
static void pcfg_dcdc_set_mode(PCFG_Type *ptr, uint8_t mode)
Definition: hpm_pcfg_drv.h:218
static void pcfg_disable_cpu0_debug_stop_notfication(PCFG_Type *ptr)
Disable CPU0 debug stop notficiation to peripherals.
Definition: hpm_pcfg_drv.h:516
static void pcfg_disable_wakeup_source(PCFG_Type *ptr, uint32_t mask)
disable wakeup source
Definition: hpm_pcfg_drv.h:479
static bool pcfg_dcdc_is_power_loss(PCFG_Type *ptr)
check if power loss flag is set
Definition: hpm_pcfg_drv.h:263
static void pcfg_bandgap_enable_lowpower_mode(PCFG_Type *ptr)
bandgap enable low power mode
Definition: hpm_pcfg_drv.h:145
static bool pcfg_irc24m_is_trimmed(PCFG_Type *ptr)
check if irc24m is trimmed
Definition: hpm_pcfg_drv.h:569
static void pcfg_dcdc_set_resume_time_in_cycle(PCFG_Type *ptr, uint32_t cycles)
set DCDC resuem time in 24MHz clock cycles
Definition: hpm_pcfg_drv.h:372
static bool pcfg_ldo2p5_is_stable(PCFG_Type *ptr)
check if LDO 2.5V is stable
Definition: hpm_pcfg_drv.h:199
static void pcfg_irc24m_reload_trim(PCFG_Type *ptr)
reload irc24m trim value
Definition: hpm_pcfg_drv.h:579
static void pcfg_dcdc_set_start_time_in_cycle(PCFG_Type *ptr, uint32_t cycles)
set DCDC start time in 24MHz clock cycles
Definition: hpm_pcfg_drv.h:361
static void pcfg_dcdc_enable_measure_current(PCFG_Type *ptr)
enable current measurement
Definition: hpm_pcfg_drv.h:314
static void pcfg_dcdc_disable_power_loss_prot(PCFG_Type *ptr)
disable power loss protection
Definition: hpm_pcfg_drv.h:241
static void pcfg_clear_wakeup_cause(PCFG_Type *ptr, uint32_t mask)
clear wakeup cause flag
Definition: hpm_pcfg_drv.h:445
static void pcfg_enable_wakeup_source(PCFG_Type *ptr, uint32_t mask)
enable wakeup source
Definition: hpm_pcfg_drv.h:468
static void pcfg_dcdc_disable_measure_current(PCFG_Type *ptr)
disable current measurement
Definition: hpm_pcfg_drv.h:304
static void pcfg_disable_power_trap(PCFG_Type *ptr)
disable power trap
Definition: hpm_pcfg_drv.h:382
static void pcfg_dcdc_set_lp_current_limit(PCFG_Type *ptr, pcfg_dcdc_lp_current_limit_t limit, bool over_limit)
set low power current limit
Definition: hpm_pcfg_drv.h:230
static bool pcfg_dcdc_is_over_voltage(PCFG_Type *ptr)
checkover voltage flag
Definition: hpm_pcfg_drv.h:294
static void pcfg_enable_cpu1_debug_stop_notfication(PCFG_Type *ptr)
Enable CPU1 debug stop notification to peripherals.
Definition: hpm_pcfg_drv.h:546
static uint32_t pcfg_get_wakeup_cause(PCFG_Type *ptr)
get wakeup cause
Definition: hpm_pcfg_drv.h:457
static void pcfg_enable_dcdc_retention(PCFG_Type *ptr)
enable dcdc retention to retain soc sram data
Definition: hpm_pcfg_drv.h:434
static void pcfg_ldo2p5_turn_off(PCFG_Type *ptr)
turn off LDO2P5
Definition: hpm_pcfg_drv.h:177
static uint32_t pcfg_dcdc_get_resume_time_in_cycle(PCFG_Type *ptr)
get DCDC resume time in number of 24MHz clock cycles
Definition: hpm_pcfg_drv.h:350
uint32_t hpm_stat_t
Definition: hpm_common.h:126
#define MAKE_STATUS(group, code)
Definition: hpm_common.h:135
@ status_group_pcfg
Definition: hpm_common.h:159
void pcfg_irc24m_config_track(PCFG_Type *ptr, pcfg_irc24m_config_t *config)
config irc24m track
Definition: hpm_pcfg_drv.c:74
hpm_stat_t pcfg_ldo1p1_set_voltage(PCFG_Type *ptr, uint16_t mv)
Definition: hpm_pcfg_drv.c:14
hpm_stat_t pcfg_ldo2p5_set_voltage(PCFG_Type *ptr, uint16_t mv)
Definition: hpm_pcfg_drv.c:24
pcfg_dcdc_lp_current_limit_t
Definition: hpm_pcfg_drv.h:34
uint16_t pcfg_dcdc_get_current_level(PCFG_Type *ptr)
Definition: hpm_pcfg_drv.c:47
hpm_stat_t pcfg_dcdc_set_voltage(PCFG_Type *ptr, uint16_t mv)
Definition: hpm_pcfg_drv.c:63
#define PCFG_PERIPH_KEEP_CLOCK_OFF(p)
Definition: hpm_pcfg_drv.h:26
pcfg_pmc_periph_t
Definition: hpm_pcfg_drv.h:54
pcfg_wakeup_src_t
Definition: hpm_pcfg_drv.h:63
pcfg_dcdc_mode_t
Definition: hpm_pcfg_drv.h:46
static void pcfg_dcdc_switch_to_dcm_mode(PCFG_Type *ptr)
dcdc switch to dcm mode
Definition: hpm_pcfg_drv.h:589
pcfg_dcdc_current_hys_t
Definition: hpm_pcfg_drv.h:40
#define PCFG_PERIPH_KEEP_CLOCK_ON(p)
Definition: hpm_pcfg_drv.h:25
pcfg_irc24m_reference_t
Definition: hpm_pcfg_drv.h:28
hpm_stat_t pcfg_dcdc_set_lpmode_voltage(PCFG_Type *ptr, uint16_t mv)
Definition: hpm_pcfg_drv.c:95
@ pcfg_dcdc_lp_current_limit_250ma
Definition: hpm_pcfg_drv.h:35
@ pcfg_dcdc_lp_current_limit_200ma
Definition: hpm_pcfg_drv.h:36
@ status_pcfg_ldo_out_of_range
Definition: hpm_pcfg_drv.h:74
@ pcfg_pmc_periph_fuse
Definition: hpm_pcfg_drv.h:55
@ pcfg_pmc_periph_timer
Definition: hpm_pcfg_drv.h:57
@ pcfg_pmc_periph_ram
Definition: hpm_pcfg_drv.h:56
@ pcfg_pmc_periph_vad
Definition: hpm_pcfg_drv.h:57
@ pcfg_pmc_periph_debug
Definition: hpm_pcfg_drv.h:63
@ pcfg_pmc_periph_uart
Definition: hpm_pcfg_drv.h:59
@ pcfg_pmc_periph_ioc
Definition: hpm_pcfg_drv.h:56
@ pcfg_pmc_periph_gpio
Definition: hpm_pcfg_drv.h:55
@ pcfg_pmc_periph_wdog
Definition: hpm_pcfg_drv.h:58
@ pcfg_wakeup_src_bgpio
Definition: hpm_pcfg_drv.h:77
@ pcfg_wakeup_src_wbutn
Definition: hpm_pcfg_drv.h:78
@ pcfg_wakeup_src_pwdg
Definition: hpm_pcfg_drv.h:67
@ pcfg_wakeup_src_psecurity
Definition: hpm_pcfg_drv.h:75
@ pcfg_wakeup_src_pgpio
Definition: hpm_pcfg_drv.h:68
@ pcfg_wakeup_src_otp
Definition: hpm_pcfg_drv.h:69
@ pcfg_wakeup_src_puart
Definition: hpm_pcfg_drv.h:65
@ pcfg_wakeup_src_monitor
Definition: hpm_pcfg_drv.h:74
@ pcfg_wakeup_src_soc
Definition: hpm_pcfg_drv.h:64
@ pcfg_wakeup_src_bsecurity
Definition: hpm_pcfg_drv.h:76
@ pcfg_wakeup_src_ptimer
Definition: hpm_pcfg_drv.h:66
@ pcfg_wakeup_src_rtc
Definition: hpm_pcfg_drv.h:79
@ pcfg_dcdc_mode_general
Definition: hpm_pcfg_drv.h:49
@ pcfg_dcdc_mode_off
Definition: hpm_pcfg_drv.h:47
@ pcfg_dcdc_mode_basic
Definition: hpm_pcfg_drv.h:48
@ pcfg_dcdc_mode_expert
Definition: hpm_pcfg_drv.h:50
@ pcfg_dcdc_current_hys_25mv
Definition: hpm_pcfg_drv.h:42
@ pcfg_dcdc_current_hys_12_5mv
Definition: hpm_pcfg_drv.h:41
@ pcfg_irc24m_reference_24m_xtal
Definition: hpm_pcfg_drv.h:30
@ pcfg_irc24m_reference_32k
Definition: hpm_pcfg_drv.h:29
Definition: hpm_pcfg_regs.h:12
__RW uint32_t LDO2P5
Definition: hpm_pcfg_regs.h:15
__RW uint32_t DCDC_ADVPARAM
Definition: hpm_pcfg_regs.h:22
__RW uint32_t DCDC_ADVMODE
Definition: hpm_pcfg_regs.h:21
__RW uint32_t POWER_TRAP
Definition: hpm_pcfg_regs.h:28
__RW uint32_t DCDC_CURRENT
Definition: hpm_pcfg_regs.h:20
__RW uint32_t WAKE_MASK
Definition: hpm_pcfg_regs.h:30
__RW uint32_t BANDGAP
Definition: hpm_pcfg_regs.h:13
__RW uint32_t SCG_CTRL
Definition: hpm_pcfg_regs.h:31
__RW uint32_t DCDC_START_TIME
Definition: hpm_pcfg_regs.h:25
__RW uint32_t DCDC_PROT
Definition: hpm_pcfg_regs.h:19
__RW uint32_t DCDC_MODE
Definition: hpm_pcfg_regs.h:17
__RW uint32_t DCDC_MISC
Definition: hpm_pcfg_regs.h:23
__RW uint32_t DEBUG_STOP
Definition: hpm_pcfg_regs.h:32
__RW uint32_t DCDC_RESUME_TIME
Definition: hpm_pcfg_regs.h:26
__RW uint32_t WAKE_CAUSE
Definition: hpm_pcfg_regs.h:29
__RW uint32_t RC24M
Definition: hpm_pcfg_regs.h:33
Definition: hpm_pcfg_drv.h:78