[openwrt/openwrt] mvebu: fix LEDs on Fortinet FortiGate devices

LEDE Commits lede-commits at lists.infradead.org
Sun Apr 14 10:48:13 PDT 2024


hauke pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/5038ec5bba5ccdaf9a78d8fa4dc8ef910d554bc1

commit 5038ec5bba5ccdaf9a78d8fa4dc8ef910d554bc1
Author: INAGAKI Hiroshi <musashino.open at gmail.com>
AuthorDate: Sat Feb 17 19:27:42 2024 +0900

    mvebu: fix LEDs on Fortinet FortiGate devices
    
    On Fortinet FortiGate 30E/50E, some multiple LEDs have no "function"
    property and only "color" property is available for the new binding of
    LED on Linux Kernel.
    9d93b6d091 ("mvebu: drop redundant label with new LED color/function
    format") removes "label" property from LEDs, then, multiple "<color>:"
    (ex.: "green:"/"red:"/"amber:") will be appeared as LED names and
    renamed to "<color>:_<num>" (ex.: "green:_1", "green:_2", ...) by
    kernel.
    
    log:
    
    [   12.425170] leds-gpio gpio-leds: Led green: renamed to green:_1 due to name collision
    [   12.520390] leds-gpio gpio-leds: Led amber: renamed to amber:_1 due to name collision
    [   12.614931] leds-gpio gpio-leds: Led green: renamed to green:_2 due to name collision
    [   12.709895] leds-gpio gpio-leds: Led green: renamed to green:_3 due to name collision
    [   12.804439] leds-gpio gpio-leds: Led amber: renamed to amber:_2 due to name collision
    [   12.898969] leds-gpio gpio-leds: Led green: renamed to green:_4 due to name collision
    [   12.993504] leds-gpio gpio-leds: Led amber: renamed to amber:_3 due to name collision
    [   13.088033] leds-gpio gpio-leds: Led green: renamed to green:_5 due to name collision
    [   13.182570] leds-gpio gpio-leds: Led green: renamed to green:_6 due to name collision
    [   13.277103] leds-gpio gpio-leds: Led amber: renamed to amber:_4 due to name collision
    [   13.371636] leds-gpio gpio-leds: Led green: renamed to green:_7 due to name collision
    
    /sys/class/leds:
    
    root at OpenWrt:/# ls /sys/class/leds/
    amber:        amber:_4      green:_2      green:_6      red:alarm
    amber:_1      amber:alarm   green:_3      green:_7      red:status
    amber:_2      green:        green:_4      green:status
    amber:_3      green:_1      green:_5      red:
    
    Fix this issue by adding missing "function" (and "function-enumerator")
    property those to LEDs on Fortinet FortiGate devices.
    Note: there is no appropriate function for "ha" LEDs in
    dt-bindings/leds/common.h, so use the hardcoded string for them instead.
    
    Fixes: 9d93b6d091 ("mvebu: drop redundant label with new LED color/function format")
    Signed-off-by: INAGAKI Hiroshi <musashino.open at gmail.com>
---
 .../arch/arm/boot/dts/armada-385-fortinet-fg-30e.dts   |  2 ++
 .../arch/arm/boot/dts/armada-385-fortinet-fg-50e.dts   |  8 ++++++++
 .../arch/arm/boot/dts/armada-385-fortinet-fg-x0e.dtsi  | 18 ++++++++++++++++++
 .../boot/dts/marvell/armada-385-fortinet-fg-30e.dts    |  2 ++
 .../boot/dts/marvell/armada-385-fortinet-fg-50e.dts    |  8 ++++++++
 .../boot/dts/marvell/armada-385-fortinet-fg-x0e.dtsi   | 18 ++++++++++++++++++
 6 files changed, 56 insertions(+)

diff --git a/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-30e.dts b/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-30e.dts
index c0900d7126..dca6fbacf0 100644
--- a/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-30e.dts
+++ b/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-30e.dts
@@ -16,12 +16,14 @@
 	led-14 {
 		gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_AMBER>;
+		function = LED_FUNCTION_SPEED_WAN;
 		linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
 	};
 
 	led-15 {
 		gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_WAN;
 		linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
 	};
 };
diff --git a/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-50e.dts b/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-50e.dts
index d202d71c7f..cf13bb5fda 100644
--- a/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-50e.dts
+++ b/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-50e.dts
@@ -16,24 +16,32 @@
 	led-14 {
 		gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_WAN;
+		function-enumerator = <1>;
 		linux,default-trigger = "f1072004.mdio-mii:00:1Gbps";
 	};
 
 	led-15 {
 		gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_WAN;
+		function-enumerator = <2>;
 		linux,default-trigger = "f1072004.mdio-mii:01:1Gbps";
 	};
 
 	led-16 {
 		gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_AMBER>;
+		function = LED_FUNCTION_SPEED_LAN;
+		function-enumerator = <5>;
 		linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
 	};
 
 	led-17 {
 		gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_LAN;
+		function-enumerator = <5>;
 		linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
 	};
 };
