Input: ti_am335x_tsc - remove udelay in interrupt handler
authorBrad Griffis <bgriffis@ti.com>
Tue, 3 Feb 2015 19:44:12 +0000 (11:44 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 3 Feb 2015 19:50:38 +0000 (11:50 -0800)
commit344d635b9a41b19837ccf8083a99ea688027019c
treef1b09497f07b3d825a66ba14f793d41605eedfdd
parent3a59684ccc5d529e7e9ce8b068889dbaa4c34e9b
Input: ti_am335x_tsc - remove udelay in interrupt handler

TSC interrupt handler had udelay to avoid reporting of false pen-up
interrupt to user space. This patch implements workaround suggesting in
Advisory 1.0.31 of silicon errata for am335x, thus eliminating udelay and
touchscreen lag. This also improves performance of touchscreen and
eliminates sudden jump of cursor at touch release.

IDLECONFIG and CHARGECONFIG registers are to be configured with same values
in order to eliminate false pen-up events. This workaround may result in
false pen-down to be detected, hence considerable charge step delay needs
to be added. The charge delay is set to 0xB000 (in terms of ADC clock
cycles) by default.

TSC steps are disabled at the end of every sampling cycle and EOS bit is
set. Once the EOS bit is set, the TSC steps need to be re-enabled to begin
next sampling cycle.

Signed-off-by: Brad Griffis <bgriffis@ti.com>
[vigneshr@ti.com: Ported the patch from v3.12 to v3.19rc1]
Signed-off-by: Vignesh R <vigneshr@ti.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/ti_am335x_tsc.c
include/linux/mfd/ti_am335x_tscadc.h