diff options
author | Zick Wei <zick.wei@quanta.corp-partner.google.com> | 2018-09-12 19:49:00 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-20 05:15:20 -0700 |
commit | dd818f7e1b80611f8a6ccf3a79f46e1b952db742 (patch) | |
tree | 0a60cb1c29536be1fcdd9a71ccca924153c2790f | |
parent | efa5d1dac544db64d0df45db31493c0f5d26dc2c (diff) | |
download | chrome-ec-dd818f7e1b80611f8a6ccf3a79f46e1b952db742.tar.gz |
meep: Add clamshell Suspend LED Behavior
Meep and Mimrock use same mother board,
Mimrock is clamshell sku only have Charge LED.
To meet LED spec:
System without Power LED, Suspend/S0ix without charge
blink White on Charge LED(1 sec on, 1 sec off).
BUG=none
BRANCH=none
TEST=manual
Set cbi sku id to clamshell sku,
Check Charge LED will blink(1 sec on, 1 sec off),
when system is Suspend/S0ix without charge.
Change-Id: Ib443d6176d929aad4b65c1cb0d4b40c102e6f67e
Signed-off-by: Zick Wei <zick.wei@quanta.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/1226830
Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r-- | baseboard/octopus/led_states.h | 2 | ||||
-rw-r--r-- | board/bip/led.c | 3 | ||||
-rw-r--r-- | board/bobba/led.c | 3 | ||||
-rw-r--r-- | board/fleex/led.c | 3 | ||||
-rw-r--r-- | board/meep/board.c | 2 | ||||
-rw-r--r-- | board/meep/board.h | 2 | ||||
-rw-r--r-- | board/meep/led.c | 21 | ||||
-rw-r--r-- | board/phaser/led.c | 3 | ||||
-rw-r--r-- | board/yorp/led.c | 3 |
9 files changed, 28 insertions, 14 deletions
diff --git a/baseboard/octopus/led_states.h b/baseboard/octopus/led_states.h index f664034760..d9d9c8c235 100644 --- a/baseboard/octopus/led_states.h +++ b/baseboard/octopus/led_states.h @@ -49,7 +49,7 @@ struct led_descriptor { /* Charging LED state table - defined in board's led.c */ -extern const struct led_descriptor +extern struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES]; /* Charging LED state level 1 - defined in board's led.c */ diff --git a/board/bip/led.c b/board/bip/led.c index 961d5719d8..69a20342be 100644 --- a/board/bip/led.c +++ b/board/bip/led.c @@ -18,8 +18,7 @@ const int led_charge_lvl_1 = 0; const int led_charge_lvl_2 = 100; /* Bip: Note there is only LED for charge / power */ -const struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { +struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC}, {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, diff --git a/board/bobba/led.c b/board/bobba/led.c index a23a062ad8..c54ffb6ab2 100644 --- a/board/bobba/led.c +++ b/board/bobba/led.c @@ -18,8 +18,7 @@ const int led_charge_lvl_1 = 0; const int led_charge_lvl_2 = 100; /* Bobba: Note there is only LED for charge / power */ -const struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { +struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, [STATE_DISCHARGE_S0] = {{EC_LED_COLOR_BLUE, LED_INDEFINITE} }, diff --git a/board/fleex/led.c b/board/fleex/led.c index 5911f36551..a58def114a 100644 --- a/board/fleex/led.c +++ b/board/fleex/led.c @@ -18,8 +18,7 @@ const int led_charge_lvl_1 = 10; const int led_charge_lvl_2 = 100; /* Fleex: Note there is only LED for charge / power */ -const struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { +struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, 1 * LED_ONE_SEC}, {LED_OFF, 1 * LED_ONE_SEC} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, diff --git a/board/meep/board.c b/board/meep/board.c index d45c2933c6..bb93e606ba 100644 --- a/board/meep/board.c +++ b/board/meep/board.c @@ -214,7 +214,7 @@ unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors); * SKU (SKU ID is 17, 18) and default SKU is 255 for factory that enable * all sensors. */ -static int board_is_convertible(void) +int board_is_convertible(void) { return sku_id == 1 || sku_id == 2 || sku_id == 3 || sku_id == 255; } diff --git a/board/meep/board.h b/board/meep/board.h index f3e14e85a5..c19c667492 100644 --- a/board/meep/board.h +++ b/board/meep/board.h @@ -105,6 +105,8 @@ enum battery_type { BATTERY_TYPE_COUNT, }; +int board_is_convertible(void); + #endif /* !__ASSEMBLER__ */ #endif /* __CROS_EC_BOARD_H */ diff --git a/board/meep/led.c b/board/meep/led.c index ccf2f2f045..7f4754ca2c 100644 --- a/board/meep/led.c +++ b/board/meep/led.c @@ -9,6 +9,7 @@ #include "gpio.h" #include "led_common.h" #include "led_states.h" +#include "hooks.h" #define LED_OFF_LVL 1 #define LED_ON_LVL 0 @@ -18,14 +19,14 @@ const int led_charge_lvl_1; const int led_charge_lvl_2 = 100; /* Meep: Note there is only LED for charge / power */ -const struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { +struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_WHITE, LED_INDEFINITE} }, [STATE_DISCHARGE_S0] = {{LED_OFF, LED_INDEFINITE} }, [STATE_DISCHARGE_S0_BAT_LOW] = {{EC_LED_COLOR_WHITE, 1 * LED_ONE_SEC}, {LED_OFF, 1 * LED_ONE_SEC} }, + /* STATE_DISCHARGE_S3 will changed if sku is clamshells */ [STATE_DISCHARGE_S3] = {{LED_OFF, LED_INDEFINITE} }, [STATE_DISCHARGE_S5] = {{LED_OFF, LED_INDEFINITE} }, [STATE_BATTERY_ERROR] = {{EC_LED_COLOR_WHITE, 0.5 * LED_ONE_SEC}, @@ -49,6 +50,22 @@ const enum ec_led_id supported_led_ids[] = { EC_LED_ID_POWER_LED }; +static void s3_led_init(void) +{ + if (!board_is_convertible()) { + led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_0].color = + EC_LED_COLOR_WHITE; + led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_0].time = + 1 * LED_ONE_SEC; + + led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_1].color = + LED_OFF; + led_bat_state_table[STATE_DISCHARGE_S3][LED_PHASE_1].time = + 1 * LED_ONE_SEC; + } +} +DECLARE_HOOK(HOOK_INIT, s3_led_init, HOOK_PRIO_DEFAULT); + const int supported_led_ids_count = ARRAY_SIZE(supported_led_ids); void led_set_color_power(enum ec_led_colors color) diff --git a/board/phaser/led.c b/board/phaser/led.c index 46f97071c3..6fcc2e36c0 100644 --- a/board/phaser/led.c +++ b/board/phaser/led.c @@ -18,8 +18,7 @@ const int led_charge_lvl_1 = 5; const int led_charge_lvl_2 = 97; -const struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { +struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_RED, LED_INDEFINITE} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, [STATE_CHARGING_FULL_CHARGE] = {{EC_LED_COLOR_GREEN, LED_INDEFINITE} }, diff --git a/board/yorp/led.c b/board/yorp/led.c index 5e97887722..08ac48661e 100644 --- a/board/yorp/led.c +++ b/board/yorp/led.c @@ -18,8 +18,7 @@ const int led_charge_lvl_1 = 0; const int led_charge_lvl_2 = 100; /* Yorp: Note there is only LED for charge / power */ -const struct led_descriptor - led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { +struct led_descriptor led_bat_state_table[LED_NUM_STATES][LED_NUM_PHASES] = { [STATE_CHARGING_LVL_1] = {{EC_LED_COLOR_BLUE, 2 * LED_ONE_SEC}, {EC_LED_COLOR_AMBER, 2 * LED_ONE_SEC} }, [STATE_CHARGING_LVL_2] = {{EC_LED_COLOR_AMBER, LED_INDEFINITE} }, |