/****************************************************************************

  程序名称：汇顶触摸屏驱动程序
  程序版本：REV  0.1
  最后修改：20190604
  设计编写：王祥福
  
  版本修订：
    REV 0.1    20190604    王祥福         创建文档

****************************************************************************/
//---------------------------------------------------------------------------
//  重定义保护
#ifndef __HD_TOUCH_H__
#define __HD_TOUCH_H__

//---------------------------------------------------------------------------
//  定义相关宏
#define     	        ACK                	              0
#define     	        NACK            	              1

#define                 TouchHigh                         1
#define                 TouchLow                          0

#define                 TouchInput                        0
#define                 TouchOutput                       1

#define                 CommComplete                      0
#define                 CommError                         1

#define                 delay_100us                       80	
#define                 delay_15ms                        10000
#define                 delay_60ms                        40000

#define                 TCA9517_ADDR   		              0xBA
/* Registers define */
#define                 GTP_REG_COMMAND		              0x8040
#define                 GTP_REG_ESD_CHECK	              0x8041
#define                 GTP_REG_COMMAND_CHECK	          0x8046
#define                 GTP_REG_CONFIG_DATA	              0x8047
#define                 GTP_REG_VERSION	                  0x8140
#define                 GTP_REG_SENSOR_ID	              0x814C
#define                 GTP_REG_DOZE_BUF	              0x814D
#define                 GTP_READ_COOR_ADDR	              0x814E
#define                 GTP_READ_X_RESOLUTION             0x8149
#define                 GTP_READ_Y_RESOLUTION             0x814A
#define                 GTP_READ_POINT_1_TRACK_ID         0x814F

#define TP_POINTS        5                        //  定义支持的点的个数
#define TP_DAT_SIZE     (TP_POINTS*8 + 1)         //  一次读取和写入的字节数目

//---------------------------------------------------------------------------
//  定义相关数据类型
//  定义一个点的信息结构体
typedef struct 
{
	unsigned char id;                     //  触摸的ID
	unsigned char x_l;                    //  x坐标的低字节
	unsigned char x_h;                    //  x坐标的高字节
	unsigned char y_l;                    //  y坐标的低字节
	unsigned char y_h;                    //  y坐标的高字节
	unsigned char size_l;                 //  点的大小的低字节
	unsigned char size_h;                 //  点的大小的低字节
	unsigned char Reserved;               //  保留字节
}SHDPointInfo;

//  定义触摸信息结构体
typedef struct
{
	unsigned char tp_status;              //  触摸的状态
	SHDPointInfo point_info[TP_POINTS];   //  点的信息
}SHDTouchInfo;

//---------------------------------------------------------------------------
//  导出函数
//  触摸屏休眠
unsigned char bsp_touch_sleep(void);

//  触摸屏初始化
void bsp_Touch_Init(void);

//  汇顶的数据处理
void HD_Touch_Process(void);
void Touch_INT_Detect(void);


//---------------------------------------------------------------------------
#endif  //  __HD_TOUCH_H__
