xref: /nrf52832-nimble/rt-thread/components/drivers/include/drivers/watchdog.h (revision 104654410c56c573564690304ae786df310c91fc)
1 /*
2  * COPYRIGHT (C) 2018, Real-Thread Information Technology Ltd
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2012-09-12     heyuanjie87  first version.
9  */
10 
11 #ifndef  __WATCHDOG_H__
12 #define  __WATCHDOG_H__
13 
14 #include <rtthread.h>
15 
16 #define RT_DEVICE_CTRL_WDT_GET_TIMEOUT    (1) /* get timeout(in seconds) */
17 #define RT_DEVICE_CTRL_WDT_SET_TIMEOUT    (2) /* set timeout(in seconds) */
18 #define RT_DEVICE_CTRL_WDT_GET_TIMELEFT   (3) /* get the left time before reboot(in seconds) */
19 #define RT_DEVICE_CTRL_WDT_KEEPALIVE      (4) /* refresh watchdog */
20 #define RT_DEVICE_CTRL_WDT_START          (5) /* start watchdog */
21 #define RT_DEVICE_CTRL_WDT_STOP           (6) /* stop watchdog */
22 
23 struct rt_watchdog_ops;
24 struct rt_watchdog_device
25 {
26     struct rt_device parent;
27     const struct rt_watchdog_ops *ops;
28 };
29 typedef struct rt_watchdog_device rt_watchdog_t;
30 
31 struct rt_watchdog_ops
32 {
33     rt_err_t (*init)(rt_watchdog_t *wdt);
34     rt_err_t (*control)(rt_watchdog_t *wdt, int cmd, void *arg);
35 };
36 
37 rt_err_t rt_hw_watchdog_register(rt_watchdog_t *wdt,
38                                  const char    *name,
39                                  rt_uint32_t    flag,
40                                  void          *data);
41 
42 #endif /* __WATCHDOG_H__ */
43