[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_pxs.h b/mcu/interface/driver/peripheral/dcl_pxs.h
new file mode 100644
index 0000000..15a340a
--- /dev/null
+++ b/mcu/interface/driver/peripheral/dcl_pxs.h
@@ -0,0 +1,393 @@
+/*****************************************************************************
+*  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_pxs.h
+ *
+ * Project:
+ * --------
+ *   Maui
+ *
+ * Description:
+ * ------------
+ *   Header file of DCL (Driver Common Layer) for proximity sensor.
+ *
+ * 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!
+ *
+ *------------------------------------------------------------------------------
+ * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
+ *============================================================================
+ ****************************************************************************/
+
+#ifdef DCL_DEFINITION_STRUCT
+#ifndef __DCL_PXS_H_STRUCT__
+#define __DCL_PXS_H_STRUCT__
+
+/*******************************************************************************
+ * DCL_OPTIONS for PXS
+ *******************************************************************************/
+#define PXS_OPTIONS
+
+/*******************************************************************************
+ * DCL_CONFIGURE_T for PXS
+ *******************************************************************************/
+typedef void (*PFN_DCL_PXS_NOTIFY_CALLBACK)(DCL_BOOL fgObjectDetected);
+
+typedef enum
+{
+	PXS_COMPARE_WINDOW,  // Comparing window of PXS thresold algorithm
+	PXS_HILO_THRESHOLD,  // HIGH/LOW thresold methodology
+	PXS_ADV_ALGO_MAX
+} PXS_ADV_ALGO_ENUM;
+
+typedef struct
+{
+   DCL_BOOL fgNotify;
+   PFN_DCL_PXS_NOTIFY_CALLBACK NotifyCallback;
+} PXS_CONFIG_T, PXS_CTRL_CONFIG_T;
+
+#define PXS_CONFIGS \
+   PXS_CONFIG_T rPXSConfig;
+
+/*******************************************************************************
+ * DCL_EVENT for PXS
+ *******************************************************************************/
+#define PXS_EVENTS
+
+/*******************************************************************************
+ * DCL_CTRL_CMD for PXS
+ *******************************************************************************/
+#define PXS_CMDS \
+   PXS_CMD_ENABLE, \
+   PXS_CMD_GET_RAW_DATA, \
+   PXS_CMD_EM_READ, \
+   PXS_CMD_EM_WRITE, \
+   PXS_CMD_GET_ADV_ALGO_WINDOWING, \
+   PXS_CMD_GET_ADV_ALGO_THRESHOLD, \
+   PXS_CMD_MODIFY_CONFIG, \
+   PXS_CMD_GET_SENSITIVITY_LEVEL_NUM, \
+   PXS_CMD_SET_SENSITIVITY_LEVEL, \
+   PXS_CMD_GET_DETECT_STATUS, \
+   PXS_CMD_SET_DEBOUNCE, \
+
+
+/*******************************************************************************
+ * DCL_CTRL_DATA_T: Define the Control data structure for each module's command
+ *******************************************************************************/
+
+
+typedef enum
+{
+	PXS_HW_CMD_POWER_ENABLE,
+	PXS_HW_CMD_GET_SENSITIVITY_LEVEL_NUM,
+	PXS_HW_CMD_GET_SENSITIVITY_TABLE,
+}PXS_HW_CMD_ENUM;
+
+/* For PXS_CMD_ENABLE command. */
+typedef struct
+{
+   DCL_BOOL fgEnable;
+}PXS_CTRL_ENABLE_T;
+
+/* For PXS_CMD_GET_RAW_DATA command. */
+typedef struct
+{
+   DCL_UINT16 u2Data;
+}PXS_CTRL_RAW_DATA_T;
+
+/* For PXS_CMD_EM_ADV_ALGO_WINDOWING command. */
+//typedef struct
+//{
+//   DCL_UINT16 u2Count;
+//}PXS_CTRL_EM_WINDOWING_T;
+
+/* For PXS_CMD_EM_ADV_ALGO_THRESHOLD command. */
+//typedef struct
+//{
+//   DCL_UINT16 u2HiThreshold;
+//   DCL_UINT16 u2LoThreshold;
+//}PXS_CTRL_EM_THRESHOLD_T;
+
+/* For PXS_CMD_EM_READ, PXS_CMD_EM_WRITE command. */
+typedef struct
+{
+   DCL_UINT32 u4P1;
+   DCL_UINT32 u4P2;
+   DCL_UINT32 u4P3;
+   DCL_UINT32 u4P4;
+   DCL_UINT32 u4P5;
+   DCL_UINT32 u4P6;
+   DCL_UINT32 u4P7;
+   DCL_UINT32 u4P8;
+   DCL_UINT32 u4PollingPeriod;   // EM polling period, unit by ms
+}PXS_CTRL_EM_PARAM_T;
+
+/* For PXS_CMD_GET_ADV_ALGO_WINDOWING command. */
+typedef struct
+{
+   DCL_UINT16 u2Count;
+}PXS_CTRL_GET_ADV_ALGO_WINDOWING_T;
+
+/* For PXS_CMD_GET_ADV_ALGO_THRESHOLD command. */
+typedef struct
+{
+   DCL_UINT16 u2HiThreshold;
+   DCL_UINT16 u2LoThreshold;
+}PXS_CTRL_GET_ADV_ALGO_THRESHOLD_T;
+
+/* For PXS_CMD_GET_SENSITIVITY_LEVEL_NUM command. */
+typedef struct
+{
+   DCL_UINT16 u2LevelNum;
+}PXS_CTRL_GET_SENSITIVITY_LEVEL_NUM_T;
+
+/* For PXS_CMD_SET_SENSITIVITY_LEVEL command. */
+typedef struct
+{
+   DCL_UINT16 u2Level;
+}PXS_CTRL_SET_SENSITIVITY_LEVEL_T;
+
+/* For PXS_CMD_GET_DETECT_STATUS command. */
+typedef struct
+{
+   DCL_BOOL fgDetected;
+}PXS_CTRL_GET_DETECT_STATUS_T;
+
+
+/* For PXS_CMD_SET_DEBOUNCE command. */
+typedef struct
+{
+	DCL_UINT32 u4TopAreaDebounce; //ms
+	DCL_UINT32 u4LargerAreaDebounce; //ms
+}PXS_CTRL_SET_DEBOUNCE_T;
+
+#define PXS_CTRLS \
+   PXS_CTRL_ENABLE_T   rPXSEnable; \
+   PXS_CTRL_RAW_DATA_T rPXSRawData; \
+   PXS_CTRL_EM_PARAM_T rPXSEMParam; \
+   PXS_CTRL_GET_ADV_ALGO_WINDOWING_T rPXSAdvAlgoWindowing; \
+   PXS_CTRL_GET_ADV_ALGO_THRESHOLD_T rPXSAdvAlgoThreshold; \
+   PXS_CTRL_CONFIG_T rPXSConfig; \
+   PXS_CTRL_GET_SENSITIVITY_LEVEL_NUM_T rPXSSensitivityLevelNum; \
+   PXS_CTRL_SET_SENSITIVITY_LEVEL_T rPXSSensitivityLevel; \
+   PXS_CTRL_GET_DETECT_STATUS_T rPXSDetectStatus; \
+   PXS_CTRL_SET_DEBOUNCE_T rPXSSetDebounce;
+
+
+
+#endif // #ifndef __DCL_PXS_H_STRUCT__
+#endif // #ifdef DCL_DEFINITION_STRUCT
+
+
+#ifdef DCL_DEFINITION_PROTOTYPE
+#ifndef __DCL_PXS_H_PROTOTYPE__
+#define __DCL_PXS_H_PROTOTYPE__
+
+/*************************************************************************
+* FUNCTION
+*  DclPXS_Initialize
+*
+* DESCRIPTION
+*  This function is to initialize PXS module
+*
+* PARAMETERS
+*  None
+*
+* RETURNS
+*  STATUS_OK
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_Initialize(void);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_Open
+*
+* DESCRIPTION
+*  This function is to open the PXS module and return a handle
+*
+* PARAMETERS
+*  dev: only valid for DCL_PXS
+*  flags: no sepcial flags is needed. Please use FLAGS_NONE
+*
+* RETURNS
+*  DCL_HANDLE_INVALID: Open failed
+*  Other value: A valid handle
+*
+*************************************************************************/
+extern DCL_HANDLE DclPXS_Open(DCL_DEV dev, DCL_FLAGS flags);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_ReadData
+*
+* DESCRIPTION
+*  This function is not supported for the PXS module now.
+*
+* PARAMETERS
+*	N/A
+*
+* RETURNS
+*	STATUS_UNSUPPORTED
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_ReadData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN buf_len, DCL_OPTIONS options);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_WriteData
+*
+* DESCRIPTION
+*  This function is not supported for the PXS module now.
+*
+* PARAMETERS
+*	N/A
+*
+* RETURNS
+*	STATUS_UNSUPPORTED
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_WriteData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN buf_len, DCL_OPTIONS options);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_Configure
+*
+* DESCRIPTION
+*  This function is to configure the PXS module.
+*
+* PARAMETERS
+*  handle: the returned handle value of DclPXS_Open
+*  configure: a structure which include the PXS configuration.
+*
+* RETURNS
+*  STATUS_OK: Successfully configure PXS module.
+*  STATUS_INVALID_HANDLE: It's a invalid handle.
+*  STATUS_NOT_OPENED: The module has not been opened.
+*  STATUS_INVALID_CONFIGURATION: The configuration is invalid.
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_Configure(DCL_HANDLE handle, DCL_CONFIGURE_T *configure);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_RegisterCallback
+*
+* DESCRIPTION
+*  This function is to set callback function for the PXS module.
+*
+* PARAMETERS
+*  handle: the returned handle value of DclPXS_Open
+*  event: Supported events:
+*  callback: the callback function for registered events
+*
+* RETURNS
+*  STATUS_UNSUPPORTED
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_RegisterCallback(DCL_HANDLE handle, DCL_EVENT event, PFN_DCL_CALLBACK callback);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_Control
+*
+* DESCRIPTION
+*  This function is to send command to control the PXS module.
+*
+* PARAMETERS
+*  handle: The handle value returned from DclPXS_Open
+*  cmd: A control command for PXS module
+*          1. PXS_CMD_ENABLE: to enable/disable PXS function
+*          2. PXS_CMD_GET_RAW_DATA: to get PXS sampled raw data
+*          3. PXS_CMD_EM_READ: to read EM parameters
+*          4. PXS_CMD_EM_WRITE: to write EM parameters
+*          5. PXS_CMD_GET_DETECT_STATUS: to get PXS detected status
+*  data: The data of the control command
+*          1. PXS_CMD_ENABLE: pointer to a PXS_CTRL_ENABLE_T structure
+*          2. PXS_CMD_GET_RAW_DATA: pointer to a PXS_CTRL_RAW_DATA_T structure
+*          3. PXS_CMD_EM_READ: pointer to a PXS_CTRL_EM_PARAM_T structure
+*          4. PXS_CMD_EM_WRITE: pointer to a PXS_CTRL_EM_PARAM_T structure
+*          5. PXS_CMD_GET_DETECT_STATUS: pointer to a PXS_CTRL_GET_DETECT_STATUS_T structure
+*
+* RETURNS
+*  STATUS_OK: command is executed successfully.
+*  STATUS_FAIL: command is failed.
+*  STATUS_INVALID_CMD: It's a invalid command.
+*  STATUS_UNSUPPORTED: The command is NOT supported
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_Control(DCL_HANDLE handle, DCL_CTRL_CMD cmd, DCL_CTRL_DATA_T *data);
+/*************************************************************************
+* FUNCTION
+*  DclPXS_Close
+*
+* DESCRIPTION
+*  This function is to close the PXS module.
+*
+* PARAMETERS
+*  handle: the returned handle value of DclPXS_Open
+*
+* RETURNS
+*  STATUS_OK
+*
+*************************************************************************/
+extern DCL_STATUS DclPXS_Close(DCL_HANDLE handle);
+
+
+
+// Low level PXS driver (DclHPXS_XXX interfaces)
+extern DCL_STATUS DclHPXS_Initialize(void);
+extern DCL_HANDLE DclHPXS_Open(DCL_DEV dev, DCL_FLAGS flags);
+extern DCL_STATUS DclHPXS_ReadData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN buf_len, DCL_OPTIONS options);
+extern DCL_STATUS DclHPXS_WriteData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN buf_len, DCL_OPTIONS options);
+extern DCL_STATUS DclHPXS_Configure(DCL_HANDLE handle, DCL_CONFIGURE_T *configure);
+extern DCL_STATUS DclHPXS_RegisterCallback(DCL_HANDLE handle, DCL_EVENT event, PFN_DCL_CALLBACK callback);
+extern DCL_STATUS DclHPXS_Control(DCL_HANDLE handle, DCL_CTRL_CMD cmd, DCL_CTRL_DATA_T *data);
+extern DCL_STATUS DclHPXS_Close(DCL_HANDLE handle);
+
+
+
+
+
+#endif // #ifndef __DCL_PXS_H_PROTOTYPE__
+#endif // #ifdef DCL_DEFINITION_PROTOTYPE
+
+