diff options
Diffstat (limited to 'zephyr/shim/src/led_driver/led.c')
-rw-r--r-- | zephyr/shim/src/led_driver/led.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/zephyr/shim/src/led_driver/led.c b/zephyr/shim/src/led_driver/led.c index 011632ac83..9a1c07b310 100644 --- a/zephyr/shim/src/led_driver/led.c +++ b/zephyr/shim/src/led_driver/led.c @@ -5,7 +5,7 @@ * Power and battery LED control. */ -#include <zephyr/drivers/gpio.h> +#define DT_DRV_COMPAT cros_ec_led_policy #include "battery.h" #include "charge_manager.h" @@ -21,10 +21,12 @@ #include "util.h" #include <zephyr/devicetree.h> +#include <zephyr/drivers/gpio.h> #include <zephyr/logging/log.h> LOG_MODULE_REGISTER(led, LOG_LEVEL_ERR); -#define LED_COLOR_NODE DT_PATH(led_colors) +BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) == 1, + "Exactly one instance of cros-ec,led-policy should be defined."); struct led_color_node_t { struct led_pins_node_t *pins_node; @@ -33,10 +35,12 @@ struct led_color_node_t { #define DECLARE_PINS_NODE(id) extern struct led_pins_node_t PINS_NODE(id); -#if DT_HAS_COMPAT_STATUS_OKAY(COMPAT_PWM_LED) -DT_FOREACH_CHILD(PWM_LED_PINS_NODE, DECLARE_PINS_NODE) -#elif DT_HAS_COMPAT_STATUS_OKAY(COMPAT_GPIO_LED) -DT_FOREACH_CHILD(GPIO_LED_PINS_NODE, DECLARE_PINS_NODE) +#if CONFIG_PLATFORM_EC_LED_DT_PWM +DT_FOREACH_CHILD(DT_COMPAT_GET_ANY_STATUS_OKAY(cros_ec_pwm_led_pins), + DECLARE_PINS_NODE) +#elif CONFIG_PLATFORM_EC_LED_DT_GPIO +DT_FOREACH_CHILD(DT_COMPAT_GET_ANY_STATUS_OKAY(cros_ec_gpio_led_pins), + DECLARE_PINS_NODE) #endif /* @@ -113,8 +117,8 @@ struct node_prop_t { LED_COLOR_INIT(3, 4, state_id), \ } }, -static const struct node_prop_t node_array[] = { DT_FOREACH_CHILD( - LED_COLOR_NODE, SET_LED_VALUES) }; +static const struct node_prop_t node_array[] = { DT_INST_FOREACH_CHILD( + 0, SET_LED_VALUES) }; test_export_static enum power_state get_chipset_state(void) { |