mms144: switched to mms100_reset & added touch angle support

using mms100_reset instead of mms_pwr_on_reset in mms100_ISC_download_mbinary function may fixes unexpected touchscreen freezes.

Change-Id: I1a7de26ac33f3f0a8d004c5e33a697e441f1ea76
This commit is contained in:
prototype74 2020-01-28 21:35:37 +01:00 committed by Francescodario Cuzzocrea
parent fcb0a38cdd
commit 7963429299
2 changed files with 13 additions and 5 deletions

View File

@ -59,6 +59,8 @@
#define MAX_FINGERS 10
#define MAX_WIDTH 30
#define MAX_PRESSURE 255
#define MAX_ANGLE 90
#define MIN_ANGLE -90
/* Registers */
#define MMS_MODE_CONTROL 0x01
@ -847,6 +849,7 @@ static irqreturn_t mms_ts_interrupt(int irq, void *dev_id)
#endif
input_report_abs(info->input_dev, ABS_MT_TOUCH_MAJOR, tmp[6]);
input_report_abs(info->input_dev, ABS_MT_TOUCH_MINOR, tmp[7]);
input_report_abs(info->input_dev, ABS_MT_ANGLE, angle);
input_report_abs(info->input_dev, ABS_MT_PALM, palm);
#if defined(SEC_TSP_DEBUG)
if (info->finger_state[id] == 0) {
@ -1393,7 +1396,7 @@ int mms100_ISC_download_mbinary(struct mms_ts_info *info)
pr_info("[TSP ISC] %s\n", __func__);
mms_pwr_on_reset(info);
mms100_reset(info);
/*
ret_msg = mms100_check_operating_mode(_client, EC_BOOT_ON_SUCCEEDED);
if (ret_msg != ISC_SUCCESS)
@ -3351,7 +3354,7 @@ int __devinit mms_ts_probe(struct i2c_client *client,
if (!pdata)
return -EINVAL;
melfas_request_gpio(pdata);
#endif
info = kzalloc(sizeof(struct mms_ts_info), GFP_KERNEL);
if (!info) {
@ -3391,11 +3394,10 @@ int __devinit mms_ts_probe(struct i2c_client *client,
info->max_x = 720;
info->max_y = 1280;
}
i2c_set_clientdata(client, info);
melfas_vdd_on(info, 1);
msleep(100);
melfas_request_gpio(pdata);
i2c_set_clientdata(client, info);
info->callbacks.inform_charger = melfas_ta_cb;
if (info->register_cb)
@ -3421,6 +3423,8 @@ int __devinit mms_ts_probe(struct i2c_client *client,
0, MAX_PRESSURE, 0, 0);
input_set_abs_params(info->input_dev, ABS_MT_TOUCH_MINOR,
0, MAX_PRESSURE, 0, 0);
input_set_abs_params(input_dev, ABS_MT_ANGLE,
MIN_ANGLE, MAX_ANGLE, 0, 0);
input_set_abs_params(input_dev, ABS_MT_PALM,
0, 1, 0, 0);
input_set_drvdata(input_dev, info);

View File

@ -899,6 +899,10 @@ struct input_keymap_entry {
#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */
#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */
#ifdef CONFIG_TOUCHSCREEN_MMS144
#define ABS_MT_ANGLE 0x3c /* touch angle */
#endif
#ifdef CONFIG_INPUT_EXPANDED_ABS
#define ABS_MT_PALM 0x40 /* palm touch */
#define ABS_MT_GRIP 0x41 /* grip touch */