Add "gpio status" command.
diff --git a/arch/arm/include/asm/arch-omap4/gpio.h b/arch/arm/include/asm/arch-omap4/gpio.h
index 26f19d1..48e24bc 100644
--- a/arch/arm/include/asm/arch-omap4/gpio.h
+++ b/arch/arm/include/asm/arch-omap4/gpio.h
@@ -47,4 +47,6 @@
#define OMAP44XX_GPIO5_BASE 0x4805B000
#define OMAP44XX_GPIO6_BASE 0x4805D000
+#define gpio_status() gpio_info()
+
#endif /* _GPIO_OMAP4_H */
diff --git a/drivers/gpio/omap_gpio.c b/drivers/gpio/omap_gpio.c
index fc89f2a..07358a1 100644
--- a/drivers/gpio/omap_gpio.c
+++ b/drivers/gpio/omap_gpio.c
@@ -139,6 +139,13 @@
__raw_writel(l, reg);
}
+int gpio_get_direction(unsigned gpio)
+{
+ if (check_gpio(gpio) < 0)
+ return -1;
+ return _get_gpio_direction(get_gpio_bank(gpio), get_gpio_index(gpio));
+}
+
/**
* Set value of the specified gpio
*/
@@ -241,3 +248,13 @@
{
return 0;
}
+
+void gpio_info(void)
+{
+ unsigned gpio;
+
+ for (gpio = 0; gpio < 192; gpio++)
+ printf("GPIO %3d: %s %s\n", gpio,
+ gpio_get_direction(gpio) == OMAP_GPIO_DIR_OUT ? "out" : "in ",
+ gpio_get_value(gpio) ? "hi" : "lo");
+}