gpio: tegra: add tegra_is_gpio
aghuge [Tue, 4 Dec 2012 11:36:27 +0000 (16:36 +0530)]
Added tegra_is_gpio function to
return true if pin is configured as gpio

Bug 1172972

Signed-off-by: aghuge <aghuge@nvidia.com>
Reviewed-on: http://git-master/r/168285
(cherry picked from commit 312fc9fc203f77c2521a24991608511be0465695)

Change-Id: Ieac0af9a6ee000cbeb73e714395169799ae18e3b
Signed-off-by: aghuge <aghuge@nvidia.com>
Reviewed-on: http://git-master/r/172625
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Venkat Moganty <vmoganty@nvidia.com>
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>

arch/arm/mach-tegra/include/mach/gpio-tegra.h
drivers/gpio/gpio-tegra.c

index b567d91..953ec31 100644 (file)
@@ -44,5 +44,6 @@ void tegra_gpio_init_configure(unsigned gpio, bool is_input, int value);
 void tegra_gpio_set_tristate(int gpio, enum tegra_tristate ts);
 int tegra_gpio_get_bank_int_nr(int gpio);
 int tegra_gpio_resume_init(void);
+int tegra_is_gpio(int);
 
 #endif
index 5c3d55e..d226654 100644 (file)
@@ -145,6 +145,17 @@ static void tegra_gpio_enable(int gpio)
        tegra_gpio_mask_write(GPIO_MSK_CNF(gpio), gpio, 1);
 }
 
+int tegra_is_gpio(int gpio)
+{
+       if (gpio >= TEGRA_NR_GPIOS) {
+               pr_warn("%s : Invalid gpio ID - %d\n", __func__, gpio);
+               return 0;
+       }
+       return (tegra_gpio_readl(GPIO_CNF(gpio)) >> GPIO_BIT(gpio)) & 0x1;
+}
+EXPORT_SYMBOL(tegra_is_gpio);
+
+
 static void tegra_gpio_disable(int gpio)
 {
        if (gpio >= TEGRA_NR_GPIOS) {