diff options
author | Jason Yuan <jasonyuan@google.com> | 2023-04-14 15:58:51 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-04-18 20:46:13 +0000 |
commit | a10cb8394d26d9c369eb5bd1c2ab64f0e955a898 (patch) | |
tree | 693144458c0b6fbea02090fbc3dd8fe4b934f912 | |
parent | 256b891b796853f7be17e2ca59034f08c4ca200b (diff) | |
download | chrome-ec-a10cb8394d26d9c369eb5bd1c2ab64f0e955a898.tar.gz |
zephyr: LED: Reformated led-pins bindings
This CL formats the led-pins devicetree to be more intuitive as part of
the LED driver overhaul. led-policy and led driver logic is unmodified
in this CL and will be added later.
BUG=b:228868616
TEST=twister, power LED verified on Villager, Lazor, Skyrim, Xivu
BRANCH=none
Change-Id: Ia688e872811199447d1e0b11a5533fd8478d2935
Signed-off-by: Jason Yuan <jasonyuan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4426805
Commit-Queue: Wai-Hong Tam <waihong@google.com>
Auto-Submit: zhi cheng yuan <jasonyuan@chromium.org>
Tested-by: zhi cheng yuan <jasonyuan@chromium.org>
Reviewed-by: Wai-Hong Tam <waihong@google.com>
27 files changed, 565 insertions, 593 deletions
diff --git a/zephyr/dts/bindings/leds/cros-ec,gpio-led-pins.yaml b/zephyr/dts/bindings/leds/cros-ec,gpio-led-pins.yaml index f8c5e1b64c..b0310027f9 100644 --- a/zephyr/dts/bindings/leds/cros-ec,gpio-led-pins.yaml +++ b/zephyr/dts/bindings/leds/cros-ec,gpio-led-pins.yaml @@ -9,30 +9,15 @@ compatible: "cros-ec,gpio-led-pins" child-binding: description: | Each child node describes all the GPIO pins that need to be altered to set - a specific color. - e.g. For a board supporting Blue and Amber LEDs - to set LED_AMBER color, - amber LED will need to be set to 1 and blue LED to 0. 1 always turns on - the LED and 0 always turns off the LED. So a node looks like - color-amber { - led-color = "LED_AMBER"; - led-pins = <&gpio_ec_chg_led_y_c1 gpio_ec_chg_led_b_c1>; - led-values = <1 0>; + the color of a specific LED. + e.g. For a board with 2 GPIO pins that make up a battery LED, the node looks + like: + battery_led: battery-led { + led-id = "EC_LED_ID_BATTERY_LED"; + led-pins = <&gpio_ec_chg_led_y_c1 + &gpio_ec_chg_led_w_c1>; }; properties: - led-color: - type: string - required: true - description: | - This property is used to identify pin nodes based on color enum. - It is required by the EC_CMD_LED_CONTROL host command. - enum: - - LED_OFF - - LED_RED - - LED_GREEN - - LED_BLUE - - LED_YELLOW - - LED_WHITE - - LED_AMBER led-id: type: string required: true @@ -47,19 +32,6 @@ child-binding: - EC_LED_ID_RIGHT_LED - EC_LED_ID_RECOVERY_HW_REINIT_LED - EC_LED_ID_SYSRQ_DEBUG_LED - br-color: - type: string - required: false - description: | - This is used in the ectool brightness range APIs. It must match - the enum names defined in ec_commands.h. - enum: - - EC_LED_COLOR_RED - - EC_LED_COLOR_GREEN - - EC_LED_COLOR_BLUE - - EC_LED_COLOR_YELLOW - - EC_LED_COLOR_WHITE - - EC_LED_COLOR_AMBER led-pins: type: phandles required: true @@ -67,9 +39,47 @@ child-binding: This property is used to specify an array of gpio pins to set a particular color. - led-values: - type: array - required: true - description: | - This property is used to specify an array of values to set on the - corresponding led-pins to set a particular color. + child-binding: + description: | + Each grandchild node describes all the colors supported by the child LED. + e.g. For a board supporting Blue and Amber LEDs - to set LED_AMBER color, + amber LED will need to be set to 1 and blue LED to 0. 1 always turns on + the LED and 0 always turns off the LED. So a node looks like + color-amber { + led-color = "LED_AMBER"; + led-values = <1 0>; + }; + properties: + led-color: + type: string + required: true + description: | + This property is used to identify pin nodes based on color enum. + It is required by the EC_CMD_LED_CONTROL host command. + enum: + - LED_OFF + - LED_RED + - LED_GREEN + - LED_BLUE + - LED_YELLOW + - LED_WHITE + - LED_AMBER + br-color: + type: string + required: false + description: | + This is used in the ectool brightness range APIs. It must match + the enum names defined in ec_commands.h. + enum: + - EC_LED_COLOR_RED + - EC_LED_COLOR_GREEN + - EC_LED_COLOR_BLUE + - EC_LED_COLOR_YELLOW + - EC_LED_COLOR_WHITE + - EC_LED_COLOR_AMBER + led-values: + type: array + required: true + description: | + This property is used to specify an array of values to set on the + corresponding led-pins to set a particular color. diff --git a/zephyr/dts/bindings/leds/cros-ec,pwm-led-pins.yaml b/zephyr/dts/bindings/leds/cros-ec,pwm-led-pins.yaml index 0807acefb0..1db1a027d8 100644 --- a/zephyr/dts/bindings/leds/cros-ec,pwm-led-pins.yaml +++ b/zephyr/dts/bindings/leds/cros-ec,pwm-led-pins.yaml @@ -9,29 +9,13 @@ compatible: "cros-ec,pwm-led-pins" child-binding: description: | Each child node describes all the PWM pins that need to be altered to set - a specific color. - e.g. For blue and amber PWM channels, in order to set color amber, a node - looks like this where 100 is PWM duty cycle in percentage. - color-amber { - led-color = "LED_AMBER"; + the color of a specific LED. + e.g. For a battery LED, a node looks like this. + battery_led: battery-led { + led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_led_y &pwm_led_b>; - led-values = <100 0>; }; properties: - led-color: - type: string - required: true - description: | - This property is used to identify pin nodes based on color enum. - It is required by the EC_CMD_LED_CONTROL host command. - enum: - - LED_OFF - - LED_RED - - LED_GREEN - - LED_BLUE - - LED_YELLOW - - LED_WHITE - - LED_AMBER led-id: type: string required: true @@ -46,19 +30,6 @@ child-binding: - EC_LED_ID_RIGHT_LED - EC_LED_ID_RECOVERY_HW_REINIT_LED - EC_LED_ID_SYSRQ_DEBUG_LED - br-color: - type: string - required: false - description: | - This is used in the ectool brightness range APIs. It must match - the enum names defined in ec_commands.h. - enum: - - EC_LED_COLOR_RED - - EC_LED_COLOR_GREEN - - EC_LED_COLOR_BLUE - - EC_LED_COLOR_YELLOW - - EC_LED_COLOR_WHITE - - EC_LED_COLOR_AMBER led-pwms: type: phandles required: true @@ -66,9 +37,46 @@ child-binding: This property is used to specify an array of pwms to set a particular color. - led-values: - type: array - required: true - description: | - This property is used to specify an array of values to set on the - corresponding pwm-pins to set a particular color. + child-binding: + description: | + Each grandchild node describes all the colors supported by the child LED. + e.g. For blue and amber PWM channels, in order to set color amber, a node + looks like this where 100 is PWM duty cycle in percentage. + color-amber { + led-color = "LED_AMBER"; + led-values = <100 0>; + }; + properties: + led-color: + type: string + required: true + description: | + This property is used to identify pin nodes based on color enum. + It is required by the EC_CMD_LED_CONTROL host command. + enum: + - LED_OFF + - LED_RED + - LED_GREEN + - LED_BLUE + - LED_YELLOW + - LED_WHITE + - LED_AMBER + br-color: + type: string + required: false + description: | + This is used in the ectool brightness range APIs. It must match + the enum names defined in ec_commands.h. + enum: + - EC_LED_COLOR_RED + - EC_LED_COLOR_GREEN + - EC_LED_COLOR_BLUE + - EC_LED_COLOR_YELLOW + - EC_LED_COLOR_WHITE + - EC_LED_COLOR_AMBER + led-values: + type: array + required: true + description: | + This property is used to specify an array of values to set on the + corresponding pwm-pins to set a particular color. diff --git a/zephyr/program/corsola/ite_led.dtsi b/zephyr/program/corsola/ite_led.dtsi index 582af0b092..5dd571008e 100644 --- a/zephyr/program/corsola/ite_led.dtsi +++ b/zephyr/program/corsola/ite_led.dtsi @@ -109,42 +109,42 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_power_off: color-power-off { - led-color = "LED_OFF"; + power_led: power-led { led-id = "EC_LED_ID_POWER_LED"; led-pwms = <&led_power_white>; - led-values = <0>; - }; - color_power_white: color-power-white { - led-color = "LED_WHITE"; - br-color = "EC_LED_COLOR_WHITE"; - led-id = "EC_LED_ID_POWER_LED"; - led-pwms = <&led_power_white>; - led-values = <100>; - }; + color_power_off: color-power-off { + led-color = "LED_OFF"; + led-values = <0>; + }; - color_battery_off: color-battery-off { - led-color = "LED_OFF"; - led-id = "EC_LED_ID_BATTERY_LED"; - led-pwms = <&led_battery_amber &led_battery_white>; - led-values = <0 0>; + color_power_white: color-power-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <100>; + }; }; - color_battery_amber: color-battery-amber { - led-color = "LED_AMBER"; - br-color = "EC_LED_COLOR_AMBER"; + battery_led: batter-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&led_battery_amber &led_battery_white>; - led-values = <100 0>; - }; - color_battery_white: color-battery-white { - led-color = "LED_WHITE"; - br-color = "EC_LED_COLOR_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - led-pwms = <&led_battery_amber &led_battery_white>; - led-values = <0 100>; + color_battery_off: color-battery-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + + color_battery_amber: color-battery-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_battery_white: color-battery-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/program/corsola/magikarp/project.overlay b/zephyr/program/corsola/magikarp/project.overlay index 48c823fa0e..3628f6770d 100644 --- a/zephyr/program/corsola/magikarp/project.overlay +++ b/zephyr/program/corsola/magikarp/project.overlay @@ -338,12 +338,15 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - /* Overwrite Power LED white to off */ - color_power_white: color-power-white { - led-color = "LED_WHITE"; + power_led: power-led { led-id = "EC_LED_ID_POWER_LED"; led-pwms = <&led_power_white>; - led-values = <0>; + + /* Overwrite Power LED white to off */ + color_power_white: color-power-white { + led-color = "LED_WHITE"; + led-values = <0>; + }; }; }; diff --git a/zephyr/program/corsola/tentacruel/project.overlay b/zephyr/program/corsola/tentacruel/project.overlay index 370e16e8d1..79e8f4a05b 100644 --- a/zephyr/program/corsola/tentacruel/project.overlay +++ b/zephyr/program/corsola/tentacruel/project.overlay @@ -366,24 +366,15 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - /* Overwrite Power LED white to off */ - color_power_white: color-power-white { - led-color = "LED_WHITE"; + power_led: power-led { led-id = "EC_LED_ID_POWER_LED"; led-pwms = <&led_power_white>; - led-values = <0>; - }; - }; - - pwm-led-pins { - compatible = "cros-ec,pwm-led-pins"; - /* Overwrite Power LED white to off */ - color_power_white: color-power-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_POWER_LED"; - led-pwms = <&led_power_white>; - led-values = <0>; + /* Overwrite Power LED white to off */ + color_power_white: color-power-white { + led-color = "LED_WHITE"; + led-values = <0>; + }; }; }; diff --git a/zephyr/program/corsola/voltorb/project.overlay b/zephyr/program/corsola/voltorb/project.overlay index 3ab5badcb3..7ae230a47e 100644 --- a/zephyr/program/corsola/voltorb/project.overlay +++ b/zephyr/program/corsola/voltorb/project.overlay @@ -185,27 +185,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&led_amber &led_blue>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&led_amber &led_blue>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_blue: color_blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pwms = <&led_amber &led_blue>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_blue: color_blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 100>; + }; }; }; @@ -287,4 +286,3 @@ &adc0_chan3_gp42 &adc0_chan8_gpf1>; }; - diff --git a/zephyr/program/geralt/geralt/led.dtsi b/zephyr/program/geralt/geralt/led.dtsi index 905d5f13dd..f88fd99d76 100644 --- a/zephyr/program/geralt/geralt/led.dtsi +++ b/zephyr/program/geralt/geralt/led.dtsi @@ -66,30 +66,27 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_power_off: color-power-off { - led-color = "LED_OFF"; + power_led: power-led { led-id = "EC_LED_ID_POWER_LED"; led-pwms = <&led_power_red &led_power_green &led_power_blue>; - led-values = <0 0 0>; - }; - color_power_green: color-power-green { - led-color = "LED_GREEN"; - br-color = "EC_LED_COLOR_GREEN"; - led-id = "EC_LED_ID_POWER_LED"; - led-pwms = <&led_power_red &led_power_green - &led_power_blue>; - led-values = <0 100 0>; - }; + color_power_off: color-power-off { + led-color = "LED_OFF"; + led-values = <0 0 0>; + }; - color_power_blue: color-power-blue { - led-color = "LED_BLUE"; - br-color = "EC_LED_COLOR_BLUE"; - led-id = "EC_LED_ID_POWER_LED"; - led-pwms = <&led_power_red &led_power_green - &led_power_blue>; - led-values = <0 0 100>; + color_power_green: color-power-green { + led-color = "LED_GREEN"; + br-color = "EC_LED_COLOR_GREEN"; + led-values = <0 100 0>; + }; + + color_power_blue: color-power-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 0 100>; + }; }; }; }; diff --git a/zephyr/program/herobrine/evoker/led_pins.dtsi b/zephyr/program/herobrine/evoker/led_pins.dtsi index 8365691f4d..3b739c4ce3 100644 --- a/zephyr/program/herobrine/evoker/led_pins.dtsi +++ b/zephyr/program/herobrine/evoker/led_pins.dtsi @@ -7,58 +7,50 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_power_off: color-power-off { - led-color = "LED_OFF"; + power_led: power-led { led-id = "EC_LED_ID_POWER_LED"; led-pins = <&gpio_ec_chg_led_w_c1>; - led-values = <0>; - }; - color_power_white: color-power-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_POWER_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_ec_chg_led_w_c1>; - led-values = <1>; - }; + color_power_off: color-power-off { + led-color = "LED_OFF"; + led-values = <0>; + }; - color_battery_off: color-battery-off { - led-color = "LED_OFF"; - led-id = "EC_LED_ID_BATTERY_LED"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0 - &gpio_ec_chg_led_r_c0>; - led-values = <0 0 0>; + color_power_white: color-power-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <1>; + }; }; - color_battery_amber: color-battery-amber { - led-color = "LED_AMBER"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; led-pins = <&gpio_ec_chg_led_y_c0 &gpio_ec_chg_led_w_c0 &gpio_ec_chg_led_r_c0>; - led-values = <1 0 0>; - }; - color_battery_white: color-battery-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0 - &gpio_ec_chg_led_r_c0>; - led-values = <0 1 0>; - }; + color_battery_off: color-battery-off { + led-color = "LED_OFF"; + led-values = <0 0 0>; + }; - color_battery_red: color-battery-red { - led-color = "LED_RED"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_RED"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0 - &gpio_ec_chg_led_r_c0>; - led-values = <0 0 1>; + color_battery_amber: color-battery-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <1 0 0>; + }; + + color_battery_white: color-battery-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 1 0>; + }; + + color_battery_red: color-battery-red { + led-color = "LED_RED"; + br-color = "EC_LED_COLOR_RED"; + led-values = <0 0 1>; + }; }; }; }; diff --git a/zephyr/program/herobrine/herobrine/led_pins.dtsi b/zephyr/program/herobrine/herobrine/led_pins.dtsi index 23a0271e69..f3580fc491 100644 --- a/zephyr/program/herobrine/herobrine/led_pins.dtsi +++ b/zephyr/program/herobrine/herobrine/led_pins.dtsi @@ -7,56 +7,52 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off_left: color-off-left { - led-color = "LED_OFF"; + left_led: left-led { led-id = "EC_LED_ID_LEFT_LED"; led-pins = <&gpio_ec_chg_led_y_c1 &gpio_ec_chg_led_w_c1>; - led-values = <0 0>; - }; - color_off_right: color-off-right { - led-color = "LED_OFF"; - led-id = "EC_LED_ID_RIGHT_LED"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0>; - led-values = <0 0>; - }; + color_off_left: color-off-left { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_amber_left: color-amber-left { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_LEFT_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pins = <&gpio_ec_chg_led_y_c1 - &gpio_ec_chg_led_w_c1>; - led-values = <1 0>; + color_amber_left: color-amber-left { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <1 0>; + }; + + color_white_left: color-white-left { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 1>; + }; }; - color_amber_right: color-amber-right { - led-color = "LED_AMBER"; + right_led: right-led { led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_AMBER"; led-pins = <&gpio_ec_chg_led_y_c0 &gpio_ec_chg_led_w_c0>; - led-values = <1 0>; - }; - color_white_left: color-white-left { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_LEFT_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_ec_chg_led_y_c1 - &gpio_ec_chg_led_w_c1>; - led-values = <0 1>; - }; + color_off_right: color-off-right { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_white_right: color-white-right { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0>; - led-values = <0 1>; + + color_amber_right: color-amber-right { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <1 0>; + }; + + + color_white_right: color-white-right { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 1>; + }; }; }; }; diff --git a/zephyr/program/herobrine/hoglin/led_pins.dtsi b/zephyr/program/herobrine/hoglin/led_pins.dtsi index b70c385b98..1f5d649215 100644 --- a/zephyr/program/herobrine/hoglin/led_pins.dtsi +++ b/zephyr/program/herobrine/hoglin/led_pins.dtsi @@ -7,30 +7,27 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pins = <&gpio_ec_chg_led_b_c0 &gpio_ec_chg_led_r_c0>; - led-values = <0 0>; - }; - color_blue: color-blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pins = <&gpio_ec_chg_led_b_c0 - &gpio_ec_chg_led_r_c0>; - led-values = <1 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_red: color-red { - led-color = "LED_RED"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_RED"; - led-pins = <&gpio_ec_chg_led_b_c0 - &gpio_ec_chg_led_r_c0>; - led-values = <0 1>; + color_blue: color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <1 0>; + }; + + color_red: color-red { + led-color = "LED_RED"; + br-color = "EC_LED_COLOR_RED"; + led-values = <0 1>; + }; }; }; }; diff --git a/zephyr/program/herobrine/villager/led_pins.dtsi b/zephyr/program/herobrine/villager/led_pins.dtsi index 2a74fce58c..f171b6f656 100644 --- a/zephyr/program/herobrine/villager/led_pins.dtsi +++ b/zephyr/program/herobrine/villager/led_pins.dtsi @@ -7,30 +7,27 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pins = <&gpio_ec_chg_led_y_c0 &gpio_ec_chg_led_b_c0>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_b_c0>; - led-values = <1 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_blue: color-blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_b_c0>; - led-values = <0 1>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <1 0>; + }; + + color_blue: color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 1>; + }; }; }; }; diff --git a/zephyr/program/herobrine/zombie/led_pins.dtsi b/zephyr/program/herobrine/zombie/led_pins.dtsi index 2a74fce58c..f171b6f656 100644 --- a/zephyr/program/herobrine/zombie/led_pins.dtsi +++ b/zephyr/program/herobrine/zombie/led_pins.dtsi @@ -7,30 +7,27 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pins = <&gpio_ec_chg_led_y_c0 &gpio_ec_chg_led_b_c0>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_b_c0>; - led-values = <1 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_blue: color-blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_b_c0>; - led-values = <0 1>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <1 0>; + }; + + color_blue: color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 1>; + }; }; }; }; diff --git a/zephyr/program/myst/myst/led_pins.dtsi b/zephyr/program/myst/myst/led_pins.dtsi index 29c33f7457..fa93f388a3 100644 --- a/zephyr/program/myst/myst/led_pins.dtsi +++ b/zephyr/program/myst/myst/led_pins.dtsi @@ -17,27 +17,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_y &pwm_w>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_white: color-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/program/nissa/uldren/led_pins.dtsi b/zephyr/program/nissa/uldren/led_pins.dtsi index e9003ffc30..03f9d61df0 100644 --- a/zephyr/program/nissa/uldren/led_pins.dtsi +++ b/zephyr/program/nissa/uldren/led_pins.dtsi @@ -19,27 +19,25 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_led_y_c0 &pwm_led_w_c0>; - led-values = <0 0>; - }; - - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_led_y_c0 &pwm_led_w_c0>; - led-values = <100 0>; - }; - - color_white: color-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwm_led_y_c0 &pwm_led_w_c0>; - led-values = <0 100>; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; }; @@ -59,4 +57,3 @@ pinctrl-0 = <&pwm2_gpc4>; pinctrl-names = "default"; }; - diff --git a/zephyr/program/nissa/xivu/led_pins.dtsi b/zephyr/program/nissa/xivu/led_pins.dtsi index e7efa3e96c..40817eada7 100644 --- a/zephyr/program/nissa/xivu/led_pins.dtsi +++ b/zephyr/program/nissa/xivu/led_pins.dtsi @@ -23,30 +23,27 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_led_y_c0 &pwm_led_y_c1 &pwm_led_w_c0 &pwm_led_w_c1>; - led-values = <0 0 0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_led_y_c0 &pwm_led_y_c1 - &pwm_led_w_c0 &pwm_led_w_c1>; - led-values = <50 50 0 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0 0 0>; + }; - color_white: color-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwm_led_y_c0 &pwm_led_y_c1 - &pwm_led_w_c0 &pwm_led_w_c1>; - led-values = <0 0 50 50>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <50 50 0 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 0 50 50>; + }; }; }; }; diff --git a/zephyr/program/rex/rex/led_pins.dtsi b/zephyr/program/rex/rex/led_pins.dtsi index e1d08ab9d2..7a4ff16273 100644 --- a/zephyr/program/rex/rex/led_pins.dtsi +++ b/zephyr/program/rex/rex/led_pins.dtsi @@ -7,50 +7,49 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off_left: color-off-left { - led-color = "LED_OFF"; + left_led: left-led { led-id = "EC_LED_ID_LEFT_LED"; led-pins = <&gpio_led_1_l &gpio_led_2_l>; - led-values = <1 1>; - }; + color_off_left: color-off-left { + led-color = "LED_OFF"; + led-values = <1 1>; + }; - color_off_right: color-off-right { - led-color = "LED_OFF"; - led-id = "EC_LED_ID_RIGHT_LED"; - led-pins = <&gpio_led_3_l &gpio_led_4_l>; - led-values = <1 1>; - }; + color_amber_left: color-amber-left { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <0 1>; + }; - color_amber_left: color-amber-left { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_LEFT_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pins = <&gpio_led_1_l &gpio_led_2_l>; - led-values = <0 1>; + color_white_left: color-white-left { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <1 0>; + }; }; - color_amber_right: color-amber-right { - led-color = "LED_AMBER"; + right_led: right-led { led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_AMBER"; led-pins = <&gpio_led_3_l &gpio_led_4_l>; - led-values = <0 1>; - }; - color_white_left: color-white-left { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_LEFT_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_led_1_l &gpio_led_2_l>; - led-values = <1 0>; - }; + color_off_right: color-off-right { + led-color = "LED_OFF"; + led-values = <1 1>; + }; - color_white_right: color-white-right { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_led_3_l &gpio_led_4_l>; - led-values = <1 0>; + + color_amber_right: color-amber-right { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <0 1>; + }; + + + color_white_right: color-white-right { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <1 0>; + }; }; }; }; diff --git a/zephyr/program/skyrim/crystaldrift/led_pins.dtsi b/zephyr/program/skyrim/crystaldrift/led_pins.dtsi index b7c7325ded..ec0d93de8d 100644 --- a/zephyr/program/skyrim/crystaldrift/led_pins.dtsi +++ b/zephyr/program/skyrim/crystaldrift/led_pins.dtsi @@ -10,29 +10,26 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pins = <&gpio_ec_chg_led_r &gpio_ec_chg_led_b>; - led-values = <0 0>; - }; - color_red: color-red { - led-color = "LED_RED"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_RED"; - led-pins = <&gpio_ec_chg_led_r &gpio_ec_chg_led_b>; - led-values = <1 0>; - }; - - color_blue: color-blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pins = <&gpio_ec_chg_led_r &gpio_ec_chg_led_b>; - led-values = <0 1>; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + + color_red: color-red { + led-color = "LED_RED"; + br-color = "EC_LED_COLOR_RED"; + led-values = <1 0>; + }; + + color_blue: color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 1>; + }; }; }; }; - - diff --git a/zephyr/program/skyrim/frostflow/led_pins.dtsi b/zephyr/program/skyrim/frostflow/led_pins.dtsi index 78b9a59c40..28766c5271 100644 --- a/zephyr/program/skyrim/frostflow/led_pins.dtsi +++ b/zephyr/program/skyrim/frostflow/led_pins.dtsi @@ -17,27 +17,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_y &pwm_w>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_white: color-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/program/skyrim/markarth/led_pins.dtsi b/zephyr/program/skyrim/markarth/led_pins.dtsi index c662dcc575..73a8b8c8fa 100644 --- a/zephyr/program/skyrim/markarth/led_pins.dtsi +++ b/zephyr/program/skyrim/markarth/led_pins.dtsi @@ -17,27 +17,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_y &pwm_w>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_blue: color-blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_blue: color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/program/skyrim/skyrim/led_pins.dtsi b/zephyr/program/skyrim/skyrim/led_pins.dtsi index 78b9a59c40..28766c5271 100644 --- a/zephyr/program/skyrim/skyrim/led_pins.dtsi +++ b/zephyr/program/skyrim/skyrim/led_pins.dtsi @@ -17,27 +17,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_y &pwm_w>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_white: color-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/program/skyrim/winterhold/led_pins.dtsi b/zephyr/program/skyrim/winterhold/led_pins.dtsi index 78b9a59c40..28766c5271 100644 --- a/zephyr/program/skyrim/winterhold/led_pins.dtsi +++ b/zephyr/program/skyrim/winterhold/led_pins.dtsi @@ -17,27 +17,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_y &pwm_w>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_white: color-white { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwm_y &pwm_w>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_white: color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/program/trogdor/lazor/pwm_led.dts b/zephyr/program/trogdor/lazor/pwm_led.dts index f8375b3596..507019f4ef 100644 --- a/zephyr/program/trogdor/lazor/pwm_led.dts +++ b/zephyr/program/trogdor/lazor/pwm_led.dts @@ -17,27 +17,26 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color_off: color-off { - led-color = "LED_OFF"; + battery_led: battery-led { led-id = "EC_LED_ID_BATTERY_LED"; led-pwms = <&pwm_y &pwm_b>; - led-values = <0 0>; - }; - color_amber: color-amber { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwm_y &pwm_b>; - led-values = <100 0>; - }; + color_off: color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; - color_blue: color-blue { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_BATTERY_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pwms = <&pwm_y &pwm_b>; - led-values = <0 100>; + color_amber: color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + + color_blue: color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <0 100>; + }; }; }; }; diff --git a/zephyr/shim/src/led_driver/led.c b/zephyr/shim/src/led_driver/led.c index 19324487e9..322841d61b 100644 --- a/zephyr/shim/src/led_driver/led.c +++ b/zephyr/shim/src/led_driver/led.c @@ -36,11 +36,13 @@ struct led_color_node_t { #define DECLARE_PINS_NODE(id) extern struct led_pins_node_t PINS_NODE(id); #if CONFIG_PLATFORM_EC_LED_DT_PWM -DT_FOREACH_CHILD(DT_COMPAT_GET_ANY_STATUS_OKAY(cros_ec_pwm_led_pins), - DECLARE_PINS_NODE) +DT_FOREACH_CHILD_STATUS_OKAY_VARGS( + DT_COMPAT_GET_ANY_STATUS_OKAY(cros_ec_pwm_led_pins), DT_FOREACH_CHILD, + 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) +DT_FOREACH_CHILD_STATUS_OKAY_VARGS( + DT_COMPAT_GET_ANY_STATUS_OKAY(cros_ec_gpio_led_pins), DT_FOREACH_CHILD, + DECLARE_PINS_NODE) #endif /* diff --git a/zephyr/shim/src/led_driver/led_gpio.c b/zephyr/shim/src/led_driver/led_gpio.c index dba2571d9c..2419663859 100644 --- a/zephyr/shim/src/led_driver/led_gpio.c +++ b/zephyr/shim/src/led_driver/led_gpio.c @@ -20,23 +20,24 @@ LOG_MODULE_REGISTER(gpio_led, LOG_LEVEL_ERR); BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) == 1, "Exactly one instance of cros-ec,gpio-led-pins should be defined."); -#define SET_PIN(node_id, prop, i) \ - { .signal = GPIO_SIGNAL(DT_PHANDLE_BY_IDX(node_id, prop, i)), \ - .val = DT_PROP_BY_IDX(node_id, led_values, i) }, +#define SET_PIN(node_id, prop, i) \ + { .signal = GPIO_SIGNAL( \ + DT_PHANDLE_BY_IDX(DT_PARENT(node_id), led_pins, i)), \ + .val = DT_PROP_BY_IDX(node_id, prop, i) }, #define SET_GPIO_PIN(node_id) \ - { DT_FOREACH_PROP_ELEM(node_id, led_pins, SET_PIN) }; + { DT_FOREACH_PROP_ELEM(node_id, led_values, SET_PIN) }; #define GEN_PINS_ARRAY(id) struct gpio_pin_t PINS_ARRAY(id)[] = SET_GPIO_PIN(id) -DT_INST_FOREACH_CHILD(0, GEN_PINS_ARRAY) +DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(0, DT_FOREACH_CHILD, GEN_PINS_ARRAY) #define SET_PIN_NODE(node_id) \ { .led_color = GET_PROP(node_id, led_color), \ - .led_id = GET_PROP(node_id, led_id), \ + .led_id = GET_PROP(DT_PARENT(node_id), led_id), \ .br_color = GET_COLOR_PROP_NVE(node_id, br_color), \ .gpio_pins = PINS_ARRAY(node_id), \ - .pins_count = DT_PROP_LEN(node_id, led_pins) }; + .pins_count = DT_PROP_LEN(node_id, led_values) }; /* * Initialize led_pins_node_t struct for each pin node defined @@ -44,14 +45,16 @@ DT_INST_FOREACH_CHILD(0, GEN_PINS_ARRAY) #define GEN_PINS_NODES(id) \ const struct led_pins_node_t PINS_NODE(id) = SET_PIN_NODE(id) -DT_INST_FOREACH_CHILD(0, GEN_PINS_NODES) +DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(0, DT_FOREACH_CHILD, GEN_PINS_NODES) /* * Array of pointers to each pin node */ #define PINS_NODE_PTR(id) &PINS_NODE(id), -const struct led_pins_node_t *pins_node[] = { DT_INST_FOREACH_CHILD( - 0, PINS_NODE_PTR) }; +const struct led_pins_node_t *pins_node[] = { + DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(0, DT_FOREACH_CHILD, + PINS_NODE_PTR) +}; /* * Set all the GPIO pins defined in the node to the defined value, diff --git a/zephyr/shim/src/led_driver/led_pwm.c b/zephyr/shim/src/led_driver/led_pwm.c index bad887a86f..a747c3d3b9 100644 --- a/zephyr/shim/src/led_driver/led_pwm.c +++ b/zephyr/shim/src/led_driver/led_pwm.c @@ -31,28 +31,30 @@ BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) == 1, * duty_cycle = 50 %, pulse_ns = (2000000*50)/100 = 1000000ns */ -#define SET_PIN(node_id, prop, i) \ - { \ - .pwm = PWM_DT_SPEC_GET(DT_PHANDLE_BY_IDX(node_id, prop, i)), \ - .pulse_ns = DIV_ROUND_NEAREST( \ - DT_PWMS_PERIOD(DT_PHANDLE_BY_IDX(node_id, prop, i)) * \ - DT_PROP_BY_IDX(node_id, led_values, i), \ - 100), \ +#define SET_PIN(node_id, prop, i) \ + { \ + .pwm = PWM_DT_SPEC_GET( \ + DT_PHANDLE_BY_IDX(DT_PARENT(node_id), led_pwms, i)), \ + .pulse_ns = DIV_ROUND_NEAREST( \ + DT_PWMS_PERIOD(DT_PHANDLE_BY_IDX(DT_PARENT(node_id), \ + led_pwms, i)) * \ + DT_PROP_BY_IDX(node_id, prop, i), \ + 100), \ }, #define SET_PWM_PIN(node_id) \ - { DT_FOREACH_PROP_ELEM(node_id, led_pwms, SET_PIN) }; + { DT_FOREACH_PROP_ELEM(node_id, led_values, SET_PIN) }; #define GEN_PINS_ARRAY(id) struct pwm_pin_t PINS_ARRAY(id)[] = SET_PWM_PIN(id) -DT_INST_FOREACH_CHILD(0, GEN_PINS_ARRAY) +DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(0, DT_FOREACH_CHILD, GEN_PINS_ARRAY) #define SET_PIN_NODE(node_id) \ { .led_color = GET_PROP(node_id, led_color), \ - .led_id = GET_PROP(node_id, led_id), \ + .led_id = GET_PROP(DT_PARENT(node_id), led_id), \ .br_color = GET_COLOR_PROP_NVE(node_id, br_color), \ .pwm_pins = PINS_ARRAY(node_id), \ - .pins_count = DT_PROP_LEN(node_id, led_pwms) }; + .pins_count = DT_PROP_LEN(node_id, led_values) }; /* * Initialize led_pins_node_t struct for each pin node defined @@ -60,14 +62,17 @@ DT_INST_FOREACH_CHILD(0, GEN_PINS_ARRAY) #define GEN_PINS_NODES(id) \ const struct led_pins_node_t PINS_NODE(id) = SET_PIN_NODE(id) -DT_INST_FOREACH_CHILD(0, GEN_PINS_NODES) +DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(0, DT_FOREACH_CHILD, GEN_PINS_NODES) /* * Array of pointers to each pin node */ #define PINS_NODE_PTR(id) &PINS_NODE(id), -const struct led_pins_node_t *pins_node[] = { DT_INST_FOREACH_CHILD( - 0, PINS_NODE_PTR) }; + +const struct led_pins_node_t *pins_node[] = { + DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(0, DT_FOREACH_CHILD, + PINS_NODE_PTR) +}; /* * Set all the PWM channels defined in the node to the defined value, diff --git a/zephyr/test/drivers/boards/native_posix.overlay b/zephyr/test/drivers/boards/native_posix.overlay index eab608fc47..ac5945f586 100644 --- a/zephyr/test/drivers/boards/native_posix.overlay +++ b/zephyr/test/drivers/boards/native_posix.overlay @@ -1033,45 +1033,44 @@ pwm-led-pins { compatible = "cros-ec,pwm-led-pins"; - color-off-left { - led-color = "LED_OFF"; + left-led { led-id = "EC_LED_ID_LEFT_LED"; led-pwms = <&pwmled_blue_left &pwmled_white_left>; - led-values = <0 0>; - }; - color-off-right { - led-color = "LED_OFF"; - led-id = "EC_LED_ID_RIGHT_LED"; - led-pwms = <&pwmled_amber_right &pwmled_white_right>; - led-values = <0 0>; - }; - color-blue-left { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_LEFT_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pwms = <&pwmled_blue_left &pwmled_white_left>; - led-values = <100 0>; - }; - color-amber-right { - led-color = "LED_AMBER"; - led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_AMBER"; - led-pwms = <&pwmled_amber_right &pwmled_white_right>; - led-values = <100 0>; - }; - color-white-left { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_LEFT_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pwms = <&pwmled_blue_left &pwmled_white_left>; - led-values = <0 100>; + + color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + color-blue { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <100 0>; + }; + color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; - color-white-right { - led-color = "LED_WHITE"; + + right-led { led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_WHITE"; led-pwms = <&pwmled_amber_right &pwmled_white_right>; - led-values = <0 100>; + + color-off { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + color-amber { + led-color = "LED_AMBER"; + br-color = "EC_LED_COLOR_AMBER"; + led-values = <100 0>; + }; + color-white { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 100>; + }; }; }; diff --git a/zephyr/test/drivers/led_driver/led_pins.dts b/zephyr/test/drivers/led_driver/led_pins.dts index cf57102a3c..dc672f56cd 100644 --- a/zephyr/test/drivers/led_driver/led_pins.dts +++ b/zephyr/test/drivers/led_driver/led_pins.dts @@ -14,51 +14,44 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; - color_off_left: color-off-left { - led-color = "LED_OFF"; + left-led { led-id = "EC_LED_ID_SYSRQ_DEBUG_LED"; led-pins = <&gpio_ec_chg_led_y_c1 &gpio_ec_chg_led_w_c1>; - led-values = <0 0>; + color_off_left: color-off-left { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + color_blue_left: color-blue-left { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <1 0>; + }; + color_white_left: color-white-left { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 1>; + }; }; - color_off_right: color-off-right { - led-color = "LED_OFF"; - led-id = "EC_LED_ID_RIGHT_LED"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0>; - led-values = <0 0>; - }; - color_blue_left: color-blue-left { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_SYSRQ_DEBUG_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pins = <&gpio_ec_chg_led_y_c1 - &gpio_ec_chg_led_w_c1>; - led-values = <1 0>; - }; - color_blue_right: color-blue-right { - led-color = "LED_BLUE"; - led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_BLUE"; - led-pins = <&gpio_ec_chg_led_y_c0 - &gpio_ec_chg_led_w_c0>; - led-values = <1 0>; - }; - color_white_left: color-white-left { - led-color = "LED_WHITE"; - led-id = "EC_LED_ID_SYSRQ_DEBUG_LED"; - br-color = "EC_LED_COLOR_WHITE"; - led-pins = <&gpio_ec_chg_led_y_c1 - &gpio_ec_chg_led_w_c1>; - led-values = <0 1>; - }; - color_white_right: color-white-right { - led-color = "LED_WHITE"; + + right-led { led-id = "EC_LED_ID_RIGHT_LED"; - br-color = "EC_LED_COLOR_WHITE"; led-pins = <&gpio_ec_chg_led_y_c0 &gpio_ec_chg_led_w_c0>; - led-values = <0 1>; + color_off_right: color-off-right { + led-color = "LED_OFF"; + led-values = <0 0>; + }; + color_blue_right: color-blue-right { + led-color = "LED_BLUE"; + br-color = "EC_LED_COLOR_BLUE"; + led-values = <1 0>; + }; + color_white_right: color-white-right { + led-color = "LED_WHITE"; + br-color = "EC_LED_COLOR_WHITE"; + led-values = <0 1>; + }; }; }; }; |