From e6d4744f9ad0f76ddf1cded75355e240e81be41e Mon Sep 17 00:00:00 2001
From: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Date: Tue, 9 Jun 2020 11:52:26 +0200
Subject: [PATCH] ramips: fix WAN LED for D-Link DIR-810L/TRENDnet TEW-810DR

The WAN LED on DIR-810L was actually blinking on LAN1 port
activity. This has already been improved for the TEW-810DR, where
the GPIO has been set up explicitly rather than having it controlled
by the switch.

This patch also applies this setup to the DIR-810L.

In addition, the trigger in 01_leds is set up with
ucidef_set_led_switch for both devices now, so state changes should
be displayed correctly as well.

Reported-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net> [DIR-810L]
Tested-by: J. Scott Heppler <shep971@centurylink.net> [TEW-810DR]
---
 target/linux/ramips/dts/mt7620a_cameo_810.dtsi   |  8 ++++++++
 .../linux/ramips/dts/mt7620a_dlink_dir-810l.dts  | 16 +++++++---------
 .../ramips/dts/mt7620a_trendnet_tew-810dr.dts    |  8 --------
 .../ramips/mt7620/base-files/etc/board.d/01_leds |  7 ++++---
 4 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/target/linux/ramips/dts/mt7620a_cameo_810.dtsi b/target/linux/ramips/dts/mt7620a_cameo_810.dtsi
index 8ab166d283..adbb4cf65c 100644
--- a/target/linux/ramips/dts/mt7620a_cameo_810.dtsi
+++ b/target/linux/ramips/dts/mt7620a_cameo_810.dtsi
@@ -93,6 +93,14 @@
 	mediatek,portmap = "llllw";
 };
 
+&gsw {
+	mediatek,port4 = "ephy";
+};
+
+&gpio2 {
+	status = "okay";
+};
+
 &wmac {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pa_pins>;
diff --git a/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts b/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
index 63952d3e64..9dd9825433 100644
--- a/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
+++ b/target/linux/ramips/dts/mt7620a_dlink_dir-810l.dts
@@ -22,11 +22,16 @@
 			gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
 		};
 
-		wan {
+		wan_orange {
 			label = "dir-810l:orange:wan";
 			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
 		};
 
+		wan_green {
+			label = "dir-810l:green:wan";
+			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+		};
+
 		power_orange {
 			label = "dir-810l:orange:power";
 			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
@@ -36,14 +41,7 @@
 
 &state_default {
 	gpio {
-		groups = "i2c", "uartf";
+		groups = "i2c", "uartf", "ephy";
 		function = "gpio";
 	};
 };
-
-&gsw {
-	pinctrl-names = "default";
-	pinctrl-0 = <&ephy_pins>;
-
-	mediatek,port4 = "ephy";
-};
diff --git a/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts b/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
index 679b429b6d..7437cde073 100644
--- a/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
+++ b/target/linux/ramips/dts/mt7620a_trendnet_tew-810dr.dts
@@ -46,11 +46,3 @@
 		function = "gpio";
 	};
 };
-
-&gsw {
-	mediatek,port4 = "ephy";
-};
-
-&gpio2 {
-	status = "okay";
-};
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
index e7b9413a48..2b2ac6b46b 100755
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/01_leds
@@ -54,6 +54,10 @@ comfast,cf-wr800n)
 	ucidef_set_led_netdev "lan" "lan" "$boardname:white:ethernet" eth0.1
 	set_wifi_led "$boardname:white:wifi"
 	;;
+dlink,dir-810l|\
+trendnet,tew-810dr)
+	ucidef_set_led_switch "wan" "wan" "$boardname:green:wan" "switch0" "0x10"
+	;;
 dlink,dwr-116-a1|\
 head-weblink,hdrm200|\
 ohyeah,oy-0001|\
@@ -191,9 +195,6 @@ tplink,archer-mr200)
 tplink,re200-v1)
 	ucidef_set_led_netdev "lan" "lan" "$boardname:green:lan" "eth0"
 	;;
-trendnet,tew-810dr)
-	ucidef_set_led_netdev "wan" "wan" "$boardname:green:wan" "eth0.2"
-	;;
 youku,yk1)
 	set_wifi_led "$boardname:blue:air"
 	ucidef_set_led_switch "wan" "wan" "$boardname:blue:wan" "switch0" "0x10"
-- 
2.30.2