From 308ce4607687fb2e1cd013f221751139e3cdafdb Mon Sep 17 00:00:00 2001 From: Christian Lamparter Date: Sat, 7 May 2022 19:41:55 +0200 Subject: [PATCH] ipq40xx: Lyra: update RGB LED-Controller node for 5.10+ MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add the reg and color property to each channel node. This update is to accommodate the multicolor framework. Refer to: 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 Tested-By: Thomas Bøge Signed-off-by: Christian Lamparter (cherry picked from commit 834c9b3f055e5ea719f6adfb3fa979e32f2adbd0) --- .../etc/uci-defaults/04_led_migration | 3 + .../arm/boot/dts/qcom-ipq4019-map-ac2200.dts | 122 +++++++++++------- 2 files changed, 78 insertions(+), 47 deletions(-) diff --git a/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration b/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration index ef4d3d037c..e8818a41ed 100644 --- a/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration +++ b/target/linux/ipq40xx/base-files/etc/uci-defaults/04_led_migration @@ -3,6 +3,9 @@ board=$(board_name) case "$board" in +asus,map-ac2200) + migrate_leds ':chan=-' + ;; engenius,emr3500) migrate_leds "emr3500:=" ;; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts index 3b9078bc08..433048dd4b 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-map-ac2200.dts @@ -4,6 +4,7 @@ #include #include #include +#include / { model = "ASUS Lyra MAP-AC2200"; @@ -252,69 +253,96 @@ /* 9-channel RGB LED controller */ compatible = "national,lp5523"; reg = <0x32>; - clock-mode = [01]; - - led_blue0: blue0 { - chan-name = "blue0"; - label = "blue:chan0"; - led-cur = [fa]; - max-cur = [ff]; + clock-mode = /bits/ 8 <1>; + #address-cells = <1>; + #size-cells = <0>; + + /* + * There is only one single extremely bright RGB-LED. + * The RGB-color channels are running in parallel to + * increase the current delivery capabilities beyond + * 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 = ; + function-enumerator = <0>; }; - blue1 { - chan-name = "blue1"; - label = "blue:chan1"; - led-cur = [fa]; - max-cur = [ff]; + led@1 { + chan-name = "blue-1"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <1>; + color = ; + function-enumerator = <1>; }; - blue2 { - chan-name = "blue2"; - label = "blue:chan2"; - led-cur = [fa]; - max-cur = [ff]; + led@2 { + chan-name = "blue-2"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <2>; + color = ; + function-enumerator = <2>; }; - led_green0: green0 { - chan-name = "green0"; - label = "green:chan0"; - led-cur = [fa]; - max-cur = [ff]; + led_green0: led@3 { + chan-name = "green-0"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <3>; + color = ; + function-enumerator = <0>; }; - green1 { - chan-name = "green1"; - label = "green:chan1"; - led-cur = [fa]; - max-cur = [ff]; + led@4 { + chan-name = "green-1"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <4>; + color = ; + function-enumerator = <1>; }; - green2 { - chan-name = "green2"; - label = "green:chan2"; - led-cur = [fa]; - max-cur = [ff]; + led@5 { + chan-name = "green-2"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <5>; + color = ; + function-enumerator = <2>; }; - led_red0: red0 { - chan-name = "red0"; - label = "red:chan0"; - led-cur = [fa]; - max-cur = [ff]; + led_red0: led@6 { + chan-name = "red-0"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <6>; + color = ; + function-enumerator = <0>; }; - red1 { - chan-name = "red1"; - label = "red:chan1"; - led-cur = [fa]; - max-cur = [ff]; + led@7 { + chan-name = "red-1"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <7>; + color = ; + function-enumerator = <1>; }; - red2 { - chan-name = "red2"; - label = "red:chan2"; - led-cur = [fa]; - max-cur = [ff]; + led@8 { + chan-name = "red-2"; + led-cur = /bits/ 8 <0xfa>; + max-cur = /bits/ 8 <0xff>; + reg = <8>; + color = ; + function-enumerator = <2>; }; }; }; -- 2.30.2