[PATCH V2 5/5] Input: ads7846: set proper debounce time in driver level

Marek Vasut marek.vasut at gmail.com
Sat Jun 16 09:27:22 EDT 2012


Dear Igor Grinberg,

> On 06/13/12 12:03, Zumeng Chen wrote:
> > 于 2012年06月13日 15:51, Igor Grinberg 写道:
> >> On 06/13/12 04:44, Zumeng Chen wrote:
> >>> From: Zumeng Chen<zumeng.chen at windriver.com>
> >>> 
> >>> 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 at windriver.com>
> >>> Signed-off-by: Syed Mohammed Khasim<khasim at ti.com>
> >>> ---
> >>> 
> >>>   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.
> 
> No, this is not (and does not have to be) OMAP wide.
> The decision for this is made on per-board basis.

+1 agreed

> > 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");

Best regards,
Marek Vasut



More information about the linux-arm-kernel mailing list