diff options
author | David Huang <david.huang@quanta.corp-partner.google.com> | 2022-09-01 17:48:14 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-02 01:58:04 +0000 |
commit | 6449ab091125447945bb042dc94d610c331ae9f9 (patch) | |
tree | 624491d097166e92d37daa2417dcf03d0421bdda | |
parent | 1a845656a498b24884ee0598607ab08230335285 (diff) | |
download | chrome-ec-6449ab091125447945bb042dc94d610c331ae9f9.tar.gz |
Nissa: Modify LED behavior for Nirwen
LED behavior:
Charge | Amber on
Full charge | Blue on
Discharge in S3 | Amber on 1sec off 3sec
Discharge in S5 | Off
Discharge in S0 | Blue on
Battery Error | Amber on 1sec off 1sec
Factory mode | Blue on 2sec Amber on 2sec
BUG=b:242957096
BRANCH=none
TEST=check LED status
Signed-off-by: David Huang <david.huang@quanta.corp-partner.google.com>
Change-Id: I485606e65b23d117e287c8f684e097276fc90110
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3868874
Reviewed-by: Andrew McRae <amcrae@google.com>
Commit-Queue: Andrew McRae <amcrae@google.com>
-rw-r--r-- | zephyr/projects/nissa/CMakeLists.txt | 2 | ||||
-rw-r--r-- | zephyr/projects/nissa/nivviks/pwm_leds.dts | 4 | ||||
-rw-r--r-- | zephyr/projects/nissa/nivviks/src/led.c | 53 |
3 files changed, 56 insertions, 3 deletions
diff --git a/zephyr/projects/nissa/CMakeLists.txt b/zephyr/projects/nissa/CMakeLists.txt index 4717c2c697..6783ceb006 100644 --- a/zephyr/projects/nissa/CMakeLists.txt +++ b/zephyr/projects/nissa/CMakeLists.txt @@ -14,7 +14,7 @@ zephyr_library_sources_ifdef(CONFIG_AP_PWRSEQ "src/board_power.c") if(DEFINED CONFIG_BOARD_NIVVIKS) project(nivviks) zephyr_library_sources( - "src/led.c" + "nivviks/src/led.c" "nivviks/src/form_factor.c" "nivviks/src/keyboard.c" ) diff --git a/zephyr/projects/nissa/nivviks/pwm_leds.dts b/zephyr/projects/nissa/nivviks/pwm_leds.dts index 78e3f72705..031bcea5ef 100644 --- a/zephyr/projects/nissa/nivviks/pwm_leds.dts +++ b/zephyr/projects/nissa/nivviks/pwm_leds.dts @@ -24,9 +24,9 @@ color-map-blue = < 0 0 100>; color-map-yellow = < 0 50 50>; color-map-white = <100 100 100>; - color-map-amber = <100 20 100>; + color-map-amber = <100 0 0>; - brightness-range = <100 100 100 0 0 0>; + brightness-range = <0 0 100 0 0 100>; #address-cells = <1>; #size-cells = <0>; diff --git a/zephyr/projects/nissa/nivviks/src/led.c b/zephyr/projects/nissa/nivviks/src/led.c new file mode 100644 index 0000000000..4a6cc8cab9 --- /dev/null +++ b/zephyr/projects/nissa/nivviks/src/led.c @@ -0,0 +1,53 @@ +/* Copyright 2022 The ChromiumOS Authors. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Battery LED control for nissa + */ +#include "common.h" +#include "ec_commands.h" +#include "led_common.h" +#include "led_onoff_states.h" +#include "led_pwm.h" + +__override const int led_charge_lvl_1 = 5; +__override const int led_charge_lvl_2 = 97; +__override 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_BLUE, + LED_INDEFINITE } }, + [STATE_DISCHARGE_S0] = { { EC_LED_COLOR_BLUE, + LED_INDEFINITE } }, + [STATE_DISCHARGE_S0_BAT_LOW] = { { EC_LED_COLOR_AMBER, + LED_INDEFINITE } }, + [STATE_DISCHARGE_S3] = { { EC_LED_COLOR_AMBER, + 1 * LED_ONE_SEC }, + { LED_OFF, 3 * LED_ONE_SEC } }, + [STATE_DISCHARGE_S5] = { { LED_OFF, LED_INDEFINITE } }, + [STATE_BATTERY_ERROR] = { { EC_LED_COLOR_AMBER, + 1 * LED_ONE_SEC }, + { LED_OFF, 1 * LED_ONE_SEC } }, + [STATE_FACTORY_TEST] = { { EC_LED_COLOR_AMBER, + 2 * LED_ONE_SEC }, + { EC_LED_COLOR_BLUE, + 2 * LED_ONE_SEC } }, + }; + +__override void led_set_color_battery(enum ec_led_colors color) +{ + switch (color) { + case EC_LED_COLOR_BLUE: + set_pwm_led_color(EC_LED_ID_BATTERY_LED, EC_LED_COLOR_BLUE); + break; + case EC_LED_COLOR_AMBER: + set_pwm_led_color(EC_LED_ID_BATTERY_LED, EC_LED_COLOR_AMBER); + break; + default: /* LED_OFF and other unsupported colors */ + set_pwm_led_color(EC_LED_ID_BATTERY_LED, -1); + break; + } +} |