summaryrefslogtreecommitdiffstats
path: root/drivers/gpio
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-12-21 14:26:09 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-12-22 16:39:24 +0100
commita2bf8f66baadd17daa0aa89fea9c8868d909ef66 (patch)
tree49f435953b80d68f4de9c80f593e71f82535034e /drivers/gpio
parent8429aed80eeafc64a17e98f45cc93984d5938bb9 (diff)
downloadbarebox-a2bf8f66baadd17daa0aa89fea9c8868d909ef66.tar.gz
barebox-a2bf8f66baadd17daa0aa89fea9c8868d909ef66.tar.xz
gpiolib: add command to dump the current gpio status
This will allow to known which gpio is requested by what Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpio.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/gpio/gpio.c b/drivers/gpio/gpio.c
index ed9f9236eb..d37f5a0db9 100644
--- a/drivers/gpio/gpio.c
+++ b/drivers/gpio/gpio.c
@@ -1,4 +1,6 @@
#include <common.h>
+#include <command.h>
+#include <complete.h>
#include <gpio.h>
#include <errno.h>
#include <malloc.h>
@@ -198,3 +200,38 @@ int gpio_get_num(struct device_d *dev, int gpio)
return -ENODEV;
}
+
+#ifdef CONFIG_CMD_GPIO
+static int do_gpiolib(int argc, char *argv[])
+{
+ int i;
+
+ printf("gpiolib: gpio lists\n");
+ printf("%*crequested label\n", 11, ' ');
+
+ for (i = 0; i < ARCH_NR_GPIOS; i++) {
+ struct gpio_info *gi = &gpio_desc[i];
+
+ if (!gi->chip)
+ continue;
+
+ printf("gpio %*d: %*s %s\n", 4,
+ i, 9, gi->requested ? "true" : "false",
+ gi->label ? gi->label : "");
+ }
+
+ return 0;
+}
+
+BAREBOX_CMD_HELP_START(gpiolib)
+BAREBOX_CMD_HELP_USAGE("gpiolib\n")
+BAREBOX_CMD_HELP_SHORT("dump current registered gpio\n");
+BAREBOX_CMD_HELP_END
+
+BAREBOX_CMD_START(gpiolib)
+ .cmd = do_gpiolib,
+ .usage = "dump current registered gpio",
+ BAREBOX_CMD_HELP(cmd_gpiolib_help)
+ BAREBOX_CMD_COMPLETE(empty_complete)
+BAREBOX_CMD_END
+#endif