[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_sts.h b/mcu/interface/driver/peripheral/dcl_sts.h
new file mode 100644
index 0000000..5b6f0a8
--- /dev/null
+++ b/mcu/interface/driver/peripheral/dcl_sts.h
@@ -0,0 +1,665 @@
+/*****************************************************************************
+* 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_ts.h
+ *
+ * Project:
+ * --------
+ * Maui
+ *
+ * Description:
+ * ------------
+ * Header file of DCL (Driver Common Layer) for TS.
+ *
+ * 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!
+ * 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_TS_H_STRUCT__
+#define __DCL_TS_H_STRUCT__
+
+
+/*******************************************************************************
+ * DCL_OPTIONS for TS
+ *******************************************************************************/
+#define TS_OPTIONS
+
+// Earlier defined in dcl_ts.c. Moved here so that application files can use this define
+
+/*******************************************************************************
+ * DCL_CONFIGURE_T
+ *******************************************************************************/
+
+#define TS_CONFIGS \
+ //TS_CONFIG_T rTSConfig;
+
+/*******************************************************************************
+ * DCL_EVENT for TS
+ *******************************************************************************/
+#define TS_EVENTS \
+ DCL_EVENT_STS_PUSH_BUFF = 1, \
+ DCL_EVENT_STS_UP, \
+ DCL_EVNET_STS_DOWN, \
+ DCL_EVENT_STS_MAX,
+
+/*******************************************************************************
+ * DCL_CTRL_CMD for TS
+ *******************************************************************************/
+#define TS_CMDS \
+ STS_CMD_GET_EVENT, \
+ STS_CMD_PEEK_EVENT, \
+ STS_CMD_ENABLE, \
+ STS_CMD_FLUSH, \
+ STS_CMD_START_CALI, \
+ STS_CMD_STOP_CALI, \
+ STS_CMD_READ_CALI, \
+ STS_CMD_SET_CALI, \
+ STS_CMD_RESET, \
+ STS_CMD_RESET_HANDWRITING, \
+ STS_CMD_CONF_SAMPLE_PERIOD, \
+ STS_CMD_CONF_MOVE_OFFSET, \
+ STS_CMD_CONF_HANDWRITING, \
+ STS_CMD_POWER_ON, \
+ STS_CMD_CONF_TIMEOUT_PERIOD, \
+ STS_CMD_CTRL_CUSTOM_PARAM,\
+ STS_CMD_CTRL_CUSTOM_PARAM_RANGE,\
+ STS_CMD_CTRL_MICRONMETER_TO_COORD,\
+ STS_CMD_CTRL_COORD_TO_MICRONMETER,\
+ STS_CMD_QUERY_TP_TYPE,\
+ STS_CMD_SET_DEVICE,\
+ STS_CMD_COMMAND,
+
+/*******************************************************************************
+ * DCL_CTRL_DATA_T: Define the Control data structure for each module's command
+ *******************************************************************************/
+/* For TS_CMD command. */
+
+
+//STS_CMD_QUERY_TP_TYPE
+typedef enum
+{
+ RTP_Type = 0,
+ CTP_Type
+
+}DCL_TP_TYPE_Enum;
+
+typedef struct
+{
+ DCL_TP_TYPE_Enum TouchPanelType;
+}DCL_TP_TYPE_T;
+
+
+//STS_CMD_CTRL_CUSTOM_PARAM
+typedef enum
+{
+ TP_PARAM_GET = 0,
+ TP_PARAM_SET,
+ TP_PARAM_RESET
+}TP_CTRL_PARAM_TYPE;
+
+typedef struct {
+ kal_uint32 ts_debounce_time;
+ kal_uint32 touch_panel_cali_check_offset;
+ kal_uint32 min_pen_move_offset;
+ kal_uint32 hand_writing_max_offset;
+ kal_uint32 nonhand_writing_max_offset;
+ kal_uint32 max_stroke_move_offset;
+ kal_uint32 multiple_point_selection;
+ kal_uint32 touch_pressure_threshold_high;
+ kal_uint32 touch_pressure_threshold_low;
+ kal_uint32 pressure_check_boundary;
+ kal_uint32 pressure_shifting_boundary;
+ kal_uint32 border_pass_criterion;
+ kal_uint32 non_border_pass_criterion;
+ kal_uint32 border_range;
+ kal_uint32 jitter_circuit_interval;
+ kal_uint32 Dump_Screen;
+ kal_uint32 reserve_parameter1; //use for AUX_SPL_NUM
+ kal_uint32 reserve_parameter2;
+ kal_uint32 reserve_parameter3;
+ kal_uint32 height; // get only
+ kal_uint32 width; // get only
+} TouchPanel_EM_custom_data_struct;
+
+typedef struct
+{
+ TP_CTRL_PARAM_TYPE type;
+ TouchPanel_EM_custom_data_struct* pEmData;
+}DCL_CTRL_CUSTOM_PARAM_T;
+
+
+
+typedef struct
+{
+ kal_int32 ts_debounce_time_min;
+ kal_int32 ts_debounce_time_max;
+kal_int32 touch_panel_cali_check_offset_min;
+kal_int32 touch_panel_cali_check_offset_max;
+kal_int32 min_pen_move_offset_min;
+kal_int32 min_pen_move_offset_max;
+kal_int32 hand_writing_max_offset_min;
+kal_int32 hand_writing_max_offset_max;
+kal_int32 nonhand_writing_max_offset_min;
+kal_int32 nonhand_writing_max_offset_max;
+kal_int32 max_stroke_move_offset_min;
+kal_int32 max_stroke_move_offset_max;
+kal_int32 multiple_point_selection_min;
+kal_int32 multiple_point_selection_max;
+kal_int32 touch_pressure_threshold_high_min;
+kal_int32 touch_pressure_threshold_high_max;
+kal_int32 pressure_check_boundary_min;
+kal_int32 pressure_check_boundary_max;
+kal_int32 pressure_shifting_boundary_min;
+kal_int32 pressure_shifting_boundary_max;
+kal_int32 border_pass_criterion_min;
+kal_int32 border_pass_criterion_max;
+kal_int32 nonborder_pass_criterion_min;
+kal_int32 nonborder_pass_criterion_max;
+kal_int32 border_range_min;
+kal_int32 border_range_max;
+kal_uint32 jitter_circuit_interval_min;
+kal_uint32 jitter_circuit_interval_max;
+kal_uint32 Dump_Screen_min;
+kal_uint32 Dump_Screen_max;
+kal_int32 reserve_parameter1_min;
+kal_int32 reserve_parameter1_max;
+kal_int32 reserve_parameter2_min;
+kal_int32 reserve_parameter2_max;
+kal_int32 reserve_parameter3_min;
+kal_int32 reserve_parameter3_max;
+}TP_PARAM_RANGE;
+
+//STS_CMD_CTRL_CUSTOM_PARAM_RANGE
+typedef struct
+{
+ TP_CTRL_PARAM_TYPE type;
+ TP_PARAM_RANGE* pEmDataRange;
+}DCL_CTRL_CUSTOM_PARAM_RANGE_T;
+
+// STS_CMD_CTRL_MICRONMETER_TO_PIXEL
+typedef struct
+{
+ kal_uint32 x_micronmeter;
+ kal_uint32 y_micronmeter;
+ kal_uint32 x_coord;
+ kal_uint32 y_coord;
+}DCL_CTRL_MICRONMETER_COORD_T;
+
+
+
+//STS_CMD_GET_EVENT
+
+typedef enum {
+ DCL_PEN_DOWN, /*0*/
+ DCL_PEN_UP, /*1*/
+ DCL_PEN_MOVE, /*2*/
+ DCL_PEN_LONGTAP, /*3*/
+ DCL_PEN_REPEAT, /*4*/
+ DCL_PEN_ABORT, /*5*/
+ DCL_TP_UNKNOWN_EVENT,/*6*/
+ DCL_STROKE_MOVE, /*7*/
+ DCL_STROKE_STATICAL, /*8*/
+ DCL_STROKE_HOLD, /*9*/
+ DCL_PEN_LONGTAP_HOLD, /*10*/
+ DCL_PEN_REPEAT_HOLD, /*11*/
+ DCL_STROKE_DOWN=0xc0, /*0*/ /*1*/
+ DCL_STROKE_LONGTAP=0x7e, /*8*/
+ DCL_STROKE_UP=0x7f/*127*/
+} DCL_TP_Event_enum;
+
+/*
+typedef struct
+{
+ DCL_INT16 i2xAdc;
+ DCL_INT16 i2yAdc;
+ DCL_TP_Event_enum rEvent;
+ DCL_UINT16 i2TimeStamp; // unit: system tick
+} STS_CTRL_GET_T;
+*/
+
+typedef struct
+{
+ // Touch_Panel_Event_enum
+ DCL_UINT16 u2Event;
+ /*coordinate point, not diff*/
+ DCL_UINT16 u2x;
+ DCL_UINT16 u2y;
+ DCL_UINT16 u2z; //resistance TP: presure, capacitive TP: area
+} DCL_TP_SINGLE_EVENT_T;
+
+typedef struct
+{
+ DCL_UINT16 uModel; // Single/Dual/Triple/Four/Five/All gesture
+ DCL_UINT16 uPadding; //currently use for check the structure format correctness, 0xAA
+ DCL_UINT32 u2Time_stamp;
+ DCL_TP_SINGLE_EVENT_T rPoints[5];
+} STS_CTRL_GET_T;
+
+//STS_CMD_ENABLE
+typedef struct
+{
+ DCL_BOOL fgEnable;
+} STS_CTRL_EN_T;
+
+typedef struct
+{
+ kal_uint8 ref_count;
+ kal_uint16 msg_len; /* LOCAL_PARA_HDR */
+ kal_bool result;
+}tp_cali_done_struct;
+
+//STS_CMD_START_CALI
+typedef struct
+{
+ DCL_INT16 i2x; /*x coordinate*/
+ DCL_INT16 i2y; /*y coordinate*/
+} TS_COORD_T;
+typedef struct
+{
+ TS_COORD_T *rpPoint;
+ DCL_UINT16 u2Num;
+} STS_CTRL_SC_T;
+
+//STS_CMD_READ_CALI
+typedef struct
+{
+ /*x*/
+ double x_slope;
+ double x_offset;
+ /*y*/
+ double y_slope;
+ double y_offset;
+} TS_CALI_T;
+typedef struct
+{
+ TS_CALI_T rCali;
+} STS_CTRL_RC_T;
+
+//STS_CMD_SET_CALI
+typedef struct
+{
+ TS_CALI_T rCali;
+} STS_CTRL_SETC_T;
+
+//STS_CMD_RESET
+typedef struct
+{
+ DCL_BOOL fgSkipUnreleaseEnable;
+} STS_CTRL_RESET_T;
+
+//STS_CMD_CONF_SAMPLE_PERIOD
+typedef struct
+{
+ DCL_UINT32 u4Low;
+ DCL_UINT32 u4High;
+} STS_CTRL_CSP_T;
+
+//STS_CMD_CONF_MOVE_OFFSET
+typedef struct
+{
+ DCL_UINT16 u2Pen_offset;
+ DCL_UINT16 u2Stroke_offset;
+ DCL_UINT16 u2Longtap_pen_offset;
+ DCL_UINT16 u2Longtap_stroke_offset;
+} STS_CTRL_CMO_T;
+
+//STS_CMD_CONF_HANDWRITING
+typedef struct
+{
+ TS_COORD_T rMin;
+ TS_COORD_T rMax;
+} TS_HandArea_T;
+typedef struct
+{
+ TS_HandArea_T *rArea;
+ DCL_UINT16 u2n;
+ TS_HandArea_T *rExtArea;
+} STS_CTRL_CHW_T;
+
+//STS_CMD_CONF_TIMEOUT_PERIOD
+typedef struct
+{
+ DCL_UINT32 u4Longtap;
+ DCL_UINT32 u4Repeat;
+ DCL_UINT32 u4Handwriting_longtap;
+} STS_CTRL_CTP_T;
+
+//STS_CMD_POWER_ON
+typedef struct
+{
+ DCL_BOOL fgPowerOn;
+} STS_CTRL_POWER_ON_T;
+
+//STS_CMD_SET_DEVICE
+typedef enum
+{
+ DCL_CTP_ACTIVE_MODE,
+ DCL_CTP_IDLE_MODE,
+ DCL_CTP_SLEEP_MODE,
+ DCL_CTP_GESTURE_DETECTION_MODE,
+ DCL_CTP_MULTIPLE_POINT_MODE,
+ DCL_CTP_FIRMWARE_UPDATE,
+ DCL_CTP_FM_ENABLE,
+ DCL_CTP_FM_DISABLE
+}DCL_CTP_DEVICE_MODE_enum;
+
+typedef struct
+{
+ DCL_CTP_DEVICE_MODE_enum mode;
+} STS_CTRL_SET_DEVICE_T;
+
+//STS_CMD_COMMAND
+typedef enum
+{
+ DCL_CTP_COMMAND_GET_VERSION,
+ DCL_CTP_COMMAND_GET_CONFIG,
+ DCL_CTP_COMMAND_LOAD_INT_CONFIG,
+ DCL_CTP_COMMAND_LOAD_EXT_CONFIG,
+ DCL_CTP_COMMAND_GET_DIFF_DATA,
+ DCL_CTP_COMMAND_GET_FW_BUFFER,
+ DCL_CTP_COMMAND_DO_FW_UPDATE
+}DCL_CTP_CTRL_COMMAND_enum;
+
+typedef struct
+{
+ DCL_UINT32 u4Command;
+ void *pVoid1;
+ void *pVoid2;
+} STS_CTRL_COMMAND_T;
+
+#define TS_CTRLS \
+ STS_CTRL_GET_T rTSCtrlGE; \
+ STS_CTRL_EN_T rTSCtrlEN; \
+ STS_CTRL_SC_T rTSCtrlSC; \
+ STS_CTRL_RC_T rTSCtrlRC; \
+ STS_CTRL_SETC_T rTSCtrlSETC; \
+ STS_CTRL_RESET_T rTSCtrlRESET; \
+ STS_CTRL_CSP_T rTSCtrlCSP; \
+ STS_CTRL_CMO_T rTSCtrlCMO; \
+ STS_CTRL_CHW_T rTSCtrlCHW; \
+ STS_CTRL_POWER_ON_T rTSCtrlPO; \
+ STS_CTRL_CTP_T rTSCtrlCTP; \
+ DCL_CTRL_CUSTOM_PARAM_T rTSCtrlCustomParam;\
+ DCL_CTRL_CUSTOM_PARAM_RANGE_T rTSCtrlCustomParamRang;\
+ DCL_CTRL_MICRONMETER_COORD_T rTSCtrlMicronMeter_Pixel;\
+ DCL_TP_TYPE_T rTSCtrlTouchPanelType;\
+ STS_CTRL_SET_DEVICE_T rTSCtrlSD;\
+ STS_CTRL_COMMAND_T rTSCtrlCmd;
+
+
+#endif // #ifndef __DCL_TS_H_STRUCT__
+#endif // #ifdef DCL_DEFINITION_STRUCT
+
+
+#ifdef DCL_DEFINITION_PROTOTYPE
+#ifndef __DCL_TS_H_PROTOTYPE__
+#define __DCL_TS_H_PROTOTYPE__
+
+
+/*************************************************************************
+* FUNCTION
+* DclSTS_Configure
+*
+* DESCRIPTION
+* This function is to configure the SW TS module.
+*
+* CALLS
+* It is called to configure of the SW TS module.
+*
+* PARAMETERS
+* handle - a valid handle return by DclSTS_Open()
+* configure - a structure which include the TS configuration.
+*
+* RETURNS
+* STATUS_OK: command is executed successfully.
+* STATUS_FAIL: not open yet.
+* STATUS_INVALID_ARGUMENT: not a valid handle.
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_STATUS DclSTS_Configure(DCL_HANDLE handle, DCL_CONFIGURE_T *configure);
+/*************************************************************************
+* FUNCTION
+* DclSTS_Control
+*
+* DESCRIPTION
+* This function is to send command to control the SW TS module.
+*
+* CALLS
+* It is called to send command to control the SW TS module.
+*
+* PARAMETERS
+* handle - a valid handle return by DclSTS_Open()
+* cmd - a control command for TS module
+* 1. STS_CMD_ENABLE :enable/disable touch panel
+* 2. STS_CMD_FLUSH :to flush all data in ring buffer.
+* 3. STS_CMD_START_CALI :to do coordinate calibration.
+* 4. STS_CMD_STOP_CALI :to stop coordinate calibration.
+* 5. STS_CMD_READ_CALI :to read coordinate calibration.
+* 6. STS_CMD_SET_CALI :to set coordinate calibration.
+* 7. STS_CMD_RESET :to reset touch panel driver.
+* 8. STS_CMD_RESET_HANDWRITING :to reset handwriting area as normal.
+* 9. STS_CMD_CONF_SAMPLE_PERIOD :to configure sample period in handwriting and non-handwriting area.
+* 10. STS_CMD_CONF_MOVE_OFFSET :to configure pen move offset and stroke move offset.
+* 11. STS_CMD_CONF_HANDWRITING :to configure handwriting area.
+* 12. STS_CMD_CONF_TIMEOUT_PERIOD:to configure period of long tap and repeat event.
+* 13. STS_CMD_GET_EVENT :to read event from ring buffer
+* 13. STS_CMD_PEEK_EVENT :to peek event from ring buffer
+
+* data - a union of DCL_CTRL_DATA_T
+* rTSCtrlEN; //STS_CMD_ENABLE
+* rTSCtrlSC; //STS_CMD_START_CALI
+* rTSCtrlRC; //STS_CMD_READ_CALI
+* rTSCtrlSETC; //STS_CMD_SET_CALI
+* rTSCtrlRESET; //STS_CMD_RESET
+* rTSCtrlCSP; //STS_CMD_CONF_SAMPLE_PERIOD
+* rTSCtrlCMO; //STS_CMD_CONF_MOVE_OFFSET
+* rTSCtrlCHW; //STS_CMD_CONF_HANDWRITING
+* rTSCtrlCTP; //STS_CMD_CONF_TIMEOUT_PERIOD
+* rTSCtrlGE; //STS_CMD_GET_EVENT
+* rTSCtrlGE; //STS_CMD_PEEK_EVENT
+*
+* RETURNS
+* STATUS_OK: command is executed successfully.
+* STATUS_FAIL: command is failed.
+* STATUS_INVALID_CMD: It's a invalid command.
+* STATUS_INVALID_ARGUMENT: not a valid handle.
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_STATUS DclSTS_Control(DCL_HANDLE handle, DCL_CTRL_CMD cmd, DCL_CTRL_DATA_T *data);
+/*************************************************************************
+* FUNCTION
+* DclSTS_Initialize
+*
+* DESCRIPTION
+* This function is to initialize SW TS module
+*
+* CALLS
+* It is called to initialize SW TS module
+*
+* PARAMETERS
+* None
+*
+* RETURNS
+* DCL_STATUS_OK
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_STATUS DclSTS_Initialize(void);
+/*************************************************************************
+* FUNCTION
+* DclSTS_Open
+*
+* DESCRIPTION
+* This function is to open the TS SW module and return a handle
+*
+* CALLS
+* It is called to open SW TS module
+*
+* PARAMETERS
+* dev - valid for DCL_TS
+* flags - no sepcial flags is needed. Please use FLAGS_NONE
+*
+* RETURNS
+* DCL_HANDLE_INVALID - Open failed.
+* Other value - a valid handle
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_HANDLE DclSTS_Open(DCL_DEV dev, DCL_FLAGS flags);
+/*************************************************************************
+* FUNCTION
+* DclSTS_ReadData
+*
+* DESCRIPTION
+* This function unsupported.
+*
+* CALLS
+* It is unsupported.
+*
+* PARAMETERS
+* handle
+* buff
+* buf_len
+* options
+*
+* RETURNS
+* STATUS_UNSUPPORTED: command unsupported
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_STATUS DclSTS_ReadData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN *buf_len, DCL_OPTIONS options);
+/*************************************************************************
+* FUNCTION
+* DclSTS_RegisterCallback
+*
+* DESCRIPTION
+* This function is to register SW TS call back funciton.
+* Execute call back function when we push ts data into ts ring buffer.
+*
+* CALLS
+* It is called to register SW TS call back funciton.
+*
+* PARAMETERS
+* event - a valid event indicate register which event's call back funciton
+* 1. DCL_EVENT_STS_PUSH_BUFF
+*
+* callback - a call back funciton
+*
+* RETURNS
+* STATUS_OK: command is executed successfully.
+* STATUS_FAIL: command is failed.
+* STATUS_INVALID_CMD: It's a invalid command.
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_STATUS DclSTS_RegisterCallback(DCL_HANDLE handle, DCL_EVENT event, PFN_DCL_CALLBACK callback);
+/*************************************************************************
+* FUNCTION
+* DclSTS_Close
+*
+* DESCRIPTION
+* This function is to close the SW TS module.
+*
+* CALLS
+* It is called to close SW TS module
+*
+* PARAMETERS
+* None
+*
+* RETURNS
+* DCL_STATUS_OK
+* STATUS_INVALID_ARGUMENT: invalid arguments
+*
+* GLOBALS AFFECTED
+* external_global
+*************************************************************************/
+extern DCL_STATUS DclSTS_Close(DCL_HANDLE handle);
+
+
+#endif // #ifndef __DCL_TS_H_PROTOTYPE__
+#endif // #ifdef DCL_DEFINITION_PROTOTYPE