summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@chromium.org>2021-06-08 16:28:09 +0000
committerCommit Bot <commit-bot@chromium.org>2021-06-08 19:07:31 +0000
commitea0c187b49daa8b678467834ba20da612b01cd50 (patch)
tree1da8f322d0d60b375864cdc2c63ecec0e7112050
parent5d68366aba0bb082bb5e03a673199c5ac0b0ae0e (diff)
downloadchrome-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.c121
-rw-r--r--include/ec_commands.h2
-rw-r--r--util/ectool.c2
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 */