diff options
author | Aseda Aboagye <aaboagye@chromium.org> | 2021-06-08 16:28:09 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-08 19:07:31 +0000 |
commit | ea0c187b49daa8b678467834ba20da612b01cd50 (patch) | |
tree | 1da8f322d0d60b375864cdc2c63ecec0e7112050 | |
parent | 5d68366aba0bb082bb5e03a673199c5ac0b0ae0e (diff) | |
download | chrome-ec-ea0c187b49daa8b678467834ba20da612b01cd50.tar.gz |
Revert "Homestar:LED:LED function realization"
This reverts commit 8aacd88a332b9903334e0bb3bf586560fdc5883a.
Reason for revert: Orange is the same as amber, so the ectool
and ec_commands.h portions were not needed.
Original change's description:
> Homestar:LED:LED function realization
>
> BUG=b:187539586
> TEST=make -j BOARD=homestar
> Verify build on EVT board
> BRANCH=Trogdo
>
> Signed-off-by: tongjian <tongjian@huaqin.corp-partner.google.com>
> Change-Id: I9c77b60e11135df5e289ef32adfe34fef3134760
> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2915162
> Reviewed-by: Wai-Hong Tam <waihong@google.com>
Bug: b:187539586
Change-Id: Ic096dec630bcdcde17a3611f8414d88808d09469
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2947488
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Auto-Submit: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | board/homestar/led.c | 121 | ||||
-rw-r--r-- | include/ec_commands.h | 2 | ||||
-rw-r--r-- | util/ectool.c | 2 |
3 files changed, 66 insertions, 59 deletions
diff --git a/board/homestar/led.c b/board/homestar/led.c index 4691d602ba..baf1768b19 100644 --- a/board/homestar/led.c +++ b/board/homestar/led.c @@ -33,39 +33,31 @@ const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); enum led_color { LED_OFF = 0, - LED_RED, - LED_GREEN, - LED_ORANGE, + LED_AMBER, + LED_BLUE, LED_COLOR_COUNT /* Number of colors, not a color itself */ }; static void led_set_color(enum led_color color) { gpio_set_level(GPIO_EC_CHG_LED_R_C0, - (color == LED_RED) ? BAT_LED_ON : BAT_LED_OFF); + (color == LED_AMBER) ? BAT_LED_ON : BAT_LED_OFF); gpio_set_level(GPIO_EC_CHG_LED_G_C0, - (color == LED_GREEN) ? BAT_LED_ON : BAT_LED_OFF); - if (color == LED_ORANGE) { - gpio_set_level(GPIO_EC_CHG_LED_R_C0, BAT_LED_ON); - gpio_set_level(GPIO_EC_CHG_LED_G_C0, BAT_LED_ON); - } + (color == LED_BLUE) ? BAT_LED_ON : BAT_LED_OFF); } void led_get_brightness_range(enum ec_led_id led_id, uint8_t *brightness_range) { - brightness_range[EC_LED_COLOR_RED] = 1; - brightness_range[EC_LED_COLOR_GREEN] = 1; - brightness_range[EC_LED_COLOR_ORANGE] = 1; + brightness_range[EC_LED_COLOR_AMBER] = 1; + brightness_range[EC_LED_COLOR_BLUE] = 1; } int led_set_brightness(enum ec_led_id led_id, const uint8_t *brightness) { - if (brightness[EC_LED_COLOR_RED] != 0) - led_set_color(LED_RED); - else if (brightness[EC_LED_COLOR_GREEN] != 0) - led_set_color(LED_GREEN); - else if (brightness[EC_LED_COLOR_ORANGE] != 0) - led_set_color(LED_ORANGE); + if (brightness[EC_LED_COLOR_BLUE] != 0) + led_set_color(LED_BLUE); + else if (brightness[EC_LED_COLOR_AMBER] != 0) + led_set_color(LED_AMBER); else led_set_color(LED_OFF); @@ -77,67 +69,82 @@ static void board_led_set_battery(void) static int battery_ticks; int color = LED_OFF; int period = 0; - int percent = charge_get_percent(); uint32_t chflags = charge_get_flags(); battery_ticks++; switch (charge_get_state()) { case PWR_STATE_CHARGE: - case PWR_STATE_CHARGE_NEAR_FULL: - if (chipset_in_state(CHIPSET_STATE_ON | - CHIPSET_STATE_ANY_SUSPEND | - CHIPSET_STATE_ANY_OFF)) { - if (percent <= BATTERY_LEVEL_CRITICAL) { - /* battery capa <= 5%, Red */ - color = LED_RED; - } else if (percent > BATTERY_LEVEL_CRITICAL && - percent < BATTERY_LEVEL_NEAR_FULL) { - /* 5% < battery capa < 97%, Orange */ - color = LED_ORANGE; - } else { - /* battery capa >= 97%, Green */ - color = LED_GREEN; - } - } + /* Always indicate amber on when charging. */ + color = LED_AMBER; break; case PWR_STATE_DISCHARGE: - if (chipset_in_state(CHIPSET_STATE_ON)) { - /* S0, Green (soild on) */ - color = LED_GREEN; - } else if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) { - /* S3, Orange (1s on 3s off) */ - period = (2 + 2) * LED_ONE_SEC; + if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) { + /* Discharging in S3: White 1 sec, off 1 sec */ + period = (1 + 1) * LED_ONE_SEC; battery_ticks = battery_ticks % period; - if (battery_ticks < 1 * LED_ONE_SEC) - color = LED_ORANGE; - else + if (battery_ticks < 1 * LED_ONE_SEC) { + if (charge_get_percent() < 10) { + /* Blink amber light (1 sec on, 1 sec off) */ + color = LED_AMBER; + } else { + /* Blink white light (1 sec on, 1 sec off) */ + color = LED_BLUE; + } + } else { color = LED_OFF; - } else if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) { - /* S5, off */ - color = LED_OFF; + } + } else { + /* Discharging in S5 and S0: off */ + /* Blink amber light (1 sec on, 1 sec off) */ + if (charge_get_percent() < 10) { + period = (1 + 1) * LED_ONE_SEC; + battery_ticks = battery_ticks % period; + if (battery_ticks < 1 * LED_ONE_SEC) + color = LED_AMBER; + else + color = LED_OFF; + } else { + /* G3 or S5 or S0: off */ + color = LED_OFF; + } } break; case PWR_STATE_ERROR: - /* Battery error, Red on 1sec off 1sec */ - period = (1 + 1) * LED_ONE_SEC; + /* Battery error: Amber on 0.5 sec, off 0.5 sec */ + period = (1 + 1) * LED_HALF_ONE_SEC; battery_ticks = battery_ticks % period; - if (battery_ticks < 1 * LED_ONE_SEC) - color = LED_RED; + if (battery_ticks < 1 * LED_HALF_ONE_SEC) + color = LED_AMBER; else color = LED_OFF; break; + case PWR_STATE_CHARGE_NEAR_FULL: + /* Full Charged: Blue on */ + /* S3: Blink white light (1 sec on, 1 sec off) */ + if (chipset_in_state(CHIPSET_STATE_ANY_SUSPEND)) { + period = (1 + 1) * LED_ONE_SEC; + battery_ticks = battery_ticks % period; + if (battery_ticks < 1 * LED_ONE_SEC) + color = LED_BLUE; + else + color = LED_OFF; + } else { + /* Full charged: White on */ + color = LED_BLUE; + } + break; case PWR_STATE_IDLE: /* External power connected in IDLE */ if (chflags & CHARGE_FLAG_FORCE_IDLE) { - /* Factory mode, Red 2 sec, green 2 sec */ + /* Factory mode: Blue 2 sec, Amber 2 sec */ period = (2 + 2) * LED_ONE_SEC; battery_ticks = battery_ticks % period; if (battery_ticks < 2 * LED_ONE_SEC) - color = LED_RED; + color = LED_BLUE; else - color = LED_GREEN; + color = LED_AMBER; } else - color = LED_RED; + color = LED_BLUE; break; default: /* Other states don't alter LED behavior */ @@ -160,7 +167,7 @@ void led_control(enum ec_led_id led_id, enum ec_led_state state) enum led_color color; if ((led_id != EC_LED_ID_RECOVERY_HW_REINIT_LED) && - (led_id != EC_LED_ID_SYSRQ_DEBUG_LED)) + (led_id != EC_LED_ID_SYSRQ_DEBUG_LED)) return; if (state == LED_STATE_RESET) { @@ -169,7 +176,7 @@ void led_control(enum ec_led_id led_id, enum ec_led_state state) return; } - color = state ? LED_RED : LED_OFF; + color = state ? LED_BLUE : LED_OFF; led_auto_control(EC_LED_ID_BATTERY_LED, 0); diff --git a/include/ec_commands.h b/include/ec_commands.h index 0649a42797..c0bea49322 100644 --- a/include/ec_commands.h +++ b/include/ec_commands.h @@ -2393,7 +2393,7 @@ enum ec_led_colors { EC_LED_COLOR_YELLOW, EC_LED_COLOR_WHITE, EC_LED_COLOR_AMBER, - EC_LED_COLOR_ORANGE, + EC_LED_COLOR_COUNT }; diff --git a/util/ectool.c b/util/ectool.c index 65bb7c0a94..dd5fa6cf3d 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -352,7 +352,7 @@ static const char * const image_names[] = {"unknown", "RO", "RW"}; /* Note: depends on enum ec_led_colors */ static const char * const led_color_names[] = { - "red", "green", "blue", "yellow", "white", "amber", "orange"}; + "red", "green", "blue", "yellow", "white", "amber"}; BUILD_ASSERT(ARRAY_SIZE(led_color_names) == EC_LED_COLOR_COUNT); /* Note: depends on enum ec_led_id */ |