From cce0b0d36222bb91c9d55b3bb53e6b8832183560 Mon Sep 17 00:00:00 2001 From: Avinash A Date: Mon, 26 Sep 2011 19:47:27 +0530 Subject: input: ts-cypress proper timing for each mode change The time interval for the cypress controller in deep sleep state after the last communication should be Tdelay > 2*Trefresh. Trefresh is 14.3ms ST-Ericsson ID: 359690, 357430 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I86aedb29157ea8a2e3d685747b02f8c596945cdf Signed-off-by: Avinash A Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31993 Reviewed-by: Avinash A Tested-by: Avinash A Reviewed-by: Rabin VINCENT --- drivers/input/touchscreen/cyttsp_core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c index 076417439ab..7a2aa109034 100755 --- a/drivers/input/touchscreen/cyttsp_core.c +++ b/drivers/input/touchscreen/cyttsp_core.c @@ -150,6 +150,7 @@ #define CY_DELAY_DFLT 20 /* ms */ #define CY_DELAY_MAX (500/CY_DELAY_DFLT) /* half second */ #define CY_DELAY_SYSINFO 20 /* ms */ +#define CY_MODE_CHANGE_DELAY 30 /* ms */ #define CY_DELAY_BL 300 #define CY_DELAY_DNLOAD 100 /* ms */ #define CY_HNDSHK_BIT 0x80 @@ -1698,6 +1699,7 @@ static int cyttsp_suspend(struct cyttsp *ts) CY_REG_BASE, sizeof(sleep_mode), &sleep_mode); if (!(retval < 0)) ts->platform_data->power_state = CY_SLEEP_STATE; + msleep(CY_MODE_CHANGE_DELAY); } DBG(printk(KERN_INFO"%s: Sleep Power state is %s\n", __func__, (ts->platform_data->power_state == CY_ACTIVE_STATE) ? -- cgit v1.2.3