Add led devices for D-Link DIR-300-B1 WAN LED.

Note that the GPIO state is also ANDed with the esw switch port 4
LED state, which is why I've set the amber LED to default-on.

The ppp0-section tries to mimick the original firmware behaviour:
There the LED switches from amber to green once a WAN link is
established.

Closes: https://dev.openwrt.org/ticket/11326

Signed-off-by: Tobias Diedrich <ranma+open...@tdiedrich.de>


Index: target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c
===================================================================
--- target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c       
(revision 31618)
+++ target/linux/ramips/files/arch/mips/ralink/rt305x/mach-dir-300-revb.c       
(working copy)
@@ -22,6 +22,10 @@
 #define DIR_300B_GPIO_LED_STATUS_AMBER 8
 #define DIR_300B_GPIO_LED_STATUS_GREEN 9
 #define DIR_300B_GPIO_LED_WPS          13
+/* NOTE: The wan led is also connected to the switch, both
+ * switch and gpio must be active to make it light up */
+#define DIR_300B_GPIO_LED_WAN_GREEN    12
+#define DIR_300B_GPIO_LED_WAN_AMBER    14
 
 #define DIR_300B_GPIO_BUTTON_WPS       0       /* active low */
 #define DIR_300B_GPIO_BUTTON_RESET     10      /* active low */
@@ -39,6 +43,14 @@
                .gpio           = DIR_300B_GPIO_LED_STATUS_GREEN,
                .active_low     = 1,
        }, {
+               .name           = "d-link:amber:wan",
+               .gpio           = DIR_300B_GPIO_LED_WAN_AMBER,
+               .active_low     = 1,
+       }, {
+               .name           = "d-link:green:wan",
+               .gpio           = DIR_300B_GPIO_LED_WAN_GREEN,
+               .active_low     = 1,
+       }, {
                .name           = "d-link:blue:wps",
                .gpio           = DIR_300B_GPIO_LED_WPS,
                .active_low     = 1,
Index: target/linux/ramips/base-files/etc/uci-defaults/leds
===================================================================
--- target/linux/ramips/base-files/etc/uci-defaults/leds        (revision 31618)
+++ target/linux/ramips/base-files/etc/uci-defaults/leds        (working copy)
@@ -30,6 +30,24 @@
 EOF
 }
 
+set_wan_led() {
+       local sysfs="$1"
+       local name="$2"
+       local trigger="$3"
+       local dev="$4"
+       local mode="$5"
+
+       uci batch <<EOF
+set system.${name}_led=led
+set system.${name}_led.name='$name'
+set system.${name}_led.sysfs='$sysfs'
+set system.${name}_led.trigger='$trigger'
+set system.${name}_led.dev='$dev'
+set system.${name}_led.mode='$mode'
+commit system
+EOF
+}
+
 board=$(ramips_board_name)
 
 case $board in
@@ -39,6 +57,11 @@
        bc2)
                set_usb_led "bc2:blue:usb"
                ;;
+       dir-300-b1 | dir-600-b1 | dir-600-b2)
+               # ANDed with vlan switch port 4 led state
+               set_wan_led "d-link:amber:wan" wan_switch default-on
+               set_wan_led "d-link:green:wan" wan_ppp netdev ppp0 link
+               ;;
        esr-9753)
                set_wifi_led "rt2800pci-phy0::radio"
                ;;

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to