diff options
author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2012-12-21 14:26:09 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-12-22 16:39:24 +0100 |
commit | a2bf8f66baadd17daa0aa89fea9c8868d909ef66 (patch) | |
tree | 49f435953b80d68f4de9c80f593e71f82535034e /drivers/gpio | |
parent | 8429aed80eeafc64a17e98f45cc93984d5938bb9 (diff) | |
download | barebox-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.c | 37 |
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 |