Hi, This is input subsystem, add Dmitry and linux-input. On 06/11/12 17:00, Zumeng Chen wrote: > 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. What about other non-OMAP platforms? NULL pointer for board_pdata, only means that the default pdata is used. Please, see the common-board-devices.c file more closely. > > This patch has been validated on 3530evm. > > Signed-off-by: Zumeng Chen <zumeng.chen@xxxxxxxxx> > Signed-off-by: Syed Mohammed Khasim <khasim@xxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > drivers/input/touchscreen/ads7846.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c > index f02028e..a82a5fb 100644 > --- a/drivers/input/touchscreen/ads7846.c > +++ b/drivers/input/touchscreen/ads7846.c > @@ -61,6 +61,7 @@ > > /* this driver doesn't aim at the peak continuous sample rate */ > #define SAMPLE_BITS (8 /*cmd*/ + 16 /*sample*/ + 2 /* before, after */) > +#define DEBOUNCE_TIME 310 /* About 10 ms */ I think hard coding this value is wrong. Can't it be derived from the pdata->debounce_* fields? > > struct ts_event { > /* > @@ -980,6 +981,7 @@ static int __devinit ads7846_setup_pendown(struct spi_device *spi, struct ads784 > } > > ts->gpio_pendown = pdata->gpio_pendown; > + gpio_set_debounce(pdata->gpio_pendown, DEBOUNCE_TIME); > > } else { > dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); -- Regards, Igor. -- 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