summaryrefslogtreecommitdiff
path: root/board/meep
diff options
context:
space:
mode:
authorZick Wei <zick.wei@quanta.corp-partner.google.com>2018-09-12 19:49:00 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-09-20 05:15:20 -0700
commitdd818f7e1b80611f8a6ccf3a79f46e1b952db742 (patch)
tree0a60cb1c29536be1fcdd9a71ccca924153c2790f /board/meep
parentefa5d1dac544db64d0df45db31493c0f5d26dc2c (diff)
downloadchrome-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>
Diffstat (limited to 'board/meep')
-rw-r--r--board/meep/board.c2
-rw-r--r--board/meep/board.h2
-rw-r--r--board/meep/led.c21
3 files changed, 22 insertions, 3 deletions
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)