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

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

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

index 9ebaea0..584b8eb 100644 (file)
@@ -36,5 +36,6 @@ struct gpio_init_pin_info {
 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_resume_init(void);
+int tegra_is_gpio(int);
 
 #endif
index 226d893..6c19af7 100644 (file)
@@ -129,6 +129,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)
 {
        tegra_gpio_mask_write(GPIO_MSK_CNF(gpio), gpio, 0);