static VM_DRV_TP_BOOL ctp_goodix_gt9xx_get_data(
		vm_drv_tp_multiple_event_t *tpes) {
	VMUINT8 lvalue = 0;
	VMUINT32 model = 0;
	VMUINT8 buf_status;
	VM_DRV_TP_BOOL ret = VM_DRV_TP_TRUE;
	VMUINT8 rst_char = 0;

	tpes->time_stamp = (VMUINT16) vm_drv_tp_get_time_stamp();
	tpes->padding = VM_DRV_TP_PATTERN;

	CTP_I2C_read(CTP_TOUCH_INFO_REG_BASE, &lvalue, 1);

	model = (VMUINT32) (lvalue & CTP_STAT_NUMBER_TOUCH);
	buf_status = lvalue & 0xF0;

	//vm_log_info( "model:%d buf_status:%d", model,buf_status);

	if (model > 5) //goodix only support 5 fingers
			{
		ret = VM_DRV_TP_FALSE;
		goto exit_get_data;
	}

	tpes->model = (VMUINT16) model;  //read out all touch points coordinates.

	if (model == 0) {
		ret = VM_DRV_TP_FALSE;
		CTP_I2C_read(CTP_POINT_INFO_REG_BASE + 1, &lvalue, 1);
		goto exit_get_data;
	}

	if (model <= 10) {
		if ((buf_status & 0x80) != 0) {
			ctp_read_all_point(tpes, model);
		} else {
			goto exit_get_data;
		}
	} else {
		if (model == 0x0d) {
			//TODO: check this event
		} else if (model == 0x0e) {
			//TODO: check this event
		} else {
			//TODO: check this event
		}

		goto exit_get_data;
	}

	exit_get_data:

	CTP_I2C_send(CTP_TOUCH_INFO_REG_BASE, &rst_char, 1);

	return ret;

}
kal_bool ctp_cypress_cy8ctma340_get_data(TouchPanelMultipleEventStruct *tpes)
{
	kal_bool i2c_ret;
	kal_uint8 reg[2];
	kal_uint32 model = 0;

	ASSERT(tpes);
		
	tpes->time_stamp = (kal_uint16)L1I_GetTimeStamp();
	tpes->padding = CTP_PATTERN;
	
	i2c_ret = CTP_I2C_read(TT_MODE_ADDR, reg, 2);
	if(i2c_ret == KAL_FALSE)
	{
		ctp_cypress_cy8ctma340_toggle();
		return KAL_FALSE;
	}	
	if(reg[0] & TT_MODE_BUFFER_INVALID)
	{
		drv_trace0(TRACE_GROUP_10, CTP_CAPACITIVE_GET_DATA_INVALID);
		ctp_cypress_cy8ctma340_toggle();
		return KAL_FALSE;
	}

	model = (kal_uint32)(reg[1] & TT_STAT_NUMBER_TOUCH);
		
	drv_trace1(TRACE_GROUP_10, CTP_CAPACITIVE_MODEL, model);
	if(model > 4) //cypress only support 4 fingers
	{
		ctp_cypress_cy8ctma340_toggle();
		return KAL_FALSE;
	}

	tpes->model = (kal_uint16)model;  //read out all touch points coordinates.
	if(model == 0)
	{
		ctp_cypress_cy8ctma340_toggle();
		return KAL_FALSE;
	}

	ctp_read_all_point(tpes, model);
	ctp_cypress_cy8ctma340_toggle();
	return KAL_TRUE;
}