Commit 111c8e40 authored by Egli, Samuel's avatar Egli, Samuel Committed by Tom Rini

siemens: add led cmd for flexible LED control

* remove setting LED in user button function.
   We want to decouple reading user button and setting LED. This
   two things need to be done independently.

 * led cmd can be used to control LEDs that are defined in board file
   having a led cmd, one can easily set LEDs in u-boot shell. For
   example bootcmd can be extended to disable status LED before
   loading kernel.
Signed-off-by: default avatarSamuel Egli <samuel.egli@siemens.com>
Cc: Roger Meier <r.meier@siemens.com>
Cc: Heiko Schocher <hs@denx.de>
Cc: Wolfgang Denk <wd@denx.de>
parent 823b2c4c
......@@ -128,12 +128,6 @@ do_userbutton(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
button = 0;
gpio_free(gpio);
if (!button) {
/* LED0 - RED=1: GPIO2_0 2*32 = 64 */
gpio_request(BOARD_DFU_BUTTON_LED, "");
gpio_direction_output(BOARD_DFU_BUTTON_LED, 1);
gpio_set_value(BOARD_DFU_BUTTON_LED, 1);
}
return button;
}
......@@ -144,6 +138,46 @@ U_BOOT_CMD(
""
);
#endif
/*
* This command sets led
* Input - name of led
* value of led
* Returns - 1 if input does not match
* 0 if led was set
*/
static int
do_setled(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int gpio = 0;
if (argc != 3)
goto exit;
#if defined(BOARD_STATUS_LED)
if (!strcmp(argv[1], "stat"))
gpio = BOARD_STATUS_LED;
#endif
#if defined(BOARD_DFU_BUTTON_LED)
if (!strcmp(argv[1], "dfu"))
gpio = BOARD_DFU_BUTTON_LED;
#endif
/* If argument does not mach exit */
if (gpio == 0)
goto exit;
gpio_request(gpio, "");
gpio_direction_output(gpio, 1);
if (!strcmp(argv[2], "1"))
gpio_set_value(gpio, 1);
else
gpio_set_value(gpio, 0);
return 0;
exit:
return 1;
}
U_BOOT_CMD(
led, CONFIG_SYS_MAXARGS, 2, do_setled,
"Set led on or off",
"dfu val - set dfu led\nled stat val - set status led"
);
static int
do_usertestwdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment