summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Nizette <ben@niasdigital.com>2009-04-20 04:36:53 +0200
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>2009-07-27 13:16:45 +0200
commit92c548cd35d50df398f442b07021150094578460 (patch)
treed3aca9f63cf3069d5873b5cd7bd4f345f6892eaf
parentavr32/lib: fix unaligned memcpy where len < 4 (diff)
downloadlinux-92c548cd35d50df398f442b07021150094578460.tar.xz
linux-92c548cd35d50df398f442b07021150094578460.zip
favr32: improve touchscreen response
The ezLCD+101 board (to which an favr-32 is fitted) has a long, unshielded, nasty lead between the touch panel and the ads7843 touch controller. In order to get satisfactory response then, we need to employ every noise-reduction trick in the driver's arsenal. After extensive fiddling I've found some good settings: 1) We keep vref on all the time to dramatically reduce settling times (at the cost of a tiny increase in power consumption). 2) Despite 1 the settling time is still non-zero. 500uS is plenty of time for the signals to settle 3) Despite 1 and 2 there's still a little bit of noise around. By setting a pen recheck delay we make the panel feel less touchy and twitchy. Someone with more time and patience myself might be able to tune this numbers further but these settings are now perfectly acceptable for normal use. Tested on ezLCD+101 though should only improve response on other ezLCD+/ favr-32 boards too. Signed-off-by: Ben Nizette <bn@niasdigital.com> Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
-rw-r--r--arch/avr32/boards/favr-32/setup.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c
index 46c9b0a224cf..75f19f47fb2f 100644
--- a/arch/avr32/boards/favr-32/setup.c
+++ b/arch/avr32/boards/favr-32/setup.c
@@ -72,6 +72,10 @@ static struct ads7846_platform_data ads7843_data = {
.debounce_max = 20,
.debounce_rep = 4,
.debounce_tol = 5,
+
+ .keep_vref_on = true,
+ .settle_delay_usecs = 500,
+ .penirq_recheck_delay_usecs = 100,
};
static struct spi_board_info __initdata spi1_board_info[] = {