summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorParth Malkan <parthmalkan@google.com>2022-04-08 17:15:26 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-04-09 03:00:30 +0000
commitefca01b1a4d2ba659f903f98c2abe192da59c83f (patch)
tree7868edffdd40b2f5950262b671f60c300dc3b8bc
parent1d0617d7af7f85ae6d2a1778211f426b547b8a4e (diff)
downloadchrome-ec-stabilize-14682.B-main.tar.gz
zephyr: LED: Convert hard-coded led_color enum to use DTstabilize-14682.B-main
Generate led_color enum by using values defined in devicetree instead of using hard-coded values. BRANCH=none BUG=b:227798487 TEST=zmake build lazor, flash and test LEDs Signed-off-by: Parth Malkan <parthmalkan@google.com> Change-Id: Ib92867194c9e5aaa5e114dd08d6ce187a2f9b300 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3579991 Reviewed-by: Wai-Hong Tam <waihong@google.com>
-rw-r--r--zephyr/shim/src/led_driver/led.h21
-rw-r--r--zephyr/shim/src/led_driver/led_gpio.c1
-rw-r--r--zephyr/shim/src/led_driver/led_pwm.c1
3 files changed, 17 insertions, 6 deletions
diff --git a/zephyr/shim/src/led_driver/led.h b/zephyr/shim/src/led_driver/led.h
index 53728609ed..086d2312b5 100644
--- a/zephyr/shim/src/led_driver/led.h
+++ b/zephyr/shim/src/led_driver/led.h
@@ -6,6 +6,8 @@
#ifndef __CROS_EC_LED_H__
#define __CROS_EC_LED_H__
+#include <devicetree.h>
+
#define COMPAT_GPIO_LED cros_ec_gpio_led_pins
#define COMPAT_PWM_LED cros_ec_pwm_led_pins
@@ -19,11 +21,22 @@
(DT_STRING_UPPER_TOKEN(id, prop)), \
(-1))
-/* TODO(b/227798487): Use DT to generate this enum instead of hardcoding */
+#define LED_ENUM(id, enum_name) DT_STRING_TOKEN(id, enum_name)
+#define LED_ENUM_WITH_COMMA(id, enum_name) \
+ COND_CODE_1(DT_NODE_HAS_PROP(id, enum_name), \
+ (LED_ENUM(id, enum_name),), ())
+
+#define GPIO_LED_PINS_NODE DT_PATH(gpio_led_pins)
+#define PWM_LED_PINS_NODE DT_PATH(pwm_led_pins)
+
enum led_color {
- LED_OFF = 0,
- LED_AMBER,
- LED_BLUE,
+#if DT_NODE_EXISTS(GPIO_LED_PINS_NODE)
+ DT_FOREACH_CHILD_VARGS(GPIO_LED_PINS_NODE,
+ LED_ENUM_WITH_COMMA, led_color)
+#elif DT_NODE_EXISTS(PWM_LED_PINS_NODE)
+ DT_FOREACH_CHILD_VARGS(PWM_LED_PINS_NODE,
+ LED_ENUM_WITH_COMMA, led_color)
+#endif
LED_COLOR_COUNT /* Number of colors, not a color itself */
};
diff --git a/zephyr/shim/src/led_driver/led_gpio.c b/zephyr/shim/src/led_driver/led_gpio.c
index 85bdc2dd71..9107aad579 100644
--- a/zephyr/shim/src/led_driver/led_gpio.c
+++ b/zephyr/shim/src/led_driver/led_gpio.c
@@ -17,7 +17,6 @@
LOG_MODULE_REGISTER(gpio_led, LOG_LEVEL_ERR);
-#define GPIO_LED_PINS_NODE DT_PATH(gpio_led_pins)
#define LED_PIN_COUNT (LED_COLOR_COUNT - 1)
/*
diff --git a/zephyr/shim/src/led_driver/led_pwm.c b/zephyr/shim/src/led_driver/led_pwm.c
index d2605256a5..d2466e0d60 100644
--- a/zephyr/shim/src/led_driver/led_pwm.c
+++ b/zephyr/shim/src/led_driver/led_pwm.c
@@ -17,7 +17,6 @@
LOG_MODULE_REGISTER(pwm_led, LOG_LEVEL_ERR);
-#define PWM_LED_PINS_NODE DT_PATH(pwm_led_pins)
#define LED_PIN_COUNT (LED_COLOR_COUNT - 1)
/*