diff options
author | Parth Malkan <parthmalkan@google.com> | 2022-04-08 17:15:26 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-04-09 03:00:30 +0000 |
commit | efca01b1a4d2ba659f903f98c2abe192da59c83f (patch) | |
tree | 7868edffdd40b2f5950262b671f60c300dc3b8bc | |
parent | 1d0617d7af7f85ae6d2a1778211f426b547b8a4e (diff) | |
download | chrome-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.h | 21 | ||||
-rw-r--r-- | zephyr/shim/src/led_driver/led_gpio.c | 1 | ||||
-rw-r--r-- | zephyr/shim/src/led_driver/led_pwm.c | 1 |
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) /* |