* [PATCH] favr32: improve touchscreen response
@ 2009-04-20 2:36 Ben Nizette
2009-04-20 3:13 ` Ben Nizette
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Ben Nizette @ 2009-04-20 2:36 UTC (permalink / raw)
To: haavard.skinnemoen; +Cc: kernel, Egtvedt, Hans-Christian, linux-kernel
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>
---
arch/avr32/boards/favr-32/setup.c | 4 ++++
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 58203d1..f1152fa 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,
/* The ads7843 pendown irq is just connected to regular
* gpio and therefore can only trigger interrupts on
--
1.6.0.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] favr32: improve touchscreen response
2009-04-20 2:36 [PATCH] favr32: improve touchscreen response Ben Nizette
@ 2009-04-20 3:13 ` Ben Nizette
2009-04-20 5:54 ` Hans-Christian Egtvedt
2009-06-26 7:49 ` Ben Nizette
2 siblings, 0 replies; 6+ messages in thread
From: Ben Nizette @ 2009-04-20 3:13 UTC (permalink / raw)
To: haavard.skinnemoen; +Cc: kernel, Egtvedt, Hans-Christian, linux-kernel
On Mon, 2009-04-20 at 12:36 +1000, Ben Nizette wrote:
> + .keep_vref_on = true,
> + .settle_delay_usecs = 500,
> + .penirq_recheck_delay_usecs = 100,
>
> /* The ads7843 pendown irq is just connected to regular
> * gpio and therefore can only trigger interrupts on
Whoops, looks like this applies on top of
[PATCH] ads7846: Allow both-edge interrupt mode
Sorry. Let us know if you want me to rebase :-)
--Ben.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] favr32: improve touchscreen response
2009-04-20 2:36 [PATCH] favr32: improve touchscreen response Ben Nizette
2009-04-20 3:13 ` Ben Nizette
@ 2009-04-20 5:54 ` Hans-Christian Egtvedt
2009-06-26 7:49 ` Ben Nizette
2 siblings, 0 replies; 6+ messages in thread
From: Hans-Christian Egtvedt @ 2009-04-20 5:54 UTC (permalink / raw)
To: Ben Nizette; +Cc: haavard.skinnemoen, kernel, linux-kernel
On Mon, 20 Apr 2009 12:36:53 +1000
Ben Nizette <ben@niasdigital.com> wrote:
> 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>
>
Acked-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
> ---
> arch/avr32/boards/favr-32/setup.c | 4 ++++
> 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 58203d1..f1152fa 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,
>
> /* The ads7843 pendown irq is just connected to regular
> * gpio and therefore can only trigger interrupts on
--
Best regards,
Hans-Christian Egtvedt
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] favr32: improve touchscreen response
2009-04-20 2:36 [PATCH] favr32: improve touchscreen response Ben Nizette
2009-04-20 3:13 ` Ben Nizette
2009-04-20 5:54 ` Hans-Christian Egtvedt
@ 2009-06-26 7:49 ` Ben Nizette
2009-07-27 11:17 ` Haavard Skinnemoen
2 siblings, 1 reply; 6+ messages in thread
From: Ben Nizette @ 2009-06-26 7:49 UTC (permalink / raw)
To: haavard.skinnemoen; +Cc: kernel, Egtvedt, Hans-Christian, linux-kernel
Hi Haavard,
This has hce's ack, any chance of getting it in .31?
Thx,
--Ben.
On Mon, 2009-04-20 at 12:36 +1000, Ben Nizette wrote:
> 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>
>
> ---
> arch/avr32/boards/favr-32/setup.c | 4 ++++
> 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 58203d1..f1152fa 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,
> };
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] favr32: improve touchscreen response
2009-06-26 7:49 ` Ben Nizette
@ 2009-07-27 11:17 ` Haavard Skinnemoen
2009-07-29 21:39 ` Ben Nizette
0 siblings, 1 reply; 6+ messages in thread
From: Haavard Skinnemoen @ 2009-07-27 11:17 UTC (permalink / raw)
To: Ben Nizette; +Cc: kernel, Egtvedt, Hans-Christian, linux-kernel
Ben Nizette wrote:
> Hi Haavard,
>
> This has hce's ack, any chance of getting it in .31?
Yeah, should be a good chance :-) Sorry for taking so long.
It doesn't apply, however. I ended up doing this:
diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c
index 46c9b0a..75f19f4 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[] = {
It appears to compile, but please verify that it's still correct.
Haavard
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] favr32: improve touchscreen response
2009-07-27 11:17 ` Haavard Skinnemoen
@ 2009-07-29 21:39 ` Ben Nizette
0 siblings, 0 replies; 6+ messages in thread
From: Ben Nizette @ 2009-07-29 21:39 UTC (permalink / raw)
To: Haavard Skinnemoen; +Cc: kernel, Egtvedt, Hans-Christian, linux-kernel
On Mon, 2009-07-27 at 13:17 +0200, Haavard Skinnemoen wrote:
> Ben Nizette wrote:
> > Hi Haavard,
> >
> > This has hce's ack, any chance of getting it in .31?
>
> Yeah, should be a good chance :-) Sorry for taking so long.
>
> It doesn't apply, however. I ended up doing this:
>
> diff --git a/arch/avr32/boards/favr-32/setup.c b/arch/avr32/boards/favr-32/setup.c
> index 46c9b0a..75f19f4 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[] = {
>
> It appears to compile, but please verify that it's still correct.
Looks good, thanks!
Tested-by: Ben Nizette <bn@niasdigital.com>
>
> Haavard
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-07-29 21:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-20 2:36 [PATCH] favr32: improve touchscreen response Ben Nizette
2009-04-20 3:13 ` Ben Nizette
2009-04-20 5:54 ` Hans-Christian Egtvedt
2009-06-26 7:49 ` Ben Nizette
2009-07-27 11:17 ` Haavard Skinnemoen
2009-07-29 21:39 ` Ben Nizette
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox