diff --git a/drivers/input/touchscreen/gt9xx/GT9271_Config_20170526.cfg b/drivers/input/touchscreen/gt9xx/GT9271_Config_20170526.cfg new file mode 100644 index 000000000000..a7ac38fe331e --- /dev/null +++ b/drivers/input/touchscreen/gt9xx/GT9271_Config_20170526.cfg @@ -0,0 +1 @@ +0x00,0x80,0x07,0xB0,0x04,0x0A,0x3C,0x00,0x01,0x0A,0x28,0x1F,0x55,0x32,0x03,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x1A,0x1E,0x14,0x90,0x2F,0xAA,0x1E,0x20,0x31,0x0D,0x00,0x00,0x00,0x22,0x03,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x2D,0x94,0xD5,0x02,0x08,0x00,0x00,0x04,0x9A,0x15,0x00,0x8C,0x19,0x00,0x80,0x1E,0x00,0x77,0x23,0x00,0x70,0x29,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x05,0x06,0x07,0x08,0x09,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x14,0x15,0x16,0x17,0x18,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x28,0x27,0x26,0x25,0x24,0x23,0x22,0x21,0x20,0x1F,0x1E,0x1C,0x1B,0x19,0x14,0x13,0x12,0x11,0x10,0x0F,0x0E,0x0D,0x0C,0x0A,0x08,0x07,0x06,0x04,0x02,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x01 \ No newline at end of file diff --git a/drivers/input/touchscreen/gt9xx/gt9xx.c b/drivers/input/touchscreen/gt9xx/gt9xx.c index 9d4fb0170c92..b2b77535d116 100644 --- a/drivers/input/touchscreen/gt9xx/gt9xx.c +++ b/drivers/input/touchscreen/gt9xx/gt9xx.c @@ -1402,7 +1402,7 @@ static s32 gtp_init_panel(struct goodix_ts_data *ts) s32 i = 0; u8 check_sum = 0; u8 opr_buf[16] = {0}; - u8 sensor_id = 0; + u8 sensor_id = 0; u8 cfg_info_group2[] = CTP_CFG_GROUP2; u8 cfg_info_group3[] = CTP_CFG_GROUP3; @@ -1421,8 +1421,13 @@ static s32 gtp_init_panel(struct goodix_ts_data *ts) GTP_INFO(" <%s>_%d \n", __func__, __LINE__); if(m89or101){ - send_cfg_buf[0] = gtp_dat_8_9; - cfg_info_len[0] = CFG_GROUP_LEN(gtp_dat_8_9); + if (ts->cfg_file_num) { + send_cfg_buf[0] = gtp_dat_8_9_1; + cfg_info_len[0] = CFG_GROUP_LEN(gtp_dat_8_9_1); + } else { + send_cfg_buf[0] = gtp_dat_8_9; + cfg_info_len[0] = CFG_GROUP_LEN(gtp_dat_8_9); + } } if (bgt911) { @@ -2645,6 +2650,11 @@ static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id return -EINVAL; } //ts->abs_y_max = val; + if (of_property_read_u32(np, "configfile-num", &val)) { + ts->cfg_file_num = 0; + } else { + ts->cfg_file_num = val; + } ts->pendown =PEN_RELEASE; ts->client = client; diff --git a/drivers/input/touchscreen/gt9xx/gt9xx.h b/drivers/input/touchscreen/gt9xx/gt9xx.h index d1463549a503..49561a7ff986 100644 --- a/drivers/input/touchscreen/gt9xx/gt9xx.h +++ b/drivers/input/touchscreen/gt9xx/gt9xx.h @@ -115,6 +115,7 @@ struct goodix_ts_data { u8 fixed_cfg; u8 fw_error; u8 pnl_init_error; + u8 cfg_file_num; //add struct tp_device by Sam struct tp_device tp; @@ -421,6 +422,10 @@ u8 gtp_dat_8_9[] = #include "WGJ10162B_GT9271_1060_Config_20140821_1341110X42.cfg" }; +u8 gtp_dat_8_9_1[] = { +#include "GT9271_Config_20170526.cfg" +}; + u8 gtp_dat_9_7[] = { /* <1536, 2048> 9.7 */ #include "GT9110P_Config_20160217_1526_2048_97.cfg"