1 /*
2  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3  */
4 #ifndef WDT_HAL_H
5 #define WDT_HAL_H
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
11 #include "plat_types.h"
12 
13 enum HAL_WDT_ID_T {
14     HAL_WDT_ID_0 = 0,
15     HAL_WDT_ID_NUM,
16 };
17 
18 enum HAL_WDT_EVENT_T {
19     HAL_WDT_EVENT_FIRE = 0,
20 };
21 
22 #define HAL_WDT_YES 1
23 #define HAL_WDT_NO 0
24 
25 typedef void (*HAL_WDT_IRQ_CALLBACK)(enum HAL_WDT_ID_T id, uint32_t status);
26 /* hal api */
27 void hal_wdt_set_irq_callback(enum HAL_WDT_ID_T id, HAL_WDT_IRQ_CALLBACK handler);
28 
29 /* mandatory operations */
30 int hal_wdt_start(enum HAL_WDT_ID_T id);
31 int hal_wdt_stop(enum HAL_WDT_ID_T id);
32 
33 /* optional operations */
34 int hal_wdt_ping(enum HAL_WDT_ID_T id);
35 int hal_wdt_set_timeout(enum HAL_WDT_ID_T id, unsigned int);
36 unsigned int hal_wdt_get_timeleft(enum HAL_WDT_ID_T id);
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 
42 #endif /* WDT_HAL_H */
43