Commit e68273ba authored by Igor Grinberg's avatar Igor Grinberg Committed by Tony Lindgren

arm: omap2plus: fix ads7846 pendown gpio request

introduced by: 96974a24
(omap: consolidate touch screen initialization among different boards)

ads7846 driver can use either gpio_pendown or get_pendown_state()
callback. In case of gpio_pendown, it requests the provided gpio_pendown
thus resulting in double requesting that gpio:

ads7846 spi1.0: failed to request pendown GPIO57
ads7846: probe of spi1.0 failed with error -16

Fix this by restricting the gpio request to the case of
get_pendown_state() callback is used.
Signed-off-by: default avatarIgor Grinberg <grinberg@compulab.co.il>
Tested-by: default avatarThomas Weber <weber@corscience.de>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 03b562d7
...@@ -85,17 +85,17 @@ void __init omap_ads7846_init(int bus_num, int gpio_pendown, int gpio_debounce, ...@@ -85,17 +85,17 @@ 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;
err = gpio_request(gpio_pendown, "TS PenDown"); if (board_pdata && board_pdata->get_pendown_state) {
if (err) { err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown");
pr_err("Could not obtain gpio for TS PenDown: %d\n", err); if (err) {
return; pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err);
} return;
}
gpio_direction_input(gpio_pendown); gpio_export(gpio_pendown, 0);
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);
}
ads7846_config.gpio_pendown = gpio_pendown; ads7846_config.gpio_pendown = gpio_pendown;
......
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