mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
led: enable LEDST_BLINK state unconditionally
Changes: * enable LEDST_BLINK state unconditionally * function led_set_period() becomes available when CONFIG_LED_BLINK is disabled. This makes led code simpler. * fix cmd/led.c to work properly when LEDST_BLINK present, but CONFIG_LED_BLINK is disabled Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
committed by
Tom Rini
parent
cb0b7ab607
commit
2a15c676fa
@@ -15,9 +15,7 @@ static const char *const state_label[] = {
|
||||
[LEDST_OFF] = "off",
|
||||
[LEDST_ON] = "on",
|
||||
[LEDST_TOGGLE] = "toggle",
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
[LEDST_BLINK] = "blink",
|
||||
#endif
|
||||
};
|
||||
|
||||
enum led_state_t get_led_cmd(char *var)
|
||||
@@ -75,9 +73,7 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
||||
enum led_state_t cmd;
|
||||
const char *led_label;
|
||||
struct udevice *dev;
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
int freq_ms = 0;
|
||||
#endif
|
||||
int ret;
|
||||
|
||||
/* Validate arguments */
|
||||
@@ -88,13 +84,11 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
||||
return list_leds();
|
||||
|
||||
cmd = argc > 2 ? get_led_cmd(argv[2]) : LEDST_COUNT;
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
if (cmd == LEDST_BLINK) {
|
||||
if (argc < 4)
|
||||
return CMD_RET_USAGE;
|
||||
freq_ms = dectoul(argv[3], NULL);
|
||||
}
|
||||
#endif
|
||||
ret = led_get_by_label(led_label, &dev);
|
||||
if (ret) {
|
||||
printf("LED '%s' not found (err=%d)\n", led_label, ret);
|
||||
@@ -106,13 +100,11 @@ int do_led(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
||||
case LEDST_TOGGLE:
|
||||
ret = led_set_state(dev, cmd);
|
||||
break;
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
case LEDST_BLINK:
|
||||
ret = led_set_period(dev, freq_ms);
|
||||
if (!ret)
|
||||
ret = led_set_state(dev, LEDST_BLINK);
|
||||
break;
|
||||
#endif
|
||||
case LEDST_COUNT:
|
||||
printf("LED '%s': ", led_label);
|
||||
ret = show_led_state(dev);
|
||||
|
@@ -71,18 +71,18 @@ enum led_state_t led_get_state(struct udevice *dev)
|
||||
return ops->get_state(dev);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
int led_set_period(struct udevice *dev, int period_ms)
|
||||
{
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
struct led_ops *ops = led_get_ops(dev);
|
||||
|
||||
if (!ops->set_period)
|
||||
return -ENOSYS;
|
||||
|
||||
return ops->set_period(dev, period_ms);
|
||||
}
|
||||
if (ops->set_period)
|
||||
return ops->set_period(dev, period_ms);
|
||||
#endif
|
||||
|
||||
return -ENOSYS;
|
||||
}
|
||||
|
||||
static int led_post_bind(struct udevice *dev)
|
||||
{
|
||||
struct led_uc_plat *uc_plat = dev_get_uclass_plat(dev);
|
||||
|
@@ -13,9 +13,7 @@ enum led_state_t {
|
||||
LEDST_OFF = 0,
|
||||
LEDST_ON = 1,
|
||||
LEDST_TOGGLE,
|
||||
#ifdef CONFIG_LED_BLINK
|
||||
LEDST_BLINK,
|
||||
#endif
|
||||
|
||||
LEDST_COUNT,
|
||||
};
|
||||
|
Reference in New Issue
Block a user