18#if VSF_HAL_USE_WDT == ENABLED
23#if defined(VSF_WDT_CFG_IMP_RENAME_DEVICE_PREFIX) && (VSF_WDT_CFG_IMP_RENAME_DEVICE_PREFIX == ENABLED)
24# define vsf_real_wdt_t VSF_MCONNECT(VSF_WDT_CFG_IMP_DEVICE_PREFIX, _t)
25# define vsf_real_wdt_capability VSF_MCONNECT(VSF_WDT_CFG_IMP_DEVICE_PREFIX, _capability)
26# define vsf_real_wdt_ctrl VSF_MCONNECT(VSF_WDT_CFG_IMP_DEVICE_PREFIX, _ctrl)
27# define vsf_real_wdt_get_configuration VSF_MCONNECT(VSF_WDT_CFG_IMP_DEVICE_PREFIX, _get_configuration)
29# define vsf_real_wdt_t VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_t)
30# define vsf_real_wdt_capability VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_capability)
31# define vsf_real_wdt_ctrl VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_ctrl)
32# define vsf_real_wdt_get_configuration VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_get_configuration)
35#ifndef VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY
36# define VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
39#ifndef VSF_WDT_CFG_REIMPLEMENT_API_CTRL
40# define VSF_WDT_CFG_REIMPLEMENT_API_CTRL DISABLED
43#ifndef VSF_WDT_CFG_REIMPLEMENT_API_GET_CONFIGURATION
44# define VSF_WDT_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
47#ifdef VSF_WDT_CFG_IMP_REMAP_PREFIX
48# undef VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY
49# define VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
50# undef VSF_WDT_CFG_REIMPLEMENT_API_CTRL
51# define VSF_WDT_CFG_REIMPLEMENT_API_CTRL ENABLED
52# undef VSF_WDT_CFG_REIMPLEMENT_API_GET_CONFIGURATION
53# define VSF_WDT_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
56#if VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
57# ifndef VSF_WDT_CFG_CAPABILITY_SUPPORT_EARLY_WAKEUP
58# define VSF_WDT_CFG_CAPABILITY_SUPPORT_EARLY_WAKEUP 1
60# ifndef VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_NONE
61# define VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_NONE 1
63# ifndef VSF_WDT_CFG_CAPABILITY_support_reset_cpu
64# define VSF_WDT_CFG_CAPABILITY_support_reset_cpu 1
66# ifndef VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_SOC
67# define VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_SOC 1
69# ifndef VSF_WDT_CFG_CAPABILITY_SUPPORT_DISABLE
70# define VSF_WDT_CFG_CAPABILITY_SUPPORT_DISABLE 1
72# ifndef VSF_WDT_CFG_CAPABILITY_MAX_TIMEOUT_MS
73# define VSF_WDT_CFG_CAPABILITY_MAX_TIMEOUT_MS (1000 * 1000)
80#if VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
85 .support_reset_none = VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_NONE,
86 .support_reset_cpu = VSF_WDT_CFG_CAPABILITY_support_reset_cpu,
87 .support_reset_soc = VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_SOC,
88 .support_disable = VSF_WDT_CFG_CAPABILITY_SUPPORT_DISABLE,
89 .max_timeout_ms = VSF_WDT_CFG_CAPABILITY_MAX_TIMEOUT_MS,
92 return wdt_capability;
96#if VSF_WDT_CFG_REIMPLEMENT_API_CTRL == DISABLED
108#if VSF_WDT_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
123#undef VSF_WDT_CFG_REIMPLEMENT_TYPE_CAPABILITY
124#undef VSF_WDT_CFG_REIMPLEMENT_TYPE_CFG
125#undef VSF_WDT_CFG_REIMPLEMENT_TYPE_MODE
126#undef VSF_WDT_CFG_REIMPLEMENT_TYPE_CTRL
127#undef VSF_WDT_CFG_REIMPLEMENT_API_CAPABILITY
128#undef VSF_WDT_CFG_REIMPLEMENT_API_CTRL
129#undef VSF_WDT_CFG_REIMPLEMENT_API_GET_CONFIGURATION
130#undef VSF_WDT_CFG_CAPABILITY_SUPPORT_EARLY_WAKEUP
131#undef VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_NONE
132#undef VSF_WDT_CFG_CAPABILITY_support_reset_cpu
133#undef VSF_WDT_CFG_CAPABILITY_SUPPORT_RESET_SOC
134#undef VSF_WDT_CFG_CAPABILITY_SUPPORT_DISABLE
135#undef VSF_WDT_CFG_CAPABILITY_MAX_TIMEOUT_MS
138#undef vsf_real_wdt_capability
139#undef vsf_real_wdt_ctrl
140#undef vsf_real_wdt_get_configuration
144#ifdef VSF_WDT_CFG_IMP_REMAP_PREFIX
146# define vsf_imp_wdt_t VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_t)
147# define vsf_imp_wdt_init VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_init)
148# define vsf_imp_wdt_fini VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_fini)
149# define vsf_imp_wdt_enable VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_enable)
150# define vsf_imp_wdt_disable VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_disable)
151# define vsf_imp_wdt_capability VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_capability)
152# define vsf_imp_wdt_feed VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_feed)
153# define vsf_imp_wdt_get_configuration VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_get_configuration)
154# define vsf_imp_wdt_ctrl VSF_MCONNECT(VSF_WDT_CFG_IMP_PREFIX, _wdt_ctrl)
156# define vsf_remap_wdt_t VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_t)
157# define vsf_remap_wdt_init VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_init)
158# define vsf_remap_wdt_fini VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_fini)
159# define vsf_remap_wdt_enable VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_enable)
160# define vsf_remap_wdt_disable VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_disable)
161# define vsf_remap_wdt_capability VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_capability)
162# define vsf_remap_wdt_feed VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_feed)
163# define vsf_remap_wdt_get_configuration VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_get_configuration)
164# define vsf_remap_wdt_ctrl VSF_MCONNECT(VSF_WDT_CFG_IMP_REMAP_PREFIX, _wdt_ctrl)
166# define VSF_WDT_CFG_IMP_REMAP_FUNCTIONS \
167 vsf_err_t vsf_imp_wdt_init(vsf_imp_wdt_t *wdt_ptr, vsf_wdt_cfg_t *cfg_ptr) \
169 VSF_HAL_ASSERT(wdt_ptr != NULL); \
170 return vsf_remap_wdt_init(wdt_ptr, cfg_ptr); \
172 void vsf_imp_wdt_fini(vsf_imp_wdt_t *wdt_ptr) \
174 VSF_HAL_ASSERT(wdt_ptr != NULL); \
175 vsf_remap_wdt_fini(wdt_ptr); \
177 fsm_rt_t vsf_imp_wdt_enable(vsf_imp_wdt_t *wdt_ptr) \
179 VSF_HAL_ASSERT(wdt_ptr != NULL); \
180 return vsf_remap_wdt_enable(wdt_ptr); \
182 fsm_rt_t vsf_imp_wdt_disable(vsf_imp_wdt_t *wdt_ptr) \
184 VSF_HAL_ASSERT(wdt_ptr != NULL); \
185 return vsf_remap_wdt_disable(wdt_ptr); \
187 vsf_wdt_capability_t vsf_imp_wdt_capability(vsf_imp_wdt_t *wdt_ptr) \
189 VSF_HAL_ASSERT(wdt_ptr != NULL); \
190 return vsf_remap_wdt_capability(wdt_ptr); \
192 void vsf_imp_wdt_feed(vsf_imp_wdt_t *wdt_ptr) \
194 VSF_HAL_ASSERT(wdt_ptr != NULL); \
195 vsf_remap_wdt_feed(wdt_ptr); \
197 vsf_err_t vsf_imp_wdt_get_configuration(vsf_imp_wdt_t *wdt_ptr, \
198 vsf_wdt_cfg_t *cfg_ptr) \
200 VSF_HAL_ASSERT(wdt_ptr != NULL); \
201 return vsf_remap_wdt_get_configuration(wdt_ptr, cfg_ptr); \
203 vsf_err_t vsf_imp_wdt_ctrl(vsf_imp_wdt_t *wdt_ptr, vsf_wdt_ctrl_t ctrl, void *param) \
205 VSF_HAL_ASSERT(wdt_ptr != NULL); \
206 return vsf_remap_wdt_ctrl(wdt_ptr, ctrl, param); \
212#define VSF_HAL_TEMPLATE_IMP_NAME _wdt
213#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _WDT
215#if !defined(VSF_WDT_CFG_IMP_PREFIX) && !defined(VSF_WDT_CFG_IMP_DEVICE_PREFIX)
216# error "Please define VSF_WDT_CFG_IMP_PREFIX in wdt driver"
219#if !defined(VSF_WDT_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_WDT_CFG_IMP_DEVICE_UPCASE_PREFIX)
220# error "Please define VSF_WDT_CFG_IMP_UPCASE_PREFIX in wdt driver"
223#ifndef VSF_WDT_CFG_IMP_COUNT_MASK_PREFIX
224# define VSF_WDT_CFG_IMP_COUNT_MASK_PREFIX VSF_WDT_CFG_IMP_UPCASE_PREFIX
227#ifdef VSF_WDT_CFG_IMP_REMAP_FUNCTIONS
228# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_WDT_CFG_IMP_REMAP_FUNCTIONS
233#undef VSF_WDT_CFG_IMP_PREFIX
234#undef VSF_WDT_CFG_IMP_COUNT_MASK_PREFIX
235#undef VSF_WDT_CFG_IMP_UPCASE_PREFIX
236#undef VSF_WDT_CFG_IMP_DEVICE_PREFIX
237#undef VSF_WDT_CFG_IMP_DEVICE_UPCASE_PREFIX
238#undef VSF_WDT_CFG_IMP_LV0
239#undef VSF_WDT_CFG_IMP_REMAP_FUNCTIONS
240#undef VSF_WDT_CFG_IMP_HAS_OP
241#undef VSF_WDT_CFG_IMP_EXTERN_OP
242#undef VSF_WDT_CFG_IMP_RENAME_DEVICE_PREFIX
245#undef vsf_imp_wdt_init
246#undef vsf_imp_wdt_fini
247#undef vsf_imp_wdt_enable
248#undef vsf_imp_wdt_disable
249#undef vsf_imp_wdt_capability
250#undef vsf_imp_wdt_feed
251#undef vsf_imp_wdt_get_configuration
252#undef vsf_imp_wdt_ctrl
254#undef vsf_remap_wdt_t
255#undef vsf_remap_wdt_init
256#undef vsf_remap_wdt_fini
257#undef vsf_remap_wdt_enable
258#undef vsf_remap_wdt_disable
259#undef vsf_remap_wdt_capability
260#undef vsf_remap_wdt_feed
261#undef vsf_remap_wdt_get_configuration
262#undef vsf_remap_wdt_ctrl
264#undef VSF_HAL_TEMPLATE_IMP_NAME
265#undef VSF_HAL_TEMPLATE_IMP_UPCASE_NAME
290#ifdef VSF_WDT_CFG_MODE_CHECK_UNIQUE
313#ifdef VSF_WDT_CUSTOM_MODE_VALUES
324#ifdef VSF_WDT_CUSTOM_MODE_VALUES
325 , VSF_WDT_CUSTOM_MODE_VALUES
332#ifdef VSF_WDT_CFG_IRQ_MASK_CHECK_UNIQUE
334#ifdef VSF_WDT_CUSTOM_IRQ_MASK_VALUES
342#undef VSF_WDT_CFG_MODE_CHECK_UNIQUE
343#undef VSF_WDT_CFG_IRQ_MASK_CHECK_UNIQUE
344#undef VSF_WDT_CUSTOM_MODE_VALUES
345#undef VSF_WDT_CUSTOM_IRQ_MASK_VALUES
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
@ VSF_WDT_MODE_RESET_SOC
Definition wdt.h:36
@ VSF_WDT_MODE_NO_EARLY_WAKEUP
Definition wdt.h:32
@ VSF_WDT_MODE_RESET_CPU
Definition wdt.h:37
@ VSF_WDT_MODE_RESET_NONE
Definition wdt.h:38
@ VSF_WDT_MODE_EARLY_WAKEUP
Definition wdt.h:33
#define NULL
Definition lvgl.h:26
Predefined VSF WDT capability that can be reimplemented in specific hal drivers. The vsf_wdt_capabili...
Definition vsf_template_wdt.h:395
uint8_t support_early_wakeup
Definition wdt.h:140
WDT configuration structure.
Definition vsf_template_wdt.h:325
#define VSF_WDT_CFG_IRQ_MASK_CHECK_UNIQUE
Definition wdt.c:208
#define VSF_WDT_CFG_MODE_CHECK_UNIQUE
Definition wdt.c:207
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
#define VSF_HAL_CHECK_UNIQUE_CUSTOM(__CHECK_FUNC,...)
Definition vsf_template_static_assert_unique.h:2426
vsf_wdt_ctrl_t
Predefined VSF WDT control commands that can be reimplemented in specific HAL drivers.
Definition vsf_template_wdt.h:362