summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Huang <david.huang@quanta.corp-partner.google.com>2022-09-01 17:48:14 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-02 01:58:04 +0000
commit6449ab091125447945bb042dc94d610c331ae9f9 (patch)
tree624491d097166e92d37daa2417dcf03d0421bdda
parent1a845656a498b24884ee0598607ab08230335285 (diff)
downloadchrome-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.txt2
-rw-r--r--zephyr/projects/nissa/nivviks/pwm_leds.dts4
-rw-r--r--zephyr/projects/nissa/nivviks/src/led.c53
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;
+ }
+}