diff --git a/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-x0e.dtsi b/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-x0e.dtsi
index 8cc2d6bc4a..6a5e016d30 100644
--- a/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-x0e.dtsi
+++ b/target/linux/mvebu/files-6.1/arch/arm/boot/dts/armada-385-fortinet-fg-x0e.dtsi
@@ -54,6 +54,7 @@
 		led-1 {
 			gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_RED>;
+			function = "ha";
 		};
 
 		led_status_green: led-2 {
@@ -65,6 +66,7 @@
 		led-3 {
 			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = "ha";
 		};
 
 		led-4 {
@@ -82,48 +84,64 @@
 		led-6 {
 			gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <4>;
 			linux,default-trigger = "mv88e6xxx-1:01:1Gbps";
 		};
 
 		led-7 {
 			gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <4>;
 			linux,default-trigger = "mv88e6xxx-1:01:100Mbps";
 		};
 
 		led-8 {
 			gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <3>;
 			linux,default-trigger = "mv88e6xxx-1:02:100Mbps";
 		};
 
 		led-9 {
 			gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <3>;
 			linux,default-trigger = "mv88e6xxx-1:02:1Gbps";
 		};
 
 		led-10 {
 			gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <1>;
 			linux,default-trigger = "mv88e6xxx-1:04:1Gbps";
 		};
 
 		led-11 {
 			gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <1>;
 			linux,default-trigger = "mv88e6xxx-1:04:100Mbps";
 		};
 
 		led-12 {
 			gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <2>;
 			linux,default-trigger = "mv88e6xxx-1:03:1Gbps";
 		};
 
 		led-13 {
 			gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <2>;
 			linux,default-trigger = "mv88e6xxx-1:03:100Mbps";
 		};
 	};
diff --git a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-30e.dts b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-30e.dts
index c0900d7126..dca6fbacf0 100644
--- a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-30e.dts
+++ b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-30e.dts
@@ -16,12 +16,14 @@
 	led-14 {
 		gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_AMBER>;
+		function = LED_FUNCTION_SPEED_WAN;
 		linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
 	};
 
 	led-15 {
 		gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_WAN;
 		linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
 	};
 };
diff --git a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-50e.dts b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-50e.dts
index d202d71c7f..cf13bb5fda 100644
--- a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-50e.dts
+++ b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-50e.dts
@@ -16,24 +16,32 @@
 	led-14 {
 		gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_WAN;
+		function-enumerator = <1>;
 		linux,default-trigger = "f1072004.mdio-mii:00:1Gbps";
 	};
 
 	led-15 {
 		gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_WAN;
+		function-enumerator = <2>;
 		linux,default-trigger = "f1072004.mdio-mii:01:1Gbps";
 	};
 
 	led-16 {
 		gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_AMBER>;
+		function = LED_FUNCTION_SPEED_LAN;
+		function-enumerator = <5>;
 		linux,default-trigger = "mv88e6xxx-1:00:100Mbps";
 	};
 
 	led-17 {
 		gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
 		color = <LED_COLOR_ID_GREEN>;
+		function = LED_FUNCTION_SPEED_LAN;
+		function-enumerator = <5>;
 		linux,default-trigger = "mv88e6xxx-1:00:1Gbps";
 	};
 };
diff --git a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-x0e.dtsi b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-x0e.dtsi
index 8cc2d6bc4a..6a5e016d30 100644
--- a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-x0e.dtsi
+++ b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fg-x0e.dtsi
@@ -54,6 +54,7 @@
 		led-1 {
 			gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_RED>;
+			function = "ha";
 		};
 
 		led_status_green: led-2 {
@@ -65,6 +66,7 @@
 		led-3 {
 			gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = "ha";
 		};
 
 		led-4 {
@@ -82,48 +84,64 @@
 		led-6 {
 			gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <4>;
 			linux,default-trigger = "mv88e6xxx-1:01:1Gbps";
 		};
 
 		led-7 {
 			gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <4>;
 			linux,default-trigger = "mv88e6xxx-1:01:100Mbps";
 		};
 
 		led-8 {
 			gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <3>;
 			linux,default-trigger = "mv88e6xxx-1:02:100Mbps";
 		};
 
 		led-9 {
 			gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <3>;
 			linux,default-trigger = "mv88e6xxx-1:02:1Gbps";
 		};
 
 		led-10 {
 			gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <1>;
 			linux,default-trigger = "mv88e6xxx-1:04:1Gbps";
 		};
 
 		led-11 {
 			gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <1>;
 			linux,default-trigger = "mv88e6xxx-1:04:100Mbps";
 		};
 
 		led-12 {
 			gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_GREEN>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <2>;
 			linux,default-trigger = "mv88e6xxx-1:03:1Gbps";
 		};
 
 		led-13 {
 			gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
 			color = <LED_COLOR_ID_AMBER>;
+			function = LED_FUNCTION_SPEED_LAN;
+			function-enumerator = <2>;
 			linux,default-trigger = "mv88e6xxx-1:03:100Mbps";
 		};
 	};




More information about the lede-commits mailing list