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:
parent
fcb0a38cdd
commit
7963429299
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue