[openwrt/openwrt] mediatek: add LED support for Xiaomi Redmi AX6000

LEDE Commits lede-commits at lists.infradead.org
Fri Dec 16 05:42:39 PST 2022


981213 pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/d9e13625810edf7ca8353ec5c23b47fb59606a3d

commit d9e13625810edf7ca8353ec5c23b47fb59606a3d
Author: Furong Xu <xfr at outlook.com>
AuthorDate: Fri Dec 16 21:21:33 2022 +0800

    mediatek: add LED support for Xiaomi Redmi AX6000
    
    add DT nodes and default package for the LEDs on Redmi AX6000
    
    Signed-off-by: Furong Xu <xfr at outlook.com>
    Signed-off-by: Chuanhong Guo <gch981213 at gmail.com>
---
 .../dts/mt7986a-xiaomi-redmi-router-ax6000.dts     | 38 ++++++++++++++++++++++
 .../filogic/base-files/etc/board.d/01_leds         | 16 +++++++++
 target/linux/mediatek/image/filogic.mk             |  1 +
 3 files changed, 55 insertions(+)

diff --git a/target/linux/mediatek/dts/mt7986a-xiaomi-redmi-router-ax6000.dts b/target/linux/mediatek/dts/mt7986a-xiaomi-redmi-router-ax6000.dts
index 7c590d22e2..31112664c2 100644
--- a/target/linux/mediatek/dts/mt7986a-xiaomi-redmi-router-ax6000.dts
+++ b/target/linux/mediatek/dts/mt7986a-xiaomi-redmi-router-ax6000.dts
@@ -3,6 +3,7 @@
 /dts-v1/;
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 
 #include "mt7986a.dtsi"
 
@@ -12,6 +13,10 @@
 
 	aliases {
 		serial0 = &uart0;
+		led-boot = &led_status_rgb;
+		led-failsafe = &led_status_rgb;
+		led-running = &led_status_rgb;
+		led-upgrade = &led_status_rgb;
 	};
 
 	chosen {
@@ -95,6 +100,13 @@
 		};
 	};
 
+	spi_led_pins: spic-pins-29-to-32 {
+		mux {
+			function = "spi";
+			groups = "spi1_2";
+		};
+	};
+
 	wf_2g_5g_pins: wf_2g_5g-pins {
 		mux {
 			function = "wifi";
@@ -202,6 +214,32 @@
 	};
 };
 
+&spi1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi_led_pins>;
+	status = "okay";
+
+	ws2812b at 0 {
+		#address-cells = <1>;
+		#size-cells = <0>;
+		compatible = "worldsemi,ws2812b";
+		reg = <0>;
+		spi-max-frequency = <3000000>;
+
+		led_status_rgb: led at 0 {
+			reg = <0>;
+			label = "rgb:status";
+			color-index = <LED_COLOR_ID_RED LED_COLOR_ID_GREEN LED_COLOR_ID_BLUE>;
+		};
+
+		led_network_rgb: led at 1 {
+			reg = <1>;
+			label = "rgb:network";
+			color-index = <LED_COLOR_ID_RED LED_COLOR_ID_GREEN LED_COLOR_ID_BLUE>;
+		};
+	};
+};
+
 &switch {
 	ports {
 		#address-cells = <1>;
diff --git a/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
new file mode 100644
index 0000000000..f851c7ed54
--- /dev/null
+++ b/target/linux/mediatek/filogic/base-files/etc/board.d/01_leds
@@ -0,0 +1,16 @@
+. /lib/functions/leds.sh
+. /lib/functions/uci-defaults.sh
+
+board=$(board_name)
+
+board_config_update
+
+case $board in
+xiaomi,redmi-router-ax6000)
+	ucidef_set_led_netdev "wan" "wan" "rgb:network" "wan"
+	;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/mediatek/image/filogic.mk b/target/linux/mediatek/image/filogic.mk
index 1ece1465c2..5dbeedb64c 100644
--- a/target/linux/mediatek/image/filogic.mk
+++ b/target/linux/mediatek/image/filogic.mk
@@ -130,6 +130,7 @@ define Device/xiaomi_redmi-router-ax6000
   DEVICE_MODEL := Redmi Router AX6000
   DEVICE_DTS := mt7986a-xiaomi-redmi-router-ax6000
   DEVICE_DTS_DIR := ../dts
+  DEVICE_PACKAGES := kmod-leds-ws2812b
   KERNEL_LOADADDR := 0x48000000
   UBINIZE_OPTS := -E 5
   BLOCKSIZE := 128k




More information about the lede-commits mailing list