Initial cut of the open ath9k htc firmware.
[open-ath9k-htc-firmware.git] / target_firmware / magpie_fw_dev / target / inc / k2 / wdt_api.h
1 #ifndef __WDT_API_H__
2 #define __WDT_API_H__
3
4 typedef enum {
5         WDT_ACTION_NO = 0,      // bit1, bit0: 00
6         WDT_ACTION_INTR,        // bit1, bit0: 01
7         WDT_ACTION_NMI,         // bit1, bit0: 10
8         WDT_ACTION_RESET,     // bit1, bit0: 11
9
10         WDT_ACTION_UNKNOWN
11 } T_WDT_ACTION_TYPE;
12
13 typedef enum {
14         WDT_TIMEOUT = 1,
15         WDT_ACTION,
16
17         WDT_UNKNOWN
18 } T_WDT_CMD_TYPE;
19
20 typedef struct {
21         uint32_t cmd;
22         union {
23                 uint32_t timeout;
24                 uint32_t action;
25         };
26 }T_WDT_CMD;
27
28 typedef enum {
29         ENUM_WDT_BOOT = 1,
30         ENUM_COLD_BOOT,
31         ENUM_SUSP_BOOT,
32
33         // add above here
34         ENUM_UNKNOWN_BOOT
35 } T_BOOT_TYPE;
36
37
38 /*!- interface of watchdog timer
39  *
40  */
41 struct wdt_api {
42         void (* _wdt_init)(void);
43         void (* _wdt_enable)(void);
44         void (* _wdt_disable)(void);
45         void (* _wdt_set)(T_WDT_CMD);
46         void (* _wdt_task)(void);
47         void (* _wdt_reset)(void);
48         T_BOOT_TYPE (*_wdt_last_boot)(void);
49 };
50 #endif /* __WDT_API_H__ */
51