mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 05:39:54 -04:00
focaltech_v2_mmi: disable focaltech driver drm notify
- disable focaltech driver drm nofity, use touchscreen mmi drm notify - reduce tp reset time, if tp is invalid, retry - add pintrl function for touchscreen mmi, to reset touch ic Change-Id: I2a9c6fdb806905d2e55cee6aa1908941c1c4242f Signed-off-by: wangyq13 <wangyq13@lenovo.com> Reviewed-on: https://gerrit.mot.com/2003119 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: litong <litong20@motorola.com> Reviewed-by: Jun Weng <wengjun1@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com> Submit-Approved: Jira Key
This commit is contained in:
parent
1125771201
commit
f67f735d4e
2 changed files with 39 additions and 6 deletions
|
|
@ -61,7 +61,7 @@ extern void fts_mmi_dev_unregister(struct fts_ts_data *ts_data);
|
|||
* Private constant and macro definitions using #define
|
||||
*****************************************************************************/
|
||||
#define FTS_DRIVER_NAME "fts_ts"
|
||||
#define INTERVAL_READ_REG 200 /* unit:ms */
|
||||
#define INTERVAL_READ_REG 50 /* unit:ms */
|
||||
#define TIMEOUT_READ_REG 1000 /* unit:ms */
|
||||
#if FTS_POWER_SOURCE_CUST_EN
|
||||
#define FTS_VTG_MIN_UV 3000000
|
||||
|
|
@ -79,8 +79,10 @@ struct fts_ts_data *fts_data;
|
|||
/*****************************************************************************
|
||||
* Static function prototypes
|
||||
*****************************************************************************/
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
static int fts_ts_suspend(struct device *dev);
|
||||
static int fts_ts_resume(struct device *dev);
|
||||
#endif
|
||||
|
||||
/*****************************************************************************
|
||||
* Name: fts_wait_tp_to_valid
|
||||
|
|
@ -1297,6 +1299,7 @@ static int fts_power_source_exit(struct fts_ts_data *ts_data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
static int fts_power_source_suspend(struct fts_ts_data *ts_data)
|
||||
{
|
||||
int ret = 0;
|
||||
|
|
@ -1328,6 +1331,7 @@ static int fts_power_source_resume(struct fts_ts_data *ts_data)
|
|||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
#endif /* FTS_POWER_SOURCE_CUST_EN */
|
||||
|
||||
static int fts_gpio_configure(struct fts_ts_data *data)
|
||||
|
|
@ -1498,6 +1502,7 @@ static int fts_parse_dt(struct device *dev, struct fts_ts_platform_data *pdata)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
static void fts_resume_work(struct work_struct *work)
|
||||
{
|
||||
struct fts_ts_data *ts_data = container_of(work, struct fts_ts_data,
|
||||
|
|
@ -1690,6 +1695,7 @@ static void fts_ts_late_resume(struct early_suspend *handler)
|
|||
queue_work(fts_data->ts_workqueue, &fts_data->resume_work);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static int fts_ts_probe_entry(struct fts_ts_data *ts_data)
|
||||
{
|
||||
|
|
@ -1709,6 +1715,7 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data)
|
|||
if (ret)
|
||||
FTS_ERROR("device-tree parse fail");
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
#if defined(CONFIG_DRM)
|
||||
#if defined(CONFIG_DRM_PANEL)
|
||||
ret = drm_check_dt(ts_data->dev->of_node);
|
||||
|
|
@ -1716,6 +1723,7 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data)
|
|||
FTS_ERROR("parse drm-panel fail");
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
} else {
|
||||
if (ts_data->dev->platform_data) {
|
||||
|
|
@ -1769,7 +1777,7 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data)
|
|||
#endif
|
||||
|
||||
#if (!FTS_CHIP_IDC)
|
||||
fts_reset_proc(200);
|
||||
fts_reset_proc(150);
|
||||
#endif
|
||||
|
||||
ret = fts_get_ic_information(ts_data);
|
||||
|
|
@ -1831,15 +1839,18 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data)
|
|||
FTS_ERROR("init fw upgrade fail");
|
||||
}
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
if (ts_data->ts_workqueue) {
|
||||
INIT_WORK(&ts_data->resume_work, fts_resume_work);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PM) && FTS_PATCH_COMERR_PM
|
||||
init_completion(&ts_data->pm_completion);
|
||||
ts_data->pm_suspend = false;
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
#if defined(CONFIG_DRM)
|
||||
ts_data->fb_notif.notifier_call = drm_notifier_callback;
|
||||
#if defined(CONFIG_DRM_PANEL)
|
||||
|
|
@ -1866,6 +1877,7 @@ static int fts_ts_probe_entry(struct fts_ts_data *ts_data)
|
|||
ts_data->early_suspend.resume = fts_ts_late_resume;
|
||||
register_early_suspend(&ts_data->early_suspend);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
fts_mmi_dev_register(ts_data);
|
||||
|
|
@ -1936,6 +1948,7 @@ static int fts_ts_remove_entry(struct fts_ts_data *ts_data)
|
|||
if (ts_data->ts_workqueue)
|
||||
destroy_workqueue(ts_data->ts_workqueue);
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
#if defined(CONFIG_DRM)
|
||||
#if defined(CONFIG_DRM_PANEL)
|
||||
if (active_panel)
|
||||
|
|
@ -1949,6 +1962,7 @@ static int fts_ts_remove_entry(struct fts_ts_data *ts_data)
|
|||
FTS_ERROR("[FB]Error occurred while unregistering fb_notifier.");
|
||||
#elif defined(CONFIG_HAS_EARLYSUSPEND)
|
||||
unregister_early_suspend(&ts_data->early_suspend);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (gpio_is_valid(ts_data->pdata->reset_gpio))
|
||||
|
|
@ -1972,6 +1986,7 @@ static int fts_ts_remove_entry(struct fts_ts_data *ts_data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_INPUT_TOUCHSCREEN_MMI
|
||||
static int fts_ts_suspend(struct device *dev)
|
||||
{
|
||||
int ret = 0;
|
||||
|
|
@ -2061,7 +2076,7 @@ static int fts_ts_resume(struct device *dev)
|
|||
#if FTS_POWER_SOURCE_CUST_EN
|
||||
fts_power_source_resume(ts_data);
|
||||
#endif
|
||||
fts_reset_proc(200);
|
||||
fts_reset_proc(150);
|
||||
}
|
||||
|
||||
fts_wait_tp_to_valid();
|
||||
|
|
@ -2085,6 +2100,7 @@ static int fts_ts_resume(struct device *dev)
|
|||
FTS_FUNC_EXIT();
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_PM) && FTS_PATCH_COMERR_PM
|
||||
static int fts_pm_suspend(struct device *dev)
|
||||
|
|
|
|||
|
|
@ -173,6 +173,23 @@ static int fts_mmi_methods_reset(struct device *dev, int type)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int fts_mmi_methods_pinctrl(struct device *dev, int on)
|
||||
{
|
||||
struct fts_ts_data *ts_data;
|
||||
struct input_dev *input_dev;
|
||||
|
||||
GET_TS_DATA(dev);
|
||||
input_dev = ts_data->input_dev;
|
||||
|
||||
if (on == TS_MMI_PINCTL_ON) {
|
||||
mutex_lock(&input_dev->mutex);
|
||||
fts_reset_proc(150);
|
||||
mutex_unlock(&input_dev->mutex);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int fts_mmi_firmware_update(struct device *dev, char *fwname)
|
||||
{
|
||||
struct fts_ts_data *ts_data;
|
||||
|
|
@ -216,11 +233,9 @@ static int fts_mmi_panel_state(struct device *dev,
|
|||
switch (to) {
|
||||
case TS_MMI_PM_DEEPSLEEP:
|
||||
ret = fts_write_reg(FTS_REG_POWER_MODE, FTS_REG_POWER_MODE_SLEEP);
|
||||
ts_data->gesture_mode = false;
|
||||
if (ret < 0)
|
||||
FTS_ERROR("set TP to sleep mode fail, ret=%d", ret);
|
||||
|
||||
/* TP delay 50ms then lcd entery suspend*/
|
||||
mdelay(50);
|
||||
break;
|
||||
|
||||
case TS_MMI_PM_GESTURE:
|
||||
|
|
@ -229,6 +244,7 @@ static int fts_mmi_panel_state(struct device *dev,
|
|||
/* Enter into gesture mode(suspend) */
|
||||
#ifdef FOCALTECH_SENSOR_EN
|
||||
ts_data->wakeable = true;
|
||||
ts_data->gesture_mode = true;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
|
@ -362,6 +378,7 @@ static struct ts_mmi_methods fts_mmi_methods = {
|
|||
.get_poweron = fts_mmi_methods_get_poweron,
|
||||
/* SET methods */
|
||||
.reset = fts_mmi_methods_reset,
|
||||
.pinctrl = fts_mmi_methods_pinctrl,
|
||||
.drv_irq = fts_mmi_methods_drv_irq,
|
||||
#if FTS_POWER_SOURCE_CUST_EN
|
||||
.power = fts_mmi_methods_power,
|
||||
|
|
|
|||
Loading…
Reference in a new issue