于 2012年06月13日 15:51, Igor Grinberg 写道:
On 06/13/12 04:44, Zumeng Chen wrote:
From: Zumeng Chen<zumeng.chen@xxxxxxxxxxxxx>
If we don't set proper debouce time for ads7846, then there are
flooded interrupt counters of ads7846 responding to one time
touch on screen, so the driver couldn't work well.
And since most OMAP3 series boards pass NULL pointer of board_pdata
to omap_ads7846_init, so it's more proper to set it in driver level
after having gpio_request done.
This patch has been validated on 3530evm.
Signed-off-by: Zumeng Chen<zumeng.chen@xxxxxxxxxxxxx>
Signed-off-by: Syed Mohammed Khasim<khasim@xxxxxx>
---
drivers/input/touchscreen/ads7846.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index f02028e..459ff29 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -980,6 +980,10 @@ static int __devinit ads7846_setup_pendown(struct spi_device *spi, struct ads784
}
ts->gpio_pendown = pdata->gpio_pendown;
+#ifdef CONFIG_ARCH_OMAP3
+ /* 310 means about 10 microsecond for omap3 */
+ gpio_set_debounce(pdata->gpio_pendown, 310);
+#endif
Unless this concerns many boards/archs/platforms,
Yes, this is the case.
I'd suggest you to implement
the get_pendown_state() method in the board file.
it seems they are different way between gpio and
get_pendown_state, and gpio way is used for omap3
to drive ads7846, so I guess we may have to do like this.
Regards,
Zumeng
If more users will need this, it can be facilitated in the driver.
(and of course not with the ugly ifdefs...)
} else {
dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n");
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html