diff options
Diffstat (limited to 'docs/zephyr/zephyr_leds.md')
-rw-r--r-- | docs/zephyr/zephyr_leds.md | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/docs/zephyr/zephyr_leds.md b/docs/zephyr/zephyr_leds.md index 3f57aea013..b29b4ab610 100644 --- a/docs/zephyr/zephyr_leds.md +++ b/docs/zephyr/zephyr_leds.md @@ -53,23 +53,23 @@ gpio-led-pins { compatible = "cros-ec,gpio-led-pins"; /* Amber - turn on yellow LED */ color_amber: color-amber { - led-pins = <&gpio_ec_chg_led_y_c1 &gpio_ec_chg_led_b_c1>; - led-values = <1 0>; + led-pins = <&gpio_ec_chg_led_y_c1 1>, + <&gpio_ec_chg_led_b_c1 0>; }; /* Blue - turn on blue LED */ color_blue: color-blue { - led-pins = <&gpio_ec_chg_led_y_c1 &gpio_ec_chg_led_b_c1>; - led-values = <0 1>; + led-pins = <&gpio_ec_chg_led_y_c1 0>, + <&gpio_ec_chg_led_b_c1 1>; }; /* White - turn on both LEDs */ color_white: color-white { - led-pins = <&gpio_ec_chg_led_y_c1 &gpio_ec_chg_led_b_c1>; - led-values = <1 1>; + led-pins = <&gpio_ec_chg_led_y_c1 1>, + <&gpio_ec_chg_led_b_c1 1>; }; /* Off - turn off both LEDs */ color_off: color-off { - led-pins = <&gpio_ec_chg_led_y_c1 &gpio_ec_chg_led_b_c1>; - led-values = <0 0>; + led-pins = <&gpio_ec_chg_led_y_c1 0>, + <&gpio_ec_chg_led_b_c1 0>; }; }; ``` @@ -77,7 +77,7 @@ GPIO LED Pins dts file example: [led_pins_herobrine.dts] #### PWM based LEDs Configure PWM based LEDs with two separate nodes. -The `pwm-leds` node, described in [pwm-leds.yaml], configures the PWM channel and frequency. +The `cros-ec,pwm-pin-config` node, described in [cros-ec,pwm_led_pin_config.yaml], configures the PWM channel and frequency. The `cros-ec,pwm-led-pins` node, described in [cros-ec,pwm_led_pins.yaml], configures the LED colors. PWM LEDs can vary duty-cycle percentage, providing finer color control over GPIO LEDs. @@ -86,14 +86,16 @@ Example: For this example, the board contains dual-channel LED, one channel controls white color intensity, and one channel controls the amber color intensity. To set the LED color to amber, the yellow channel duty-cycle is set to 100 percentage and white channel duty-cycle is set to 0. ``` -pwmleds { - compatible = "pwm-leds"; +pwm_pins { + compatible = "cros-ec,pwm-pin-config"; pwm_y: pwm_y { + #led-pin-cells = <1>; pwms = <&pwm2 0 PWM_HZ(100) PWM_POLARITY_INVERTED>; }; pwm_w: pwm_w { + #led-pin-cells = <1>; pwms = <&pwm3 0 PWM_HZ(100) PWM_POLARITY_INVERTED>; }; }; @@ -103,18 +105,18 @@ pwm-led-pins { pwm-frequency = <100>; /* Amber - turn on yellow LED */ color_amber: color-amber { - led-pwms = <&pwm_y &pwm_w>; - pwm-values = <100 0>; + led-pins = <&pwm_y 100>, + <&pwm_w 0>; }; /* White - turn on white LED */ color_white: color-white { - led-pwms = <&pwm_y &pwm_w>; - pwm-values = <0 100>; + led-pins = <&pwm_y 0>, + <&pwm_w 100>; }; /* Off - turn off both LEDs */ color_off: color-off { - led-pwms = <&pwm_y &pwm_w>; - pwm-values = <0 0>; + led-pins = <&pwm_y 0>, + <&pwm_w 0>; }; }; ``` @@ -196,7 +198,7 @@ TODO: Enable support for ledtest - Look for the gpio/pwm pins in the schematic with which the LEDs are attached to. - In the above snippet, LEDs are configured to use PWM pins and attached to PWM2 and PWM3. -- Add PWM config nodes as shown in [pwm-leds.yaml] and [led_pins_skyrim.dts]. +- Add PWM config nodes as shown in [cros-ec,pwm_led_pin_config.yaml] and [led_pins_skyrim.dts]. - Add pin nodes based on the color of the LEDs attached as shown in [cros-ec,pwm_led_pins.yaml] and [led_pins_skyrim.dts]. Name the nodes according to the LED color for readability. e.g. `color-amber` - Based on the device LED policy, create led_policy nodes as shown in [cros-ec,led_policy.yaml] and [led_policy_skyrim.dts]. @@ -212,10 +214,10 @@ TODO: Enable support for ledtest [cros-ec,led_policy.yaml]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/dts/bindings/leds/cros-ec,led-colors.yaml [cros-ec,gpio_led_pins.yaml]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/dts/bindings/leds/cros-ec,gpio-led-pins.yaml [cros-ec,pwm_led_pins.yaml]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/dts/bindings/leds/cros-ec,pwm-led-pins.yaml -[pwm-leds.yaml]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/third_party/zephyr/main/dts/bindings/led/pwm-leds.yaml -[led_policy_skyrim.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/program/skyrim/led_policy_skyrim.dts -[led_pins_skyrim.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/program/skyrim/led_pins_skyrim.dts -[led_policy_herobrine.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/program/herobrine/led_policy_herobrine.dts -[led_pins_herobrine.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/program/herobrine/led_pins_herobrine.dts +[cros-ec,pwm_led_pin_config.yaml]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/dts/bindings/leds/cros-ec,pwm-led-pin-config.yaml +[led_policy_skyrim.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/projects/skyrim/led_policy_skyrim.dts +[led_pins_skyrim.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/projects/skyrim/led_pins_skyrim.dts +[led_policy_herobrine.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/projects/herobrine/led_policy_herobrine.dts +[led_pins_herobrine.dts]: https://source.chromium.org/chromiumos/chromiumos/codesearch/+/main:src/platform/ec/zephyr/projects/herobrine/led_pins_herobrine.dts [Example CL enabling single port pwm based LEDs]: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3651490 [Example CL enabling dual port gpio based LEDs]: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3635067 |