diff options
Diffstat (limited to 'zephyr')
-rw-r--r-- | zephyr/program/rex/screebo/led_pins.dtsi | 31 | ||||
-rw-r--r-- | zephyr/program/rex/screebo/led_policy.dtsi | 140 | ||||
-rw-r--r-- | zephyr/program/rex/screebo/project.overlay | 2 |
3 files changed, 173 insertions, 0 deletions
diff --git a/zephyr/program/rex/screebo/led_pins.dtsi b/zephyr/program/rex/screebo/led_pins.dtsi new file mode 100644 index 0000000000..a71f0562d0 --- /dev/null +++ b/zephyr/program/rex/screebo/led_pins.dtsi @@ -0,0 +1,31 @@ +/* Copyright 2023 The ChromiumOS Authors + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/ { + gpio-led-pins { + compatible = "cros-ec,gpio-led-pins"; + + combo_led: combo-led { + led-id = "EC_LED_ID_BATTERY_LED"; + led-pins = <&gpio_led_1_l &gpio_led_2_l>; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <1 1>; + }; + + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <1 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 1>; + }; + }; + }; +}; diff --git a/zephyr/program/rex/screebo/led_policy.dtsi b/zephyr/program/rex/screebo/led_policy.dtsi new file mode 100644 index 0000000000..d3e2a53351 --- /dev/null +++ b/zephyr/program/rex/screebo/led_policy.dtsi @@ -0,0 +1,140 @@ +#include <dt-bindings/battery.h> + +/ { + led-colors { + compatible = "cros-ec,led-policy"; + + power-state-charge-lvl-1 { + charge-state = "PWR_STATE_CHARGE"; + + /* Battery display percent range (>= Empty, <= 94%) */ + batt-lvl = <BATTERY_LEVEL_EMPTY 94>; + + color-0 { + led-color = <&color_amber>; + }; + }; + + power-state-charge-lvl-2 { + charge-state = "PWR_STATE_CHARGE"; + + /* Battery display percent range (>= 95) */ + batt-lvl = <95 100>; + + color-0 { + led-color = <&color_white>; + }; + }; + + power-state-near-full { + charge-state = "PWR_STATE_CHARGE_NEAR_FULL"; + + color-0 { + led-color = <&color_white>; + }; + }; + + power-state-discharge-s0 { + charge-state = "PWR_STATE_DISCHARGE"; + chipset-state = "POWER_S0"; + /* Battery display percent range (>= 11%, <= 100%) */ + batt-lvl = <(BATTERY_LEVEL_LOW + 1) BATTERY_LEVEL_FULL>; + + color-0 { + led-color = <&color_white>; + }; + }; + + power-state-discharge-s0-batt-low { + charge-state = "PWR_STATE_DISCHARGE"; + chipset-state = "POWER_S0"; + /* Battery display percent range (>= 0, <= 10%) */ + batt-lvl = <BATTERY_LEVEL_EMPTY BATTERY_LEVEL_LOW>; + + /* Amber 1 sec on, 3 sec off */ + color-0 { + led-color = <&color_amber>; + period-ms = <1000>; + }; + color-1 { + led-color = <&color_off>; + period-ms = <3000>; + }; + }; + + power-state-discharge-s3 { + charge-state = "PWR_STATE_DISCHARGE"; + chipset-state = "POWER_S3"; + + /* White 1 sec on, 3 sec off */ + color-0 { + led-color = <&color_white>; + period-ms = <1000>; + }; + color-1 { + led-color = <&color_off>; + period-ms = <3000>; + }; + }; + + power-state-discharge-s5 { + charge-state = "PWR_STATE_DISCHARGE"; + chipset-state = "POWER_S5"; + + color-0 { + led-color = <&color_off>; + }; + }; + + power-state-error-s0 { + charge-state = "PWR_STATE_ERROR"; + chipset-state = "POWER_S0"; + /* Amber 1 sec on, 1 sec off */ + color-0 { + led-color = <&color_amber>; + period-ms = <1000>; + }; + color-1 { + led-color = <&color_off>; + period-ms = <1000>; + }; + }; + + power-state-error-s3 { + charge-state = "PWR_STATE_ERROR"; + chipset-state = "POWER_S3"; + /* White 1 sec on, 3 sec off */ + color-0 { + led-color = <&color_white>; + period-ms = <1000>; + }; + color-1 { + led-color = <&color_off>; + period-ms = <3000>; + }; + }; + + power-state-error-s5 { + charge-state = "PWR_STATE_ERROR"; + chipset-state = "POWER_S5"; + + color-0 { + led-color = <&color_off>; + }; + }; + + power-state-forced-idle { + charge-state = "PWR_STATE_FORCED_IDLE"; + + /* White 2 sec on, Amber 2 sec on */ + color-0 { + led-color = <&color_white>; + period-ms = <2000>; + }; + color-1 { + led-color = <&color_amber>; + period-ms = <2000>; + }; + }; + }; +}; diff --git a/zephyr/program/rex/screebo/project.overlay b/zephyr/program/rex/screebo/project.overlay index 35156be4f4..f1f13d91cb 100644 --- a/zephyr/program/rex/screebo/project.overlay +++ b/zephyr/program/rex/screebo/project.overlay @@ -13,6 +13,8 @@ #include "../usbc.dtsi" /* Screebo project DTS includes */ +#include "led_pins.dtsi" +#include "led_policy.dtsi" #include "temp_sensors.dtsi" / { |