From: Ziping Chen <techping.c...@gmail.com> Add command "led list" to list all led(s) can be operated.
Signed-off-by: Ziping Chen <techping.c...@gmail.com> --- cmd/led.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/cmd/led.c b/cmd/led.c index 3849a79..3f70666 100644 --- a/cmd/led.c +++ b/cmd/led.c @@ -230,6 +230,30 @@ int do_led (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) } if (error_count != 0) return CMD_RET_FAILURE; + } else if (strcmp("list", argv[1]) == 0) { + int node, len; + match = 1; + node = fdt_path_offset(gd->fdt_blob, "/leds"); + if (node < 0) { + printf("led: null led found\n"); + return CMD_RET_FAILURE; + } + node = fdt_first_subnode(gd->fdt_blob, node); + if (node < 0) { + printf("led: null led found\n"); + return CMD_RET_FAILURE; + } + printf(" led_name\n"); + printf("----------------------------------------\n"); + printf(" %s\n", fdt_getprop(gd->fdt_blob, node, + "label", &len)); + while (1) { + node = fdt_next_subnode(gd->fdt_blob, node); + if (node < 0) + break; + printf(" %s\n", fdt_getprop(gd->fdt_blob, node, + "label", &len)); + } } else if (argc > 2) { match = 1; if (dm_led_set(argv[1], cmd) < 0) @@ -287,6 +311,7 @@ U_BOOT_CMD( U_BOOT_CMD( led, 4, 1, do_led, "operate led(s)", - "[all|led_name] [on|off|toggle] - sets or clears led(s)" + "[all|led_name] [on|off|toggle] - sets or clears led(s)\n" + "led list - list all led(s) can be operated" ); #endif -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot