Skip to content

Commit

Permalink
ARM: tegra: add tegra_gpio_table and tegra_gpio_config
Browse files Browse the repository at this point in the history
To give one place to setup the pins that are used as GPIOs instead
of as their pinmuxed functions. Specifying enabled as false explicitly
disables the gpio mode of that pin (if left on by firmware).

This should remove the need for calling these from specific drivers and
thus reduce tegra-specific code from them.

Signed-off-by: Olof Johansson <olof@lixom.net>
Acked-by: Erik Gilling <konkers@android.com>
  • Loading branch information
Olof Johansson committed Feb 23, 2011
1 parent 3837686 commit 632095e
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
14 changes: 14 additions & 0 deletions arch/arm/mach-tegra/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,20 @@ static int __init tegra_gpio_init(void)

postcore_initcall(tegra_gpio_init);

void __init tegra_gpio_config(struct tegra_gpio_table *table, int num)
{
int i;

for (i = 0; i < num; i++) {
int gpio = table[i].gpio;

if (table[i].enable)
tegra_gpio_enable(gpio);
else
tegra_gpio_disable(gpio);
}
}

#ifdef CONFIG_DEBUG_FS

#include <linux/debugfs.h>
Expand Down
7 changes: 7 additions & 0 deletions arch/arm/mach-tegra/include/mach/gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#ifndef __MACH_TEGRA_GPIO_H
#define __MACH_TEGRA_GPIO_H

#include <linux/init.h>
#include <mach/irqs.h>

#define TEGRA_NR_GPIOS INT_GPIO_NR
Expand Down Expand Up @@ -47,6 +48,12 @@ static inline int irq_to_gpio(unsigned int irq)
return -EINVAL;
}

struct tegra_gpio_table {
int gpio; /* GPIO number */
bool enable; /* Enable for GPIO at init? */
};

void tegra_gpio_config(struct tegra_gpio_table *table, int num);
void tegra_gpio_enable(int gpio);
void tegra_gpio_disable(int gpio);

Expand Down

0 comments on commit 632095e

Please sign in to comment.