blob: ab84c4f1027cff109a60ef2955be581d77995f09 [file] [log] [blame]
#ifndef DCL_HTS_H_
#define DCL_HTS_H_
#include "dcl.h"
#define DCL_HTS_MAGIC_NUM 0x40000000
typedef DCL_UINT32 HTS_DEV;
typedef enum
{
TOUCH_PANEL_R=1
}HTS_DEV_T;
typedef DCL_UINT32 HTS_EVENT;
typedef enum
{
DCL_EVENT_HTS_PEN_DOWN=1,
DCL_EVENT_HTS_PEN_UP,
DCL_EVENT_HTS_MAX
}HTS_EVENT_T;
//touch panel driver command of hardware layer.
typedef DCL_UINT32 HTS_CMD;
typedef enum
{
HTS_CMD_GET_TP_ADC,
HTS_CMD_TS_READ_ADC,
HTS_CMD_GET_TP_LEVEL,
HTS_CMD_GET_TP_LEVEL_PRESSURE,
HTS_CMD_TP_UPDATENOTIFY,
HTS_CMD_GET_TP_PRESSURE,
HTS_CMD_TP_PRESSURE_VALUE,
HTS_CMD_SET_CONFIG,
HTS_CMD_GET_TP_POINT,
HTS_CMD_GET_TP_POINT_NUM,
HTS_CMD_GET_TP_TYPE,
HTS_CMD_SET_CALI_VALUE,
HTS_CMD_GET_CALI_VALUE,
HTS_CMD_SET_DEBOUNCE_TIME,
HTS_CMD_GET_DEBOUNCE_TIME,
HTS_CMD_SET_SPL_NUM,
HTS_CMD_GET_SPL_NUM
}HTS_CMD_T;
//HTS_CMD_SET_DEBOUNCE_TIME
typedef struct
{
DCL_UINT32 u4DebounceTime;
}HTS_CTRL_DT_T;
//HTS_CMD_TP_SET_PARAMETERS
typedef struct
{
DCL_UINT32 u4SampleResolution;
DCL_UINT32 u4ModeSelection;
} HTS_CTRL_CONFIG_T;
typedef enum {
//Not use the same values as ts_hw.h
//Otherwise it easy to cause bug if change ts_hw.h, but forget to change these
DCL_TS_CMD_DIFFERENTIAL,
DCL_TS_CMD_SINGLE_END,
DCL_TS_CMD_MODE_8BIT,
DCL_TS_CMD_MODE_10BIT,
DCL_TS_CMD_MODE_12BIT
} HTS_PARAMETER_T;
//HTS_CMD_TP_LEVEL,
typedef struct
{
DCL_BOOL fgIsUP;
DCL_UINT32 pressure_value;
} HTS_CTRL_TL_T;
//HTS_CMD_TP_READ_ADC
typedef struct
{
DCL_INT16 *pi2x;
DCL_INT16 *pi2y;
} HTS_CTRL_TPRA_T;
//HTS_CMD_TS_READ_ADC
typedef enum {
TS_COORD_HTS_ADDR_Y,
TS_COORD_HTS_ADDR_Z1,
TS_COORD_HTS_ADDR_Z2,
TS_COORD_HTS_ADDR_X
} TS_COORD_ENUM;
typedef struct
{
DCL_INT16 i2AdcValue;
TS_COORD_ENUM uCoord;
} HTS_CTRL_TSRA_T;
//HTS_CMD_TP_PRESSURE
typedef struct
{
DCL_BOOL fgIsPressed;
} HTS_CTRL_TPP_T;
//HTS_CMD_TP_PRESSURE_VALUE
typedef struct
{
DCL_INT32 fgPressureValue;
} HTS_CTRL_TPPV_T;
//HTS_CMD_READ_ADC
typedef struct
{
DCL_INT16 *pi2x;
DCL_INT16 *pi2y;
} HTS_CTRL_RA_T;
//HTS_CMD_ADC_TO_COORDINATE
typedef struct
{
DCL_BOOL fgValid;
DCL_INT16 *pi2x;
DCL_INT16 *pi2y;
} HTS_CTRL_ATC_T;
//HTS_CMD_GET_SPL_NUM
typedef struct
{
DCL_UINT32 u4SPLNum;
}HTS_CTRL_SN_T;
typedef union
{
HTS_CTRL_TL_T rTSCtrlTL;
HTS_CTRL_TPRA_T rTSCtrlTPRA;
HTS_CTRL_TSRA_T rTSCtrlTSRA;
HTS_CTRL_TPP_T rTSCtrlTPP;
HTS_CTRL_TPPV_T rTSCtrlTPPV;
HTS_CTRL_RA_T rTSCtrlRA;
HTS_CTRL_ATC_T rTSCtrlATC;
HTS_CTRL_CONFIG_T rTSCtrlConfig;
HTS_CTRL_DT_T rTSCtrlDebouncetime;
HTS_CTRL_SN_T rTSCtrlSPLNum;
}HTS_CTRL_DATA_T;
/*************************************************************************
* FUNCTION
* DclHTS_Close
*
* DESCRIPTION
* This function is to close the HW TS module.
*
* CALLS
* It is called to close HW TS module
*
* PARAMETERS
* None
*
* RETURNS
* DCL_STATUS_OK
* STATUS_INVALID_ARGUMENT: invalid arguments
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_Close(DCL_HANDLE handle);
/*************************************************************************
* FUNCTION
* DclHTS_Configure
*
* DESCRIPTION
* This function is to configure the HW TS module.
*
* CALLS
* It is called to configure of the HW TS module.
*
* PARAMETERS
* handle - a valid handle return by DclHTS_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 DclHTS_Configure(DCL_HANDLE handle, DCL_CONFIGURE_T *configure);
/*************************************************************************
* FUNCTION
* DclHTS_Control
*
* DESCRIPTION
* This function is to send command to control the TS module.
*
* CALLS
* It is called to send command to control the TS module.
*
* PARAMETERS
* handle - a valid handle return by DclHTS_Open()
* cmd - a control command for TS module
* 1. HTS_CMD_TP_LEVEL :to detect whether TP is touched or NOT
* 2. HTS_CMD_TP_UPDATE_NOTIFY :to set a event to TP task to indicate we are at UP state
* 3. HTS_CMD_TP_READ_ADC :to read x and y adc value from AUXADC HW. (with touch_panel_filter_thresold which avoid detect error)
* 4. HTS_CMD_TP_PRESSURE :to check is touch panel pressed.
* 5. HTS_CMD_TS_DRV_INIT :to initial HW driver and switch on work around funciton
* 6. HTS_CMD_READ_ADC :to read adc from touch panel module. (with Landscape support, compile option: __PORTRAIT_LCM_SIMULATE_LANDSCAPE_LCM__)
* 7. HTS_CMD_TS_READ_ADC :to read x or y adc value from AUXADC HW.
*
* data - a union of DCL_CTRL_DATA_T
* rTSCtrlTL; //HTS_CTRL_TL_T
* rTSCtrlTPRA; //HTS_CTRL_TPRA_T
* rTSCtrlTPP; //HTS_CTRL_TPP_T
* rTSCtrlRA; //HTS_CTRL_RA_T
* rTSCtrlTSRA //HTS_CMD_TS_READ_ADC
*
* 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 DclHTS_Control(DCL_HANDLE handle, HTS_CMD cmd, HTS_CTRL_DATA_T *data);
/*************************************************************************
* FUNCTION
* DclHTS_Initialize
*
* DESCRIPTION
* This function is to initialize HW TS module
*
* CALLS
* It is called to initialize HW TS module
*
* PARAMETERS
* None
*
* RETURNS
* DCL_STATUS_OK
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_Initialize(void);
/*************************************************************************
* FUNCTION
* DclHTS_Open
*
* DESCRIPTION
* This function is to open the TS HW module and return a handle
*
* CALLS
* It is called to open HW 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 DclHTS_Open(HTS_DEV dev, DCL_FLAGS flags);
/*************************************************************************
* FUNCTION
* DclHTS_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 DclHTS_ReadData(DCL_HANDLE handle, DCL_BUFF *buff, DCL_BUFF_LEN *buf_len, DCL_OPTIONS options);
/*************************************************************************
* FUNCTION
* DclHTS_RegisterCallback
*
* DESCRIPTION
* This function is to register HW TS call back funciton.
*
* CALLS
* It is called to register HW TS call back funciton.
*
* PARAMETERS
* event - a valid event indicate register which event's call back funciton
* 1. DCL_EVENT_HTS_PEN_DOWN,
* 2. DCL_EVENT_HTS_PEN_UP
* callback - a call back funciton
*
* RETURNS
* STATUS_OK: register is executed successfully.
* STATUS_FAIL: register is failed.
* STATUS_INVALID_CMD: It's a invalid command.
*
* GLOBALS AFFECTED
* external_global
*************************************************************************/
extern DCL_STATUS DclHTS_RegisterCallback(DCL_HANDLE handle, DCL_EVENT event, PFN_DCL_CALLBACK callback);
#endif