nt9856x/code/hdal/drivers/k_driver/include/rtos_na51089/wdt.h
2023-03-28 15:07:53 +08:00

126 lines
3.1 KiB
C
Executable File

/**
Header file for WDT module.
This file is the header file that define the API and data type
for WDT module.
@file wdt.h
@ingroup miDrvTimer_WDT
@note Nothing.
Copyright Novatek Microelectronics Corp. 2011. All rights reserved.
*/
#ifndef _WDT_H
#define _WDT_H
#include <kwrap/nvt_type.h>
#include "../comm/driver.h"
/**
@addtogroup miDrvTimer_WDT
*/
//@{
/**
WDT mode
WDT mode.
*/
typedef enum {
WDT_MODE_INT, ///< Issue interrupt when WDT expired
WDT_MODE_RESET, ///< Reset system when WDT expired
ENUM_DUMMY4WORD(WDT_MODE)
} WDT_MODE;
/**
WDT external reset
WDT external reset
*/
typedef enum {
WDT_NORMAL_MODE, ///< follow mode configuration
WDT_EXT_RESET, ///< enable LVD reset
ENUM_DUMMY4WORD(WDT_EXT_MODE)
} WDT_EXT_MODE;
/**
WDT manual reset
WDT manual reset
*/
typedef enum {
WDT_NORMAL_OP_MODE, ///< follow mode configuration
WDT_MANUAL_RESET, ///< enable manual reset
ENUM_DUMMY4WORD(WDT_MANUAL_MODE)
} WDT_MANUAL_MODE;
/**
WDT reset number enable
WDT reset number enable
*/
typedef enum {
WDT_RST_NUM_DISABLE, ///< Reset number will not increase after wdt reset
WDT_RST_NUM_ENABLE, ///< Reset number will increase after wdt reset
ENUM_DUMMY4WORD(WDT_RST_NUM)
} WDT_RST_NUM;
/**
WDT configuration ID
WDT configuration ID for wdt_setConfig() and wdt_getConfig().
*/
typedef enum {
WDT_CONFIG_ID_MODE, ///< WDT expired mode
///< - @b WDT_MODE_INT : Issue interrupt (Default value)
///< - @b WDT_MODE_RESET : Reset system
WDT_CONFIG_ID_TIMEOUT, ///< WDT expired time
///< @note Valid value: 349 ~ 89,478 , unit: ms, resolution about: 350 ms. Default 349 ms
///< Actual expired time might longer than your setting.
///< Please call wdt_getConfig(WDT_CONFIG_ID_TIMEOUT) to confirm.
WDT_CONFIG_ID_USERDATA, ///< WDT user data, it's 32 bits data that will be kept until system HW reset.
WDT_CONFIG_ID_EXT_RESET, ///< WDT external reset
///< - @b Diable : Follow mode configuration
///< - @b ENable : Enable LVD reset, ignore mode configuration
WDT_CONFIG_ID_MANUAL_RESET, ///< WDT manual reset
///< - @b Diable : Follow mode configuration
///< - @b ENable : Watchdog reset immediately, ignore mode configuration
WDT_CONFIG_ID_RST_NUM, ///< WDT reset number 1
///< - @b Diable : Reset number will not increase after wdt reset
///< - @b ENable : Reset number will increase after wdt reset
ENUM_DUMMY4WORD(WDT_CONFIG_ID)
} WDT_CONFIG_ID;
extern ER wdt_open(void);
extern ER wdt_close(void);
extern void wdt_setConfig(WDT_CONFIG_ID ConfigID, UINT32 uiConfig);
extern UINT32 wdt_getConfig(WDT_CONFIG_ID ConfigID);
extern void wdt_enable(void);
extern void wdt_disable(void);
extern void wdt_trigger(void);
extern void wdt_waitTimeout(void);
extern void wdt_clearTimeout(void);
extern UINT32 wdt_getResetNum(void);
extern UINT32 wdt_getResetNum1(void);
extern void wdt_external_reset(void);
//@}
#endif