summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/program/rex/screebo/led_pins.dtsi31
-rw-r--r--zephyr/program/rex/screebo/led_policy.dtsi140
-rw-r--r--zephyr/program/rex/screebo/project.overlay2
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"
/ {