Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97ee9f01 authored by Igor Grinberg's avatar Igor Grinberg Committed by Tony Lindgren
Browse files

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: default avatarIgor Grinberg <grinberg@compulab.co.il>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 485802a6
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -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;
	int err;

	if (board_pdata && board_pdata->get_pendown_state) {
	err = gpio_request_one(gpio_pendown, GPIOF_IN, "TSPenDown");
	if (err) {
		pr_err("Couldn't obtain gpio for TSPenDown: %d\n", err);
		return;
	}
		gpio_export(gpio_pendown, 0);

	if (gpio_debounce)
		gpio_set_debounce(gpio_pendown, gpio_debounce);
	}

	spi_bi->bus_num	= bus_num;
	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) {
		board_pdata->gpio_pendown = gpio_pendown;
		spi_bi->platform_data = board_pdata;
		if (board_pdata->get_pendown_state)
			gpio_export(gpio_pendown, 0);
	} else {
		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);
}
#else