20 #include "hpm_wdg_regs.h"
84 #define WDG_WRITE_ENABLE_MAGIC_NUM (0x5AA5UL)
85 #define WDG_RESTART_MAGIC_NUM (0xCAFEUL)
87 #define WDG_EXT_CLK_FREQ (32768UL)
217 base->
ST = status_mask;
#define WDG_CTRL_RSTEN_MASK
Definition: hpm_wdg_regs.h:73
#define WDG_CTRL_CLKSEL_MASK
Definition: hpm_wdg_regs.h:97
#define WDG_CTRL_EN_MASK
Definition: hpm_wdg_regs.h:109
#define WDG_CTRL_INTEN_MASK
Definition: hpm_wdg_regs.h:85
uint32_t hpm_stat_t
Definition: hpm_common.h:123
reset_interval_enum
WDG Reset Interval definitions.
Definition: hpm_wdg_drv.h:25
static void wdg_reset_disable(WDG_Type *base)
WDG reset disable function.
Definition: hpm_wdg_drv.h:141
static void wdg_interrupt_enable(WDG_Type *base)
WDG interrupt enable function.
Definition: hpm_wdg_drv.h:153
static void wdg_enable(WDG_Type *base)
WDG Enable function.
Definition: hpm_wdg_drv.h:108
#define WDG_WRITE_ENABLE_MAGIC_NUM
Definition: hpm_wdg_drv.h:84
enum wdg_clksrc_enum wdg_clksrc_t
WDG clock source definitions.
wdg_clksrc_enum
WDG clock source definitions.
Definition: hpm_wdg_drv.h:65
static void wdg_write_enable(WDG_Type *base)
WDG write enable function.
Definition: hpm_wdg_drv.h:98
uint64_t wdg_get_interrupt_interval_in_us(WDG_Type *base, const uint32_t src_freq)
Get Actual WDG Interrupt Interval in terms of microseconds.
Definition: hpm_wdg_drv.c:166
interrupt_interval_enum
WDG Interrupt interval definitions.
Definition: hpm_wdg_drv.h:41
static void wdg_clksrc_select(WDG_Type *base, wdg_clksrc_t clksrc)
WDG Clock Source selection function.
Definition: hpm_wdg_drv.h:178
reset_interval_t wdg_convert_reset_interval_from_us(const uint32_t src_freq, const uint32_t reset_us)
Convert the Reset interval value based on the WDG source clock frequency and the expected reset inter...
Definition: hpm_wdg_drv.c:94
hpm_stat_t wdg_init(WDG_Type *base, wdg_control_t *wdg_ctrl)
WDG initialization function.
Definition: hpm_wdg_drv.c:58
#define WDG_RESTART_MAGIC_NUM
Definition: hpm_wdg_drv.h:85
uint64_t wdg_get_total_reset_interval_in_us(WDG_Type *base, const uint32_t src_freq)
Get Actual WDG Reset Interval in terms of microseconds.
Definition: hpm_wdg_drv.c:178
enum interrupt_interval_enum interrupt_interval_t
WDG Interrupt interval definitions.
static void wdg_interrupt_disable(WDG_Type *base)
WDG interrupt disable function.
Definition: hpm_wdg_drv.h:164
static void wdg_disable(WDG_Type *base)
WDG Disable function.
Definition: hpm_wdg_drv.h:119
static void wdg_restart(WDG_Type *base)
WDG restart function.
Definition: hpm_wdg_drv.h:192
static void wdg_clear_status(WDG_Type *base, uint32_t status_mask)
WDG clear status function.
Definition: hpm_wdg_drv.h:215
interrupt_interval_t wdg_convert_interrupt_interval_from_us(const uint32_t src_freq, uint32_t interval_us)
Convert the interrupt interval value based on the WDG source clock frequency and the expected interru...
Definition: hpm_wdg_drv.c:116
uint32_t wdg_convert_reset_interval_to_us(const uint32_t src_freq, reset_interval_t interval)
Convert the Reset interval value based on the WDG source clock frequency and the expected reset inter...
Definition: hpm_wdg_drv.c:152
struct wdg_control_struct wdg_control_t
WDG Control configuration structure.
static uint32_t wdg_get_status(WDG_Type *base)
WDG Get Status function.
Definition: hpm_wdg_drv.h:204
enum reset_interval_enum reset_interval_t
WDG Reset Interval definitions.
static void wdg_reset_enable(WDG_Type *base)
WDG reset enable function.
Definition: hpm_wdg_drv.h:130
uint64_t wdg_convert_interrupt_interval_to_us(const uint32_t src_freq, interrupt_interval_t interval)
Convert the interrupt interval value based on the WDG source clock frequency and the expected interru...
Definition: hpm_wdg_drv.c:136
@ reset_interval_max
Definition: hpm_wdg_drv.h:34
@ reset_interval_clock_period_mult_256
Definition: hpm_wdg_drv.h:27
@ reset_interval_clock_period_mult_8k
Definition: hpm_wdg_drv.h:32
@ reset_interval_clock_period_mult_1k
Definition: hpm_wdg_drv.h:29
@ reset_interval_clock_period_mult_16k
Definition: hpm_wdg_drv.h:33
@ reset_interval_clock_period_mult_512
Definition: hpm_wdg_drv.h:28
@ reset_interval_out_of_range
Definition: hpm_wdg_drv.h:35
@ reset_interval_clock_period_mult_128
Definition: hpm_wdg_drv.h:26
@ reset_interval_clock_period_mult_2k
Definition: hpm_wdg_drv.h:30
@ reset_interval_clock_period_mult_4k
Definition: hpm_wdg_drv.h:31
@ wdg_clksrc_pclk
Definition: hpm_wdg_drv.h:67
@ wdg_clksrc_extclk
Definition: hpm_wdg_drv.h:66
@ wdg_clksrc_max
Definition: hpm_wdg_drv.h:68
@ interrupt_interval_out_of_range
Definition: hpm_wdg_drv.h:59
@ interrupt_interval_clock_period_multi_512m
Definition: hpm_wdg_drv.h:56
@ interrupt_interval_clock_period_multi_2m
Definition: hpm_wdg_drv.h:52
@ interrupt_interval_clock_period_multi_256
Definition: hpm_wdg_drv.h:43
@ interrupt_interval_clock_period_multi_2k
Definition: hpm_wdg_drv.h:45
@ interrupt_interval_clock_period_multi_512k
Definition: hpm_wdg_drv.h:51
@ interrupt_interval_clock_period_multi_1k
Definition: hpm_wdg_drv.h:44
@ interrupt_interval_clock_period_multi_16k
Definition: hpm_wdg_drv.h:48
@ interrupt_interval_clock_period_multi_8k
Definition: hpm_wdg_drv.h:47
@ interrupt_interval_clock_period_multi_2g
Definition: hpm_wdg_drv.h:57
@ interrupt_interval_clock_period_multi_128k
Definition: hpm_wdg_drv.h:50
@ interrupt_interval_clock_period_multi_128m
Definition: hpm_wdg_drv.h:55
@ interrupt_interval_clock_period_multi_32k
Definition: hpm_wdg_drv.h:49
@ interrupt_interval_clock_period_multi_4k
Definition: hpm_wdg_drv.h:46
@ interrupt_interval_max
Definition: hpm_wdg_drv.h:58
@ interrupt_interval_clock_period_multi_8m
Definition: hpm_wdg_drv.h:53
@ interrupt_interval_clock_period_multi_64
Definition: hpm_wdg_drv.h:42
@ interrupt_interval_clock_period_multi_32m
Definition: hpm_wdg_drv.h:54
Definition: hpm_wdg_regs.h:12
__RW uint32_t CTRL
Definition: hpm_wdg_regs.h:14
__W uint32_t WREN
Definition: hpm_wdg_regs.h:16
__W uint32_t RESTART
Definition: hpm_wdg_regs.h:15
__W uint32_t ST
Definition: hpm_wdg_regs.h:17
WDG Control configuration structure.
Definition: hpm_wdg_drv.h:75
reset_interval_t reset_interval
Definition: hpm_wdg_drv.h:76
interrupt_interval_t interrupt_interval
Definition: hpm_wdg_drv.h:77
bool reset_enable
Definition: hpm_wdg_drv.h:78
bool interrupt_enable
Definition: hpm_wdg_drv.h:79
bool wdg_enable
Definition: hpm_wdg_drv.h:81
wdg_clksrc_t clksrc
Definition: hpm_wdg_drv.h:80