summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--baseboard/octopus/led_states.h2
-rw-r--r--board/bip/led.c3
-rw-r--r--board/bobba/led.c3
-rw-r--r--board/fleex/led.c3
-rw-r--r--board/meep/board.c2
-rw-r--r--board/meep/board.h2
-rw-r--r--board/meep/led.c21
-rw-r--r--board/phaser/led.c3
-rw-r--r--board/yorp/led.c3
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} },