HPM SDK
HPMicro Software Development Kit
hpm_pcfg_drv.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef HPM_PCFG_DRV_H
9 #define HPM_PCFG_DRV_H
10 
11 #include "hpm_common.h"
12 #include "hpm_pcfg_regs.h"
13 
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)
24 
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))
28 
29 /* @brief PCFG irc24m reference */
30 typedef enum {
34 
35 /* @brief PCFG dcdc current limit */
36 typedef enum {
40 
41 /* @brief PCFG dcdc current hys */
42 typedef enum {
46 
47 /* @brief PCFG dcdc mode */
48 typedef enum {
54 
55 /* @brief PCFG pmc domain peripherals */
56 typedef enum {
67 
68 /* @brief PCFG wakeup source */
69 typedef enum {
70  pcfg_wakeup_src_soc = (1 << 0),
71  pcfg_wakeup_src_otp = (1 << 4),
75  pcfg_wakeup_src_pgpio = (1 << 10),
79  pcfg_wakeup_src_bgpio = (1 << 17),
80  pcfg_wakeup_src_wbutn = (1 << 18),
81  pcfg_wakeup_src_rtc = (1 << 19),
83 
84 /* @brief PCFG status */
85 enum {
87 };
88 
89 /* @brief PCFG irc24m config */
90 typedef struct {
91  uint32_t freq_in_hz;
92  pcfg_irc24m_reference_t reference;
93  bool return_to_default_on_xtal_loss;
94  bool free_run;
96 
97 
98 #define PCFG_CLOCK_GATE_CONTROL_MASK(module, mode) \
99  ((uint32_t) (mode) << ((module) << 1))
100 
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)
105 
106 #ifdef __cplusplus
107 extern "C" {
108 #endif
109 
116 {
118 }
119 
126 {
128 }
129 
136 {
138 }
139 
146 {
148 }
149 
157 static inline bool pcfg_bandgap_is_trimmed(PCFG_Type *ptr)
158 {
160 }
161 
167 static inline void pcfg_bandgap_reload_trim(PCFG_Type *ptr)
168 {
170 }
171 
177 static inline void pcfg_ldo2p5_turn_off(PCFG_Type *ptr)
178 {
180 }
181 
187 static inline void pcfg_ldo2p5_turn_on(PCFG_Type *ptr)
188 {
190 }
191 
199 static inline bool pcfg_ldo2p5_is_stable(PCFG_Type *ptr)
200 {
201  return PCFG_LDO2P5_READY_GET(ptr->LDO2P5);
202 }
203 
204 /*
205  * @brief check if DCDC is stable or not
206  * @param[in] ptr base address
207  * @retval true if DCDC is stable
208  */
209 static inline bool pcfg_dcdc_is_stable(PCFG_Type *ptr)
210 {
211  return PCFG_DCDC_MODE_READY_GET(ptr->DCDC_MODE);
212 }
213 
214 /*
215  * @brief set DCDC work mode
216  * @param[in] ptr base address
217  */
218 static inline void pcfg_dcdc_set_mode(PCFG_Type *ptr, uint8_t mode)
219 {
221 }
222 
230 static inline void pcfg_dcdc_set_lp_current_limit(PCFG_Type *ptr, pcfg_dcdc_lp_current_limit_t limit, bool over_limit)
231 {
232  (void) over_limit;
234 }
235 
242 {
244 }
245 
252 {
254 }
255 
263 static inline bool pcfg_dcdc_is_power_loss(PCFG_Type *ptr)
264 {
266 }
267 
274 {
276 }
277 
284 {
286 }
287 
294 static inline bool pcfg_dcdc_is_over_voltage(PCFG_Type *ptr)
295 {
297 }
298 
305 {
307 }
308 
315 {
317 }
318 
327 {
329 }
330 
338 static inline uint32_t pcfg_dcdc_get_start_time_in_cycle(PCFG_Type *ptr)
339 {
341 }
342 
350 static inline uint32_t pcfg_dcdc_get_resume_time_in_cycle(PCFG_Type *ptr)
351 {
353 }
354 
361 static inline void pcfg_dcdc_set_start_time_in_cycle(PCFG_Type *ptr, uint32_t cycles)
362 {
364 }
365 
372 static inline void pcfg_dcdc_set_resume_time_in_cycle(PCFG_Type *ptr, uint32_t cycles)
373 {
375 }
376 
382 static inline void pcfg_disable_power_trap(PCFG_Type *ptr)
383 {
385 }
386 
392 static inline void pcfg_enable_power_trap(PCFG_Type *ptr)
393 {
395 }
396 
404 static inline bool pcfg_is_power_trap_triggered(PCFG_Type *ptr)
405 {
407 }
408 
415 {
417 }
418 
424 static inline void pcfg_disable_dcdc_retention(PCFG_Type *ptr)
425 {
427 }
428 
434 static inline void pcfg_enable_dcdc_retention(PCFG_Type *ptr)
435 {
437 }
438 
445 static inline void pcfg_clear_wakeup_cause(PCFG_Type *ptr, uint32_t mask)
446 {
447  ptr->WAKE_CAUSE = mask;
448 }
449 
457 static inline uint32_t pcfg_get_wakeup_cause(PCFG_Type *ptr)
458 {
459  return ptr->WAKE_CAUSE;
460 }
461 
468 static inline void pcfg_enable_wakeup_source(PCFG_Type *ptr, uint32_t mask)
469 {
470  ptr->WAKE_MASK &= ~mask;
471 }
472 
479 static inline void pcfg_disable_wakeup_source(PCFG_Type *ptr, uint32_t mask)
480 {
481  ptr->WAKE_MASK |= mask;
482 }
483 
490 static inline void pcfg_set_periph_clock_mode(PCFG_Type *ptr, uint32_t mode)
491 {
492  ptr->SCG_CTRL = mode;
493 }
494 
502 static inline void pcfg_update_periph_clock_mode(PCFG_Type *ptr, pcfg_pmc_periph_t periph, bool on)
503 {
504  if (on) {
505  ptr->SCG_CTRL = (ptr->SCG_CTRL & ~(0x03 << periph)) | PCFG_PERIPH_KEEP_CLOCK_ON(periph);
506  } else {
507  ptr->SCG_CTRL = (ptr->SCG_CTRL & ~(0x03 << periph)) | PCFG_PERIPH_KEEP_CLOCK_OFF(periph);
508  }
509 }
510 
517 {
519 }
520 
527 {
529 }
530 
537 {
539 }
540 
547 {
549 }
550 
557 static inline void pcfg_config_debug_stop_notification(PCFG_Type *ptr, uint8_t mask)
558 {
559  ptr->DEBUG_STOP = mask;
560 }
561 
569 static inline bool pcfg_irc24m_is_trimmed(PCFG_Type *ptr)
570 {
571  return ptr->RC24M & PCFG_RC24M_RC_TRIMMED_MASK;
572 }
573 
579 static inline void pcfg_irc24m_reload_trim(PCFG_Type *ptr)
580 {
582 }
583 
589 static inline void pcfg_dcdc_switch_to_dcm_mode(PCFG_Type *ptr)
590 {
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
596  };
597  uint16_t voltage;
598 
599  ptr->DCDC_MODE |= 0x77000u;
600  ptr->DCDC_ADVMODE = (ptr->DCDC_ADVMODE & ~0x73F0067u) | 0x4120067u;
603  ptr->DCDC_MISC = 0x100000u;
604  voltage = PCFG_DCDC_MODE_VOLT_GET(ptr->DCDC_MODE);
605  voltage = (voltage - 600) / 25;
606  ptr->DCDC_ADVPARAM = (ptr->DCDC_ADVPARAM & ~PCFG_DCDC_ADVPARAM_MIN_DUT_MASK) | PCFG_DCDC_ADVPARAM_MIN_DUT_SET(pcfc_dcdc_min_duty_cycle[voltage]);
607 }
608 
616 
617 /*
618  * @brief set DCDC voltage at standby mode
619  * @param[in] ptr base address
620  * @param[in] mv target voltage
621  * @retval status_success if successfully configured
622  */
624 
625 /*
626  * @brief set output voltage of LDO 2.5V in mV
627  * @param[in] ptr base address
628  * @param[in] mv target voltage
629  * @retval status_success if successfully configured
630  */
631 hpm_stat_t pcfg_ldo2p5_set_voltage(PCFG_Type *ptr, uint16_t mv);
632 
633 /*
634  * @brief set DCDC voltage
635  * @param[in] ptr base address
636  * @param[in] mv target voltage
637  * @retval status_success if successfully configured
638  */
639 hpm_stat_t pcfg_dcdc_set_voltage(PCFG_Type *ptr, uint16_t mv);
640 
641 /*
642  * @brief set output voltage of LDO 1V in mV
643  * @param[in] ptr base address
644  * @param[in] mv target voltage
645  * @retval status_success if successfully configured
646  */
647 hpm_stat_t pcfg_ldo1p1_set_voltage(PCFG_Type *ptr, uint16_t mv);
648 
649 /*
650  * @brief get current DCDC current level in mA
651  *
652  * @param[in] ptr base address
653  * @retval Current level at mA
654  */
656 
657 
658 #ifdef __cplusplus
659 }
660 #endif
665 #endif /* HPM_PCFG_DRV_H */
#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