diff options
Diffstat (limited to 'drivers/gpio/gpio-tegra.c')
| -rw-r--r-- | drivers/gpio/gpio-tegra.c | 23 | 
1 files changed, 16 insertions, 7 deletions
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c index 75cf91138b6..61044c889f7 100644 --- a/drivers/gpio/gpio-tegra.c +++ b/drivers/gpio/gpio-tegra.c @@ -28,6 +28,7 @@  #include <asm/mach/irq.h> +#include <mach/gpio-tegra.h>  #include <mach/iomap.h>  #include <mach/suspend.h> @@ -136,7 +137,10 @@ static int tegra_gpio_direction_output(struct gpio_chip *chip, unsigned offset,  	return 0;  } - +static int tegra_gpio_to_irq(struct gpio_chip *chip, unsigned offset) +{ +	return TEGRA_GPIO_TO_IRQ(offset); +}  static struct gpio_chip tegra_gpio_chip = {  	.label			= "tegra-gpio", @@ -144,6 +148,7 @@ static struct gpio_chip tegra_gpio_chip = {  	.get			= tegra_gpio_get,  	.direction_output	= tegra_gpio_direction_output,  	.set			= tegra_gpio_set, +	.to_irq			= tegra_gpio_to_irq,  	.base			= 0,  	.ngpio			= TEGRA_NR_GPIOS,  }; @@ -334,6 +339,7 @@ static int __devinit tegra_gpio_probe(struct platform_device *pdev)  {  	struct resource *res;  	struct tegra_gpio_bank *bank; +	int gpio;  	int i;  	int j; @@ -381,14 +387,17 @@ static int __devinit tegra_gpio_probe(struct platform_device *pdev)  	gpiochip_add(&tegra_gpio_chip); -	for (i = INT_GPIO_BASE; i < (INT_GPIO_BASE + TEGRA_NR_GPIOS); i++) { -		bank = &tegra_gpio_banks[GPIO_BANK(irq_to_gpio(i))]; +	for (gpio = 0; gpio < TEGRA_NR_GPIOS; gpio++) { +		int irq = TEGRA_GPIO_TO_IRQ(gpio); +		/* No validity check; all Tegra GPIOs are valid IRQs */ + +		bank = &tegra_gpio_banks[GPIO_BANK(gpio)]; -		irq_set_lockdep_class(i, &gpio_lock_class); -		irq_set_chip_data(i, bank); -		irq_set_chip_and_handler(i, &tegra_gpio_irq_chip, +		irq_set_lockdep_class(irq, &gpio_lock_class); +		irq_set_chip_data(irq, bank); +		irq_set_chip_and_handler(irq, &tegra_gpio_irq_chip,  					 handle_simple_irq); -		set_irq_flags(i, IRQF_VALID); +		set_irq_flags(irq, IRQF_VALID);  	}  	for (i = 0; i < ARRAY_SIZE(tegra_gpio_banks); i++) {  |