diff --git a/target/linux/mvebu/cortexa53/base-files/etc/board.d/01_leds b/target/linux/mvebu/cortexa53/base-files/etc/board.d/01_leds
new file mode 100755
index 0000000000000000000000000000000000000000..42f4deb88ada27e7899bcd48f20ae6db44755281
--- /dev/null
+++ b/target/linux/mvebu/cortexa53/base-files/etc/board.d/01_leds
@@ -0,0 +1,18 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-only
+
+. /lib/functions/uci-defaults.sh
+
+board_config_update
+
+board=$(board_name)
+
+case "$board" in
+glinet,gl-mv1000)
+	ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan"
+	;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-gl-mv1000.dts b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-gl-mv1000.dts
index 86c33fa100a5928433fffd3dc8b3f0a2b6483c58..0e15debdea07668d8525e4884184151e6247f8a9 100644
--- a/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-gl-mv1000.dts
+++ b/target/linux/mvebu/files/arch/arm64/boot/dts/marvell/armada-3720-gl-mv1000.dts
@@ -8,6 +8,13 @@
 	model = "GL.iNet GL-MV1000";
 	compatible = "glinet,gl-mv1000", "marvell,armada3720";
 
+	aliases {
+		led-boot = &led_power;
+		led-failsafe = &led_power;
+		led-running = &led_power;
+		led-upgrade = &led_power;
+	};
+
 	chosen {
 		stdout-path = "serial0:115200n8";
 	};
@@ -23,12 +30,32 @@
 		regulator-min-microvolt = <1800000>;
 		regulator-max-microvolt = <3300000>;
 		regulator-boot-on;
-        
+
 		gpios-states = <0>;
 		states = <1800000 0x1
 			3300000 0x0>;
 		enable-active-high;
 	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		vpn {
+			label = "green:vpn";
+			gpios = <&gpionb 11 GPIO_ACTIVE_LOW>;
+		};
+
+		wan {
+			label = "green:wan";
+			gpios = <&gpionb 12 GPIO_ACTIVE_LOW>;
+		};
+
+		led_power: power {
+			label = "green:power";
+			gpios = <&gpionb 13 GPIO_ACTIVE_LOW>;
+			default-state = "on";
+		};
+	};
 };
 
 &spi0 {