mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-04-21 21:53:57 +00:00
ARM: OMAP: fix the ads7846 init code
In case a board provides the gpio_pendown and not board_pdata, the GPIO debounce is not taken care of. Fix this by taking care of GPIO debounce in any case. Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
485802a6c5
commit
97ee9f01d6
1 changed files with 12 additions and 10 deletions
|
@ -63,17 +63,14 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce,
|
||||||
struct spi_board_info *spi_bi = &ads7846_spi_board_info;
|
struct spi_board_info *spi_bi = &ads7846_spi_board_info;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (board_pdata && board_pdata->get_pendown_state) {
|
|
||||||
err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown");
|
err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown");
|
||||||
if (err) {
|
if (err) {
|
||||||
pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err);
|
pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gpio_export(gpio_pendown, 0);
|
|
||||||
|
|
||||||
if (gpio_debounce)
|
if (gpio_debounce)
|
||||||
gpio_set_debounce(gpio_pendown, gpio_debounce);
|
gpio_set_debounce(gpio_pendown, gpio_debounce);
|
||||||
}
|
|
||||||
|
|
||||||
spi_bi->bus_num = bus_num;
|
spi_bi->bus_num = bus_num;
|
||||||
spi_bi->irq = gpio_to_irq(gpio_pendown);
|
spi_bi->irq = gpio_to_irq(gpio_pendown);
|
||||||
|
@ -81,10 +78,15 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce,
|
||||||
if (board_pdata) {
|
if (board_pdata) {
|
||||||
board_pdata->gpio_pendown = gpio_pendown;
|
board_pdata->gpio_pendown = gpio_pendown;
|
||||||
spi_bi->platform_data = board_pdata;
|
spi_bi->platform_data = board_pdata;
|
||||||
|
if (board_pdata->get_pendown_state)
|
||||||
|
gpio_export(gpio_pendown, 0);
|
||||||
} else {
|
} else {
|
||||||
ads7846_config.gpio_pendown = gpio_pendown;
|
ads7846_config.gpio_pendown = gpio_pendown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!board_pdata || (board_pdata && !board_pdata->get_pendown_state))
|
||||||
|
gpio_free(gpio_pendown);
|
||||||
|
|
||||||
spi_register_board_info(&ads7846_spi_board_info, 1);
|
spi_register_board_info(&ads7846_spi_board_info, 1);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Add table
Reference in a new issue