ipq40xx: Lyra: update RGB LED-Controller node for 5.10+

Add the reg and color property to each channel node. This
update is to accommodate the multicolor framework.

Refer to:
<https://lore.kernel.org/all/20200622185919.2131-9-dmurphy@ti.com>
<https://lore.kernel.org/all/20210818070209.1540451-1-michal.vokac@ysoft.com>

Note:

There is only a single extremely bright RGB-LED.
The RGB-color channels (i.e.: blue-0, blue-1 and blue-2)
are running in parallel to increase the current delivery
beyond what a single PWM-output on the LED controller
could do.

BugLink: https://github.com/openwrt/openwrt/issues/9851
Reported-By: Thomas Bøge <thomas@boegenielsen.dk>
Tested-By: Thomas Bøge <thomas@boegenielsen.dk>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
This commit is contained in:
Christian Lamparter 2022-05-07 19:41:55 +02:00
parent d65bafa34b
commit 834c9b3f05
2 changed files with 77 additions and 46 deletions

View file

@ -3,6 +3,9 @@
board=$(board_name) board=$(board_name)
case "$board" in case "$board" in
asus,map-ac2200)
migrate_leds ':chan=-'
;;
engenius,emr3500) engenius,emr3500)
migrate_leds "emr3500:=" migrate_leds "emr3500:="
;; ;;

View file

@ -4,6 +4,7 @@
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h> #include <dt-bindings/input/input.h>
#include <dt-bindings/soc/qcom,tcsr.h> #include <dt-bindings/soc/qcom,tcsr.h>
#include <dt-bindings/leds/common.h>
/ { / {
model = "ASUS Lyra MAP-AC2200"; model = "ASUS Lyra MAP-AC2200";
@ -252,69 +253,96 @@
/* 9-channel RGB LED controller */ /* 9-channel RGB LED controller */
compatible = "national,lp5523"; compatible = "national,lp5523";
reg = <0x32>; reg = <0x32>;
clock-mode = [01]; clock-mode = /bits/ 8 <1>;
#address-cells = <1>;
#size-cells = <0>;
led_blue0: blue0 { /*
chan-name = "blue0"; * There is only one single extremely bright RGB-LED.
label = "blue:chan0"; * The RGB-color channels are running in parallel to
led-cur = [fa]; * increase the current delivery capabilities beyond
max-cur = [ff]; * what a single PWM-output of the controller can do.
*/
led_blue0: led@0 {
chan-name = "blue-0";
led-cur = /bits/ 8 <0xfa>;
max-cur = /bits/ 8 <0xff>;
reg = <0>;
color = <LED_COLOR_ID_BLUE>;
function-enumerator = <0>;
}; };
blue1 { led@1 {
chan-name = "blue1"; chan-name = "blue-1";
label = "blue:chan1"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <1>;
color = <LED_COLOR_ID_BLUE>;
function-enumerator = <1>;
}; };
blue2 { led@2 {
chan-name = "blue2"; chan-name = "blue-2";
label = "blue:chan2"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <2>;
color = <LED_COLOR_ID_BLUE>;
function-enumerator = <2>;
}; };
led_green0: green0 { led_green0: led@3 {
chan-name = "green0"; chan-name = "green-0";
label = "green:chan0"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <3>;
color = <LED_COLOR_ID_GREEN>;
function-enumerator = <0>;
}; };
green1 { led@4 {
chan-name = "green1"; chan-name = "green-1";
label = "green:chan1"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <4>;
color = <LED_COLOR_ID_GREEN>;
function-enumerator = <1>;
}; };
green2 { led@5 {
chan-name = "green2"; chan-name = "green-2";
label = "green:chan2"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <5>;
color = <LED_COLOR_ID_GREEN>;
function-enumerator = <2>;
}; };
led_red0: red0 { led_red0: led@6 {
chan-name = "red0"; chan-name = "red-0";
label = "red:chan0"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <6>;
color = <LED_COLOR_ID_RED>;
function-enumerator = <0>;
}; };
red1 { led@7 {
chan-name = "red1"; chan-name = "red-1";
label = "red:chan1"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <7>;
color = <LED_COLOR_ID_RED>;
function-enumerator = <1>;
}; };
red2 { led@8 {
chan-name = "red2"; chan-name = "red-2";
label = "red:chan2"; led-cur = /bits/ 8 <0xfa>;
led-cur = [fa]; max-cur = /bits/ 8 <0xff>;
max-cur = [ff]; reg = <8>;
color = <LED_COLOR_ID_RED>;
function-enumerator = <2>;
}; };
}; };
}; };