[Feature][Modem]Update MTK MODEM V1.6 baseline version: MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6
MTK modem version: MT2735_IVT_MOLY.NR15.R3.MD700.IVT.MP1MR3.MP.V1.6.tar.gz
RF modem version: NA
Change-Id: I45a4c2752fa9d1a618beacd5d40737fb39ab64fb
diff --git a/mcu/interface/driver/peripheral/dcl_wdt.h b/mcu/interface/driver/peripheral/dcl_wdt.h
new file mode 100644
index 0000000..aa86503
--- /dev/null
+++ b/mcu/interface/driver/peripheral/dcl_wdt.h
@@ -0,0 +1,390 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2001
+*
+*****************************************************************************/
+
+/*****************************************************************************
+ *
+ * Filename:
+ * ---------
+ * dcl_wdt.h
+ *
+ * Project:
+ * --------
+ * Maui
+ *
+ * Description:
+ * ------------
+ * Header file of DCL (Driver Common Layer) for WDT.
+ *
+ * Author:
+ * -------
+ * -------
+ *
+ *============================================================================
+ * HISTORY
+ * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *------------------------------------------------------------------------------
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ * removed!
+ *
+ * removed!
+ * removed!
+ *
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifdef DCL_DEFINITION_STRUCT
+#ifndef __DCL_WDT_H_STRUCT__
+#define __DCL_WDT_H_STRUCT__
+
+
+#define DCL_WDT_RSTINTERVAL_VALUE 0xffa
+
+/*******************************************************************************
+ * DCL_OPTIONS for WDT
+ *******************************************************************************/
+#define WDT_OPTIONS
+
+ /*******************************************************************************
+ * DCL_CONFIGURE_T for WDT
+ *******************************************************************************/
+
+#define WDT_CONFIGS
+
+/*******************************************************************************
+ * DCL_EVENT for WDT
+ *******************************************************************************/
+#ifdef __BUILD_DOM__
+/*The WDT EVENT is part of DCL_EVENT_T Enum of dcl.h*/
+/*WDT_EVENTS_T Define the event type that wdt support to register a callback function*/
+typedef enum
+{
+ EVENT_WDT_TIMEOUT = 0x00000001
+}DCL_EVENT_T;
+#else
+#define WDT_EVENTS \
+ EVENT_WDT_TIMEOUT = 0x00000001,
+#endif
+/*******************************************************************************
+ * DCL_CTRL_CMD for WDT
+ *******************************************************************************/
+#ifdef __BUILD_DOM__
+/*The WDT Command values is part of DCL_CTRL_CMD_T Enum of dcl.h*/
+/*DCL_CTRL_DATA_T Define the Control data structure for each module's command*/
+typedef enum
+{
+ WDT_CMD_ENABLE , /*to enable/disable WDT*/
+ WDT_CMD_SET_EXT_POL, /*to set ploarity of external pin when WDT expired */
+ WDT_CMD_SET_EXT_RESET, /*to generate an external watchdog reset signal when WDT expired*/
+ WDT_CMD_SET_VALUE, /*to set WDT count value*/
+ WDT_CMD_RESTART, /*to restart counter*/
+ WDT_CMD_DRV_RESET, /*to reset device*/
+ WDT_CMD_ABN_RESET, /*to reset device with abnormal flag set to indicate it is a abnormal reset*/
+ WDT_CMD_IRQ, /*to generate interrupt instead of resetting device*/
+ WDT_CMD_IRQ_AUX,
+ WDT_CMD_GET_RSTINTERVAL,
+ WDT_CMD_GET_RSTINTERVAL_AUX,
+ WDT_CMD_ENABLE_DEBUG,
+ WDT_CMD_CLR_CHECK,
+ WDT_CMD_SET_CHECK,
+ WDT_CMD_CLR_KICK,
+ WDT_CMD_SET_KICK,
+}DCL_CTRL_CMD_T;
+#else
+#define WDT_CMDS \
+ WDT_CMD_ENABLE , \
+ WDT_CMD_SET_EXT_POL, \
+ WDT_CMD_SET_EXT_RESET, \
+ WDT_CMD_SET_VALUE, \
+ WDT_CMD_RESTART, \
+ WDT_CMD_DRV_RESET, \
+ WDT_CMD_ABN_RESET, \
+ WDT_CMD_IRQ, \
+ WDT_CMD_IRQ_AUX, \
+ WDT_CMD_GET_RSTINTERVAL, \
+ WDT_CMD_GET_RSTINTERVAL_AUX, \
+ WDT_CMD_ENABLE_DEBUG, \
+ WDT_CMD_CLR_CHECK, \
+ WDT_CMD_SET_CHECK, \
+ WDT_CMD_CLR_KICK, \
+ WDT_CMD_SET_KICK,
+#endif
+/*******************************************************************************
+ * DCL_CTRL_DATA_T: Define the Control data structure for each module's command
+ *******************************************************************************/
+ typedef struct
+ {
+ DCL_UINT32 rstInterval;
+ }WDT_CTRL_GET_RSTINTERVAL_T;
+
+/* For WDT_CMD_ENABLE command. */
+typedef struct
+{
+ DCL_BOOL fgEnable; // TRUE: Enable WDT, FALSE: Disable WDT
+} WDT_CTRL_ENABLE_T;
+/* For WDT_CMD_SET_EXT_POL command. */
+typedef struct
+{
+ DCL_BOOL fgIOHigh; // TRUE: IO high, FALSE: IO low
+} WDT_CTRL_SET_EXT_POL_T;
+/* For WDT_CMD_SET_EXT_RESET command. */
+typedef struct
+{
+ DCL_BOOL fgEnable; // TRUE: Generate reset signal, FALSE: Do NOT generate reset signal
+} WDT_CTRL_SET_EXT_RESET_T;
+/* For WDT_CMD_SET_VALUE command. */
+typedef struct
+{
+ DCL_UINT16 u2Value; // Set WDT count down value, the unit is 15.6ms
+} WDT_CTRL_SET_VALUE_T;
+/* For WDT_CMD_RESTART command. */
+// WDT_CMD_RESTART does NOT need parameters
+/* For WDT_CMD_DRV_RESET command. */
+// WDT_CMD_DRV_RESET does NOT need parameters
+/* For WDT_CMD_ABN_RESET command. */
+// WDT_CMD_ABN_RESET does NOT need parameters
+/* For WDT_CMD_IRQ command. */
+typedef struct
+{
+ DCL_BOOL fgEnable; // TRUE: Enable interrupt instread of generating reset, FALSE: Do NOT enable interrupt
+} WDT_CTRL_IRQ_T;
+/*For WDT_CMD_ENABLE_DEBUG command*/
+typedef struct
+{
+ DCL_BOOL fgEnable; //enable or disable debug
+}WDT_CTRL_DEBUG_T;
+
+#ifdef __BUILD_DOM__
+/*The GPIO command prarmeter data structure for each command. that's enum in in DCL_CTRL_DATA_T*/
+typedef struct
+{
+ WDT_CTRL_ENABLE_T rWDTEnable; /*data structure for WDT_CMD_ENABLE control command */
+ WDT_CTRL_SET_EXT_POL_T rWDTSetExtPol; /*data structure for WDT_CMD_SET_EXT_POL control command */
+ WDT_CTRL_SET_EXT_RESET_T rWDTSetExtReset; /*data structure for WDT_CMD_SET_EXT_RESET control command */
+ WDT_CTRL_SET_VALUE_T rWDTSetValue; /*data structure for WDT_CMD_SET_VALUE control command */
+ WDT_CTRL_IRQ_T rWDTIRQ; /*data structure for WDT_CMD_IRQ control command */
+ WDT_CTRL_DEBUG_T rWDTDebug; /*data structure for WDT_CMD_ENABLE_DEBUG control command */
+}DCL_CTRL_DATA_T;
+#else
+#define WDT_CTRLS \
+ WDT_CTRL_ENABLE_T rWDTEnable; \
+ WDT_CTRL_SET_EXT_POL_T rWDTSetExtPol; \
+ WDT_CTRL_SET_EXT_RESET_T rWDTSetExtReset; \
+ WDT_CTRL_SET_VALUE_T rWDTSetValue; \
+ WDT_CTRL_IRQ_T rWDTIRQ; \
+ WDT_CTRL_DEBUG_T rWDTDebug; \
+ WDT_CTRL_GET_RSTINTERVAL_T rRstValue;
+#endif
+
+#endif // #ifndef __DCL_I2C_H_STRUCT__
+#endif // #ifdef DCL_DEFINITION_STRUCT
+
+
+#ifdef DCL_DEFINITION_PROTOTYPE
+#ifndef __DCL_WDT_H_PROTOTYPE__
+#define __DCL_WDT_H_PROTOTYPE__
+
+/*************************************************************************
+* FUNCTION
+* DclWDT_Initialize
+*
+* DESCRIPTION
+* This function is to initialize WDT module
+*
+* PARAMETERS
+* None
+*
+* RETURN VALUES
+* STATUS_OK
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_Initialize(void);
+/*************************************************************************
+* FUNCTION
+* DclWDT_Open
+*
+* DESCRIPTION
+* This function is to open the WDT module and return a handle
+*
+* PARAMETERS
+* dev: only valid for DCL_WDT
+* flags: no sepcial flags is needed. Please use FLAGS_NONE
+*
+* RETURN VALUES
+* DCL_HANDLE_INVALID: Open failed.
+* other value: a valid handle
+*
+*************************************************************************/
+extern DCL_HANDLE DclWDT_Open(DCL_DEV dev, DCL_FLAGS flags);
+/*************************************************************************
+* FUNCTION
+* DclWDT_ReadData
+*
+* DESCRIPTION
+* This function is not supported for the WDT module now.
+*
+* PARAMETERS
+* N/A
+*
+* RETURN VALUES
+* STATUS_UNSUPPORTED
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_ReadData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN buf_len, DCL_OPTIONS options);
+/*************************************************************************
+* FUNCTION
+* DclWDT_WriteData
+*
+* DESCRIPTION
+* This function is not supported for the WDT module now.
+*
+* PARAMETERS
+* N/A
+*
+* RETURN VALUES
+* STATUS_UNSUPPORTED
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_WriteData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN buf_len, DCL_OPTIONS options);
+/*************************************************************************
+* FUNCTION
+* DclWDT_Configure
+*
+* DESCRIPTION
+* This function is not supported for the WDT module now.
+*
+* PARAMETERS
+* N/A
+*
+* RETURN VALUES
+* STATUS_UNSUPPORTED
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_Configure(DCL_HANDLE handle, DCL_CONFIGURE_T *configure);
+/*************************************************************************
+* FUNCTION
+* DclWDT_RegisterCallback
+*
+* DESCRIPTION
+* This function is to set callback function for the WDT module.
+*
+* PARAMETERS
+* handle: the returned handle value of DclWDT_Open
+* event: Supported events:
+* EVENT_WDT_TIMEOUT: Watch dog time out interrupt
+* callback: the callback function for registered events
+*
+* RETURN VALUES
+* STATUS_OK: Successfully register the callback function.
+* STATUS_INVALID_DCL_HANDLE: It's a invalid handle.
+* STATUS_NOT_OPENED: The module has not been opened.
+* STATUS_INVALID_EVENT: The event parameter is invalid.
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_RegisterCallback(DCL_HANDLE handle, DCL_EVENT event, PFN_DCL_CALLBACK callback);
+/*************************************************************************
+* FUNCTION
+* DclWDT_Control
+*
+* DESCRIPTION
+* This function is to send command to control the WDT module.
+*
+* PARAMETERS
+* handle: The handle value returned from DclWDT_Open
+* cmd: a control command for WDT module
+* 1. WDT_CMD_ENABLE: to enable/disable WDT
+* 2. WDT_CMD_SET_EXT_POL: to set ploarity of external pin when WDT expired
+* 3. WDT_CMD_SET_EXT_RESET: to generate an external watchdog reset signal when WDT expired
+* 4. WDT_CMD_SET_VALUE: to set WDT count value
+* 5 WDT_CMD_RESTART: to restart counter
+* 6. WDT_CMD_DRV_RESET: to reset device
+* 7. WDT_CMD_ABN_RESET: to reset device with abnormal flag set to indicate it is a abnormal reset
+* 8. WDT_CMD_IRQ: to generate interrupt instead of reseting device
+* data: The data of the control command
+* 1. WDT_CMD_ENABLE: pointer to a WDT_CTRL_ENABLE_T structure
+* 2. WDT_CMD_SET_EXT_POL: pointer to a WDT_CTRL_SET_EXT_POL_T structure
+* 3. WDT_CMD_SET_EXT_RESET: pointer to a WDT_CTRL_SET_EXT_RESET_T structure
+* 4. WDT_CMD_SET_VALUE: pointer to a WDT_CTRL_SET_VALUE_T structure
+* 5 WDT_CMD_RESTART: A null pointer
+* 6. WDT_CMD_DRV_RESET: A null pointer
+* 7. WDT_CMD_ABN_RESET: A null pointer
+* 8. WDT_CMD_IRQ: pointer to a WDT_CTRL_IRQ_T structure
+*
+* RETURN VALUES
+* STATUS_OK: command is executed successfully.
+* STATUS_FAIL: command is failed.
+* STATUS_INVALID_CMD: It's a invalid command.
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_Control(DCL_HANDLE handle, DCL_CTRL_CMD cmd, DCL_CTRL_DATA_T *data);
+/*************************************************************************
+* FUNCTION
+* DclWDT_Close
+*
+* DESCRIPTION
+* This function is to close the WDT module.
+*
+* PARAMETERS
+* handle: the returned handle value of DclWDT_Open
+*
+* RETURNS
+* STATUS_OK
+*
+*************************************************************************/
+extern DCL_STATUS DclWDT_Close(DCL_HANDLE handle);
+
+
+#endif // #ifndef __DCL_WDT_H_PROTOTYPE__
+#endif // #ifdef DCL_DEFINITION_PROTOTYPE
+
+
+
+
+
+