diff options
-rw-r--r-- | board/endeavour/board.c | 2 | ||||
-rw-r--r-- | board/endeavour/board.h | 2 | ||||
-rw-r--r-- | board/endeavour/led.c | 53 |
3 files changed, 24 insertions, 33 deletions
diff --git a/board/endeavour/board.c b/board/endeavour/board.c index 974b9c9cfd..128b3b4280 100644 --- a/board/endeavour/board.c +++ b/board/endeavour/board.c @@ -296,7 +296,7 @@ int64_t get_time_dsw_pwrok(void) const struct pwm_t pwm_channels[] = { [PWM_CH_LED_RED] = { 3, PWM_CONFIG_DSLEEP, 100 }, - [PWM_CH_LED_BLUE] = { 5, PWM_CONFIG_DSLEEP, 100 }, + [PWM_CH_LED_WHITE] = { 5, PWM_CONFIG_DSLEEP, 100 }, [PWM_CH_FAN] = {4, PWM_CONFIG_OPEN_DRAIN, 25000}, }; BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); diff --git a/board/endeavour/board.h b/board/endeavour/board.h index 989ad69e78..5dae255681 100644 --- a/board/endeavour/board.h +++ b/board/endeavour/board.h @@ -122,7 +122,7 @@ enum adc_channel { enum pwm_channel { PWM_CH_LED_RED, - PWM_CH_LED_BLUE, + PWM_CH_LED_WHITE, PWM_CH_FAN, /* Number of PWM channels */ PWM_CH_COUNT diff --git a/board/endeavour/led.c b/board/endeavour/led.c index 5133b65f74..77cd566ee5 100644 --- a/board/endeavour/led.c +++ b/board/endeavour/led.c @@ -21,8 +21,7 @@ const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); enum led_color { LED_OFF = 0, LED_RED, - LED_BLUE, - LED_AMBER, + LED_WHITE, /* Number of colors, not a color itself */ LED_COLOR_COUNT @@ -30,7 +29,7 @@ enum led_color { static int set_color_power(enum led_color color, int duty) { - int blue = 0; + int white = 0; int red = 0; if (duty < 0 || 100 < duty) @@ -39,16 +38,12 @@ static int set_color_power(enum led_color color, int duty) switch (color) { case LED_OFF: break; - case LED_BLUE: - blue = 1; + case LED_WHITE: + white = 1; break; case LED_RED: red = 1; break; - case LED_AMBER: - blue = 1; - red = 1; - break; default: return EC_ERROR_UNKNOWN; } @@ -58,10 +53,10 @@ static int set_color_power(enum led_color color, int duty) else pwm_set_duty(PWM_CH_LED_RED, 0); - if (blue) - pwm_set_duty(PWM_CH_LED_BLUE, duty); + if (white) + pwm_set_duty(PWM_CH_LED_WHITE, duty); else - pwm_set_duty(PWM_CH_LED_BLUE, 0); + pwm_set_duty(PWM_CH_LED_WHITE, 0); return EC_SUCCESS; } @@ -118,13 +113,7 @@ static void led_tick(void) uint32_t elapsed; uint32_t next = 0; uint32_t start = get_time().le.lo; - static uint8_t pwm_enabled = 0; - if (!pwm_enabled) { - pwm_enable(PWM_CH_LED_RED, 1); - pwm_enable(PWM_CH_LED_BLUE, 1); - pwm_enabled = 1; - } if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED)) pulse_power_led(led_pulse.color); elapsed = get_time().le.lo - start; @@ -134,7 +123,7 @@ static void led_tick(void) static void led_suspend(void) { - LED_PULSE_TICK(LED_PULSE_TICK_US, LED_BLUE); + LED_PULSE_TICK(LED_PULSE_TICK_US, LED_WHITE); led_tick(); } DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, led_suspend, HOOK_PRIO_DEFAULT); @@ -153,10 +142,17 @@ static void led_resume(void) * runs in hook_task. */ hook_call_deferred(&led_tick_data, -1); if (led_auto_control_is_enabled(EC_LED_ID_POWER_LED)) - set_color(EC_LED_ID_POWER_LED, LED_BLUE, 100); + set_color(EC_LED_ID_POWER_LED, LED_WHITE, 100); } DECLARE_HOOK(HOOK_CHIPSET_RESUME, led_resume, HOOK_PRIO_DEFAULT); +static void led_init(void) +{ + pwm_enable(PWM_CH_LED_RED, 1); + pwm_enable(PWM_CH_LED_WHITE, 1); +} +DECLARE_HOOK(HOOK_INIT, led_init, HOOK_PRIO_INIT_PWM + 1); + void led_alert(int enable) { if (enable) { @@ -195,10 +191,8 @@ static int command_led(int argc, char **argv) set_color(id, LED_OFF, 0); } else if (!strcasecmp(argv[1], "red")) { set_color(id, LED_RED, 100); - } else if (!strcasecmp(argv[1], "blue")) { - set_color(id, LED_BLUE, 100); - } else if (!strcasecmp(argv[1], "amber")) { - set_color(id, LED_AMBER, 100); + } else if (!strcasecmp(argv[1], "white")) { + set_color(id, LED_WHITE, 100); } else if (!strcasecmp(argv[1], "alert")) { led_alert(1); } else if (!strcasecmp(argv[1], "crit")) { @@ -209,24 +203,21 @@ static int command_led(int argc, char **argv) return EC_SUCCESS; } DECLARE_CONSOLE_COMMAND(led, command_led, - "[debug|red|blue|amber|off|alert|crit]", + "[debug|red|white|off|alert|crit]", "Turn on/off LED."); void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) { brightness_range[EC_LED_COLOR_RED] = 100; - brightness_range[EC_LED_COLOR_BLUE] = 100; - brightness_range[EC_LED_COLOR_AMBER] = 100; + brightness_range[EC_LED_COLOR_WHITE] = 100; } int led_set_brightness(enum ec_led_id id, const uint8_t *brightness) { if (brightness[EC_LED_COLOR_RED]) return set_color(id, LED_RED, brightness[EC_LED_COLOR_RED]); - else if (brightness[EC_LED_COLOR_BLUE]) - return set_color(id, LED_BLUE, brightness[EC_LED_COLOR_BLUE]); - else if (brightness[EC_LED_COLOR_AMBER]) - return set_color(id, LED_AMBER, brightness[EC_LED_COLOR_AMBER]); + else if (brightness[EC_LED_COLOR_WHITE]) + return set_color(id, LED_WHITE, brightness[EC_LED_COLOR_WHITE]); else return set_color(id, LED_OFF, 0); } |