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