diff --git a/target/linux/ramips/base-files/etc/board.d/01_leds b/target/linux/ramips/base-files/etc/board.d/01_leds
index e6664bdd988ea66aee11a9b403e8d5b023a2d791..0ebf471802655a20feac352654a68d36c4816408 100755
--- a/target/linux/ramips/base-files/etc/board.d/01_leds
+++ b/target/linux/ramips/base-files/etc/board.d/01_leds
@@ -225,11 +225,6 @@ miniembplug)
 miwifi-mini)
 	ucidef_set_led_default "power" "power" "$board:red:status" "1"
 	;;
-miwifi-nano)
-	ucidef_set_led_default "power" "power" "$board:red:status" "1"
-	ucidef_set_led_wlan "radio_led" "radio" "$board:amber:radio" "phy0radio"
-	ucidef_set_led_wlan "wifi_led" "wifi" "$board:blue:wifi" "phy0assoc"
-	;;
 mlw221|\
 mlwg2)
 	set_wifi_led "$board:blue:wifi"
diff --git a/target/linux/ramips/base-files/etc/diag.sh b/target/linux/ramips/base-files/etc/diag.sh
index 6b64d3b3855a48e26f4edc7ca09b9effd8053588..a22be5e3d49e8ca65bdb5b49daf46d0e8f2fc223 100644
--- a/target/linux/ramips/base-files/etc/diag.sh
+++ b/target/linux/ramips/base-files/etc/diag.sh
@@ -152,11 +152,11 @@ get_status_led() {
 		status_led="$board:blue:wifi"
 		;;
 	m3|\
-	m4)
+	m4|\
+	miwifi-nano)
 		status_led="$board:blue:status"
 		;;
 	miwifi-mini|\
-	miwifi-nano|\
 	zte-q7)
 		status_led="$board:red:status"
 		;;
diff --git a/target/linux/ramips/dts/MIWIFI-NANO.dts b/target/linux/ramips/dts/MIWIFI-NANO.dts
index 6906ef30adf96edc23d420e878cb500197a43975..dfe9ef5707cc42965706a2a397dc6f5c9be9ce4c 100644
--- a/target/linux/ramips/dts/MIWIFI-NANO.dts
+++ b/target/linux/ramips/dts/MIWIFI-NANO.dts
@@ -2,6 +2,9 @@
 
 #include "mt7628an.dtsi"
 
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
 / {
 	compatible = "xiaomi,MiWifi Nano", "mediatek,mt7628an-soc";
 	model = "MiWiFi Nano";
@@ -18,20 +21,30 @@
 	gpio-leds {
 		compatible = "gpio-leds";
 
-		wifi {
-			label = "miwifi-nano:blue:wifi";
-			gpios = <&gpio0 11 1>;
-			default-state = "1";
+		status_blue {
+			label = "miwifi-nano:blue:status";
+			gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
 		};
-		status {
+		status_red {
 			label = "miwifi-nano:red:status";
-			gpios = <&gpio1 5 1>;
-			default-state = "on";
+			gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+		};
+		status_amber {
+			label = "miwifi-nano:amber:status";
+			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
 		};
-		radio {
-			label = "miwifi-nano:amber:radio";
-			gpios = <&gpio1 12 1>;
-			default-state = "1";
+	};
+
+	gpio-keys {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <20>;
+
+		reset {
+			label = "reset";
+			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
 		};
 	};
 };
@@ -47,6 +60,11 @@
 
 &wmac {
 	status = "okay";
+	ralink,mtd-eeprom = <&factory 0x4>;
+};
+
+&ethernet {
+	mtd-mac-address = <&factory 0x28>;
 };
 
 &spi0 {