Commit c4f49254 authored by Igor Grinberg's avatar Igor Grinberg Committed by Dmitry Torokhov

Input: ads7846 - enable pendown GPIO debounce time setting

Some platforms need the pendown GPIO debounce time setting programmed.
Since the pendown GPIO is handled by the driver, the debounce time
should also be handled along with the pendown GPIO request.
Signed-off-by: default avatarIgor Grinberg <grinberg@compulab.co.il>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent c91cb7a7
...@@ -955,7 +955,8 @@ static int ads7846_resume(struct device *dev) ...@@ -955,7 +955,8 @@ static int ads7846_resume(struct device *dev)
static SIMPLE_DEV_PM_OPS(ads7846_pm, ads7846_suspend, ads7846_resume); static SIMPLE_DEV_PM_OPS(ads7846_pm, ads7846_suspend, ads7846_resume);
static int __devinit ads7846_setup_pendown(struct spi_device *spi, struct ads7846 *ts) static int __devinit ads7846_setup_pendown(struct spi_device *spi,
struct ads7846 *ts)
{ {
struct ads7846_platform_data *pdata = spi->dev.platform_data; struct ads7846_platform_data *pdata = spi->dev.platform_data;
int err; int err;
...@@ -981,6 +982,9 @@ static int __devinit ads7846_setup_pendown(struct spi_device *spi, struct ads784 ...@@ -981,6 +982,9 @@ static int __devinit ads7846_setup_pendown(struct spi_device *spi, struct ads784
ts->gpio_pendown = pdata->gpio_pendown; ts->gpio_pendown = pdata->gpio_pendown;
if (pdata->gpio_pendown_debounce)
gpio_set_debounce(pdata->gpio_pendown,
pdata->gpio_pendown_debounce);
} else { } else {
dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n"); dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n");
return -EINVAL; return -EINVAL;
......
...@@ -46,8 +46,9 @@ struct ads7846_platform_data { ...@@ -46,8 +46,9 @@ struct ads7846_platform_data {
u16 debounce_rep; /* additional consecutive good readings u16 debounce_rep; /* additional consecutive good readings
* required after the first two */ * required after the first two */
int gpio_pendown; /* the GPIO used to decide the pendown int gpio_pendown; /* the GPIO used to decide the pendown
* state if get_pendown_state == NULL * state if get_pendown_state == NULL */
*/ int gpio_pendown_debounce; /* platform specific debounce time for
* the gpio_pendown */
int (*get_pendown_state)(void); int (*get_pendown_state)(void);
int (*filter_init) (const struct ads7846_platform_data *pdata, int (*filter_init) (const struct ads7846_platform_data *pdata,
void **filter_data); void **filter_data);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment