diff options
-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; + } +} |