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: Igor Grinberg <grinberg@compulab.co.il> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
c91cb7a75e
commit
c4f4925439
|
@ -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
|
||||||
|
|
||||||
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 {
|
||||||
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);
|
||||||
|
|
Loading…
Reference in a new issue