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: Samuel Egli <samuel.egli@siemens.com> Cc: Roger Meier <r.meier@siemens.com> Cc: Heiko Schocher <hs@denx.de> Cc: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
823b2c4ce4
commit
111c8e4093
@ -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[])
|
||||
|
Loading…
Reference in New Issue
Block a user