From f44d3f99803be7ba5c38b26a2d8cbda1c301e893 Mon Sep 17 00:00:00 2001
From: John Crispin <john@openwrt.org>
Date: Thu, 17 Jul 2014 10:55:31 +0000
Subject: [PATCH] ramips: soc wmac eeprom cleanup

Move eeprom extraction from scripts to dts files.
Additionally there are few other changes like:
- whitespace fixes
- add partition labels where needed
- BR6524N board doesn't exist (lost in translation?)
- fix Edimax 3g-6200nl model
- add wmac eeprom to dts for Asus RT-N14U board

Compile tested all subtargets and their profiles.
Run tested on:
- Asus RT-N15
- Asus RT-N14U
- Buffalo WHR-600D
- Argus ATP52B
- Sparklan WCR-150GN

Few problems noted:
- many boards didn't have wmac eeprom information defined at all
- several boards don't have any patitions defined (see FIXME comments in dts)

Signed-off-by: Roman Yeryomin <roman@advem.lv>

SVN-Revision: 41680
---
 .../etc/hotplug.d/firmware/10-rt2x00-eeprom   | 106 +-----------------
 target/linux/ramips/base-files/lib/ramips.sh  |   3 -
 target/linux/ramips/dts/3G-6200N.dts          |   4 +
 target/linux/ramips/dts/3G-6200NL.dts         |   8 +-
 target/linux/ramips/dts/3G300M.dts            |   4 +
 target/linux/ramips/dts/AIR3GII.dts           |   4 +
 target/linux/ramips/dts/ALL0239-3G.dts        |   4 +
 target/linux/ramips/dts/ALL0256N-4M.dts       |   4 +
 target/linux/ramips/dts/ALL0256N-8M.dts       |   4 +
 target/linux/ramips/dts/ALL5002.dts           |   4 +
 target/linux/ramips/dts/ALL5003.dts           |   4 +
 target/linux/ramips/dts/ARGUS_ATP52B.dts      |   4 +
 target/linux/ramips/dts/ASL26555-16M.dts      |   6 +-
 target/linux/ramips/dts/ASL26555-8M.dts       |   5 +
 target/linux/ramips/dts/AWAPN2403.dts         |   4 +
 target/linux/ramips/dts/AWM002-EVB-4M.dts     |   4 +
 target/linux/ramips/dts/AWM002-EVB-8M.dts     |   4 +
 target/linux/ramips/dts/BC2.dts               |   4 +
 target/linux/ramips/dts/BR-6425.dts           |   4 +
 target/linux/ramips/dts/BR-6475ND.dts         |   4 +
 target/linux/ramips/dts/BROADWAY.dts          |   4 +
 target/linux/ramips/dts/CARAMBOLA.dts         |   4 +
 target/linux/ramips/dts/CY-SWR1100.dts        |   1 +
 target/linux/ramips/dts/D105.dts              |   4 +
 target/linux/ramips/dts/DAP-1350.dts          |   6 +-
 target/linux/ramips/dts/DCS-930.dts           |   4 +
 target/linux/ramips/dts/DIR-300-B1.dts        |   6 +-
 target/linux/ramips/dts/DIR-300-B7.dts        |   7 +-
 target/linux/ramips/dts/DIR-320-B1.dts        |   4 +
 target/linux/ramips/dts/DIR-600-B1.dts        |   6 +-
 target/linux/ramips/dts/DIR-600-B2.dts        |   6 +-
 target/linux/ramips/dts/DIR-610-A1.dts        |   2 +-
 target/linux/ramips/dts/DIR-615-D.dts         |   6 +-
 target/linux/ramips/dts/DIR-615-H1.dts        |   4 +
 target/linux/ramips/dts/DIR-620-A1.dts        |   4 +
 target/linux/ramips/dts/DIR-620-D1.dts        |   4 +
 target/linux/ramips/dts/DIR-645.dts           |   1 +
 target/linux/ramips/dts/ESR-9753.dts          |   4 +
 target/linux/ramips/dts/F5D8235_V1.dts        |   6 +-
 target/linux/ramips/dts/F5D8235_V2.dts        |   6 +-
 target/linux/ramips/dts/F7C027.dts            |   4 +
 target/linux/ramips/dts/FONERA20N.dts         |   4 +
 target/linux/ramips/dts/FREESTATION5.dts      |   4 +
 target/linux/ramips/dts/HG255D.dts            |   4 +
 target/linux/ramips/dts/HW550-3G.dts          |   4 +
 target/linux/ramips/dts/MOFI3500-3GN.dts      |   1 +
 target/linux/ramips/dts/MPRA1.dts             |   4 +
 target/linux/ramips/dts/MPRA2.dts             |   4 +
 target/linux/ramips/dts/MZK-750DHP.dts        |   4 +
 target/linux/ramips/dts/MZK-W300NH2.dts       |   4 +
 target/linux/ramips/dts/NBG-419N.dts          |   4 +
 target/linux/ramips/dts/NCS601W.dts           |   4 +
 target/linux/ramips/dts/NW718.dts             |   4 +
 target/linux/ramips/dts/OMNI-EMB-HPM.dts      |   4 +
 target/linux/ramips/dts/OMNI-EMB.dts          |   4 +
 target/linux/ramips/dts/PSR-680W.dts          |   4 +
 target/linux/ramips/dts/PWH2004.dts           |   4 +
 target/linux/ramips/dts/RT-G32-B1.dts         |   8 +-
 target/linux/ramips/dts/RT-N10-PLUS.dts       |   6 +-
 target/linux/ramips/dts/RT-N13U.dts           |   4 +
 target/linux/ramips/dts/RT-N14U.dts           |   4 +
 target/linux/ramips/dts/RT-N15.dts            |   4 +
 target/linux/ramips/dts/RTN56U.dts            |   2 +-
 target/linux/ramips/dts/RUT5XX.dts            |   4 +
 target/linux/ramips/dts/SL-R7205.dts          |   4 +
 target/linux/ramips/dts/UR-326N4G.dts         |   4 +
 target/linux/ramips/dts/UR-336UN.dts          |  10 +-
 target/linux/ramips/dts/V11STFE.dts           |   6 +-
 target/linux/ramips/dts/V22RW-2X2.dts         |   4 +
 target/linux/ramips/dts/W150M.dts             |   4 +
 target/linux/ramips/dts/W306R_V20.dts         |   4 +
 target/linux/ramips/dts/W502U.dts             |   4 +
 target/linux/ramips/dts/WCR150GN.dts          |   4 +
 target/linux/ramips/dts/WHR-1166D.dts         |   4 +
 target/linux/ramips/dts/WHR-300HP2.dts        |   4 +
 target/linux/ramips/dts/WHR-600D.dts          |   4 +
 target/linux/ramips/dts/WHR-G300N.dts         |   5 +
 target/linux/ramips/dts/WL-351.dts            |   4 +
 target/linux/ramips/dts/WL341V3.dts           |   6 +-
 target/linux/ramips/dts/WLI-TX4-AG300N.dts    |   4 +
 target/linux/ramips/dts/WL_330N.dts           |   4 +
 target/linux/ramips/dts/WL_330N3G.dts         |   4 +
 target/linux/ramips/dts/WMR300.dts            |   4 +
 target/linux/ramips/dts/WNCE2001.dts          |   4 +
 target/linux/ramips/dts/WR512-3GN-4M.dts      |   4 +
 target/linux/ramips/dts/WR512-3GN-8M.dts      |   4 +
 target/linux/ramips/dts/WR6202.dts            |   4 +
 target/linux/ramips/dts/WR8305RT.dts          |   4 +
 target/linux/ramips/dts/WRTNODE.dts           |   4 +
 target/linux/ramips/dts/XDXRN502J.dts         |   4 +
 90 files changed, 358 insertions(+), 131 deletions(-)

diff --git a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
index 18a0448de42..2a5a80c4bfa 100644
--- a/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
+++ b/target/linux/ramips/base-files/etc/hotplug.d/firmware/10-rt2x00-eeprom
@@ -31,112 +31,8 @@ board=$(ramips_board_name)
 case "$FIRMWARE" in
 "soc_wmac.eeprom")
 	case $board in
-	asl26555 | \
-	dir-300-b1 | \
-	dir-600-b1 | \
-	dir-600-b2 | \
-	dir-610-a1 | \
-	dir-615-d)
-		rt2x00_eeprom_extract "devdata" 16384 512
-		;;
-
-	dap-1350)
-		rt2x00_eeprom_extract "devdata" 0 512
-		;;
-
-	rt-n10-plus | \
-	rt-g32-b1)
-		rt2x00_eeprom_extract "devconf" 0 512
-		;;
-
-	f5d8235-v1 | \
-	f5d8235-v2)
-		rt2x00_eeprom_extract "u-boot" 262144 512
-		;;
-
-	3g-6200n | \
-	3g-6200nl | \
-	3g300m | \
-	air3gii | \
-	all0239-3g | \
-	all0256n | \
-	all5002 | \
-	all5003 | \
-	argus-atp52b | \
-	awm002-evb | \
-	awapn2403 | \
-	bc2 | \
-	br6425 | \
-	br-6475nd | \
-	broadway | \
-	br6524n | \
-	carambola | \
-	cy-swr1100 | \
-	d105 | \
-	dcs-930 | \
-	dir-300-b7 | \
-	dir-320-b1 | \
-	dir-615-h1 | \
-	dir-620-a1 | \
-	dir-620-d1 | \
-	dir-645 | \
-	esr-9753 | \
-	f7c027 | \
-	fonera20n | \
-	rt-n13u | \
-	freestation5 | \
-	hlk-rm04 | \
-	hw550-3g | \
-	mofi3500-3gn | \
-	mpr-a1 | \
-	mpr-a2 | \
-	mzk-750dhp | \
-	pwh2004 | \
-	ncs601w | \
-	nbg-419n | \
-	nw718 | \
-	omni-emb | \
-	omni-emb-hpm | \
-	psr-680w | \
-	px4885 | \
-	rt-n15 | \
-	rt-n56u | \
-	rut5xx | \
-	sl-r7205 | \
-	v11st-fe | \
-	v22rw-2x2 | \
-	w306r-v20 | \
-	w150m | \
-	w502u | \
-	wcr-150gn | \
-	whr-g300n | \
-	whr-300hp2 | \
-	whr-600d | \
-	whr-1166d | \
-	wl-330n | \
-	wl-330n3g | \
-	wl-351 | \
-	wli-tx4-ag300n | \
-	wmr300 | \
-	wnce2001 | \
-	wr512-3gn | \
-	wr6202 | \
-	wr8305rt | \
-	wrtnode | \
-	mzk-w300nh2 | \
-	ur-326n4g | \
-	ur-336un | \
-	xdxrn502j | \
-	hg255d)
-		rt2x00_eeprom_extract "factory" 0 512
-		;;
-
-	wl341v3)
-		rt2x00_eeprom_extract "board-nvram" 64880 512
-		;;
-
 	*)
-		rt2x00_eeprom_die "board $board is not supported yet"
+		rt2x00_eeprom_die "Please define mtd-eeprom in $board DTS file!"
 		;;
 	esac
 	;;
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 2e831d29313..f9ab1e33baf 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -58,9 +58,6 @@ ramips_board_detect() {
 	*"AsiaRF AWAPN2403")
 		name="awapn2403"
 		;;
-	*"BR6524N")
-		name="br6524n"
-		;;
 	*"Asus WL-330N")
 		name="wl-330n"
 		;;
diff --git a/target/linux/ramips/dts/3G-6200N.dts b/target/linux/ramips/dts/3G-6200N.dts
index 0be8c7252c9..a19ed452f65 100644
--- a/target/linux/ramips/dts/3G-6200N.dts
+++ b/target/linux/ramips/dts/3G-6200N.dts
@@ -62,6 +62,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power {
diff --git a/target/linux/ramips/dts/3G-6200NL.dts b/target/linux/ramips/dts/3G-6200NL.dts
index 265806154a8..6a2f46f2b3c 100644
--- a/target/linux/ramips/dts/3G-6200NL.dts
+++ b/target/linux/ramips/dts/3G-6200NL.dts
@@ -3,8 +3,8 @@
 /include/ "rt3050.dtsi"
 
 / {
-	compatible = "3G-6200N", "ralink,rt3050-soc";
-	model = "Edimax 3g-6200n";
+	compatible = "3G-6200NL", "ralink,rt3050-soc";
+	model = "Edimax 3g-6200nl";
 
 	pinctrl {
 		state_default: pinctrl0 {
@@ -58,6 +58,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		wlan {
diff --git a/target/linux/ramips/dts/3G300M.dts b/target/linux/ramips/dts/3G300M.dts
index 93e864f6a8c..5095927c5b7 100644
--- a/target/linux/ramips/dts/3G300M.dts
+++ b/target/linux/ramips/dts/3G300M.dts
@@ -105,6 +105,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/AIR3GII.dts b/target/linux/ramips/dts/AIR3GII.dts
index 1276574e938..4a265460e05 100644
--- a/target/linux/ramips/dts/AIR3GII.dts
+++ b/target/linux/ramips/dts/AIR3GII.dts
@@ -64,6 +64,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		wlan {
diff --git a/target/linux/ramips/dts/ALL0239-3G.dts b/target/linux/ramips/dts/ALL0239-3G.dts
index fe1eba960be..4da69a7329a 100644
--- a/target/linux/ramips/dts/ALL0239-3G.dts
+++ b/target/linux/ramips/dts/ALL0239-3G.dts
@@ -57,6 +57,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		usb {
diff --git a/target/linux/ramips/dts/ALL0256N-4M.dts b/target/linux/ramips/dts/ALL0256N-4M.dts
index e92118f17e4..581934a5324 100644
--- a/target/linux/ramips/dts/ALL0256N-4M.dts
+++ b/target/linux/ramips/dts/ALL0256N-4M.dts
@@ -64,6 +64,10 @@
 		ralink,portmap = <0x3f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		rssilow {
diff --git a/target/linux/ramips/dts/ALL0256N-8M.dts b/target/linux/ramips/dts/ALL0256N-8M.dts
index 6a704f1a24b..c4815d968da 100644
--- a/target/linux/ramips/dts/ALL0256N-8M.dts
+++ b/target/linux/ramips/dts/ALL0256N-8M.dts
@@ -64,6 +64,10 @@
 		ralink,portmap = <0x3f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		rssilow {
diff --git a/target/linux/ramips/dts/ALL5002.dts b/target/linux/ramips/dts/ALL5002.dts
index 827e9df05b7..7c195714a0f 100644
--- a/target/linux/ramips/dts/ALL5002.dts
+++ b/target/linux/ramips/dts/ALL5002.dts
@@ -64,6 +64,10 @@
 		ralink,portmap = <0x3f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	ehci@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/ALL5003.dts b/target/linux/ramips/dts/ALL5003.dts
index d599e71efc1..0d21508fba1 100644
--- a/target/linux/ramips/dts/ALL5003.dts
+++ b/target/linux/ramips/dts/ALL5003.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x3f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	ehci@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/ARGUS_ATP52B.dts b/target/linux/ramips/dts/ARGUS_ATP52B.dts
index fb04f017d5b..66108b1fb5b 100644
--- a/target/linux/ramips/dts/ARGUS_ATP52B.dts
+++ b/target/linux/ramips/dts/ARGUS_ATP52B.dts
@@ -83,6 +83,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/ASL26555-16M.dts b/target/linux/ramips/dts/ASL26555-16M.dts
index 568d8f9d649..bd45bc305bf 100644
--- a/target/linux/ramips/dts/ASL26555-16M.dts
+++ b/target/linux/ramips/dts/ASL26555-16M.dts
@@ -50,7 +50,7 @@
 					reg = <0xfe0000 0x10000>;
 					read-only;
 				};
-				partition@ff0000 {
+				devdata: partition@ff0000 {
 					label = "devdata";
 					reg = <0xff0000 0x10000>;
 					read-only;
@@ -76,6 +76,10 @@
 		ralink,portmap = <0x1e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0x4000>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/ASL26555-8M.dts b/target/linux/ramips/dts/ASL26555-8M.dts
index 1ddbb1c984d..d7e424d8688 100644
--- a/target/linux/ramips/dts/ASL26555-8M.dts
+++ b/target/linux/ramips/dts/ASL26555-8M.dts
@@ -71,6 +71,11 @@
 		ralink,portmap = <0x1e>;
 	};
 
+	/* devdata partition seems to be missing */
+/*	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0x4000>;
+	};
+*/
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/AWAPN2403.dts b/target/linux/ramips/dts/AWAPN2403.dts
index 068c8005b2e..2de04022c77 100644
--- a/target/linux/ramips/dts/AWAPN2403.dts
+++ b/target/linux/ramips/dts/AWAPN2403.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		link {
diff --git a/target/linux/ramips/dts/AWM002-EVB-4M.dts b/target/linux/ramips/dts/AWM002-EVB-4M.dts
index 61b2d76b328..12887d84812 100644
--- a/target/linux/ramips/dts/AWM002-EVB-4M.dts
+++ b/target/linux/ramips/dts/AWM002-EVB-4M.dts
@@ -5,6 +5,10 @@
 / {
 	model = "AsiaRF AWM002 EVB";
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		tx {
diff --git a/target/linux/ramips/dts/AWM002-EVB-8M.dts b/target/linux/ramips/dts/AWM002-EVB-8M.dts
index dd1ce4cf54c..3be34bffa56 100644
--- a/target/linux/ramips/dts/AWM002-EVB-8M.dts
+++ b/target/linux/ramips/dts/AWM002-EVB-8M.dts
@@ -5,6 +5,10 @@
 / {
 	model = "AsiaRF AWM002 EVB";
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		tx {
diff --git a/target/linux/ramips/dts/BC2.dts b/target/linux/ramips/dts/BC2.dts
index 54adbafad68..0524f2d6d2a 100644
--- a/target/linux/ramips/dts/BC2.dts
+++ b/target/linux/ramips/dts/BC2.dts
@@ -76,6 +76,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/BR-6425.dts b/target/linux/ramips/dts/BR-6425.dts
index 7df63c6583e..6f836c832f5 100644
--- a/target/linux/ramips/dts/BR-6425.dts
+++ b/target/linux/ramips/dts/BR-6425.dts
@@ -33,6 +33,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power {
diff --git a/target/linux/ramips/dts/BR-6475ND.dts b/target/linux/ramips/dts/BR-6475ND.dts
index b348889d9bb..60b85256090 100644
--- a/target/linux/ramips/dts/BR-6475ND.dts
+++ b/target/linux/ramips/dts/BR-6475ND.dts
@@ -37,6 +37,10 @@
 		};
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pci@10140000 {
 		status = "okay";
 
diff --git a/target/linux/ramips/dts/BROADWAY.dts b/target/linux/ramips/dts/BROADWAY.dts
index 25e3b89db9b..db86f974767 100644
--- a/target/linux/ramips/dts/BROADWAY.dts
+++ b/target/linux/ramips/dts/BROADWAY.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		diskmounted {
diff --git a/target/linux/ramips/dts/CARAMBOLA.dts b/target/linux/ramips/dts/CARAMBOLA.dts
index 520450a5cc7..c33ed420bf3 100644
--- a/target/linux/ramips/dts/CARAMBOLA.dts
+++ b/target/linux/ramips/dts/CARAMBOLA.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x3f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/CY-SWR1100.dts b/target/linux/ramips/dts/CY-SWR1100.dts
index d0cc0e5fc5d..2e0af387bd5 100644
--- a/target/linux/ramips/dts/CY-SWR1100.dts
+++ b/target/linux/ramips/dts/CY-SWR1100.dts
@@ -49,6 +49,7 @@
 
 	wmac@10180000 {
 		status = "okay";
+		ralink,mtd-eeprom = <&factory 0>;
 	};
 
 	ehci@101c0000 {
diff --git a/target/linux/ramips/dts/D105.dts b/target/linux/ramips/dts/D105.dts
index c19e0dabb0f..42f6fd3c6d0 100644
--- a/target/linux/ramips/dts/D105.dts
+++ b/target/linux/ramips/dts/D105.dts
@@ -80,6 +80,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/DAP-1350.dts b/target/linux/ramips/dts/DAP-1350.dts
index 1fd9e9a7e52..0513f576af2 100644
--- a/target/linux/ramips/dts/DAP-1350.dts
+++ b/target/linux/ramips/dts/DAP-1350.dts
@@ -34,7 +34,7 @@
 			read-only;
 		};
 
-		partition@30000 {
+		devdata: partition@30000 {
 			label = "devdata";
 			reg = <0x30000 0x10000>;
 			read-only;
@@ -62,6 +62,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power {
diff --git a/target/linux/ramips/dts/DCS-930.dts b/target/linux/ramips/dts/DCS-930.dts
index 8876d9b46a6..a497c04d5d5 100644
--- a/target/linux/ramips/dts/DCS-930.dts
+++ b/target/linux/ramips/dts/DCS-930.dts
@@ -122,6 +122,10 @@
 		};
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/DIR-300-B1.dts b/target/linux/ramips/dts/DIR-300-B1.dts
index 8c5fc523754..621bf088f16 100644
--- a/target/linux/ramips/dts/DIR-300-B1.dts
+++ b/target/linux/ramips/dts/DIR-300-B1.dts
@@ -30,7 +30,7 @@
 			read-only;
 		};
 
-		partition@30000 {
+		devdata: partition@30000 {
 			label = "devdata";
 			reg = <0x30000 0x10000>;
 			read-only;
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0x4000>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/DIR-300-B7.dts b/target/linux/ramips/dts/DIR-300-B7.dts
index 492fd4ce8ac..c1a1385c445 100644
--- a/target/linux/ramips/dts/DIR-300-B7.dts
+++ b/target/linux/ramips/dts/DIR-300-B7.dts
@@ -92,9 +92,10 @@
                 };
         };
 
-        wmac@10180000 {
-                status = "okay";
+	wmac@10180000 {
+		status = "okay";
 		ralink,led-polarity = <1>;
-        };
+		ralink,mtd-eeprom = <&factory 0>;
+	};
 };
 
diff --git a/target/linux/ramips/dts/DIR-320-B1.dts b/target/linux/ramips/dts/DIR-320-B1.dts
index 34d7944edcb..8ec07c2e54e 100644
--- a/target/linux/ramips/dts/DIR-320-B1.dts
+++ b/target/linux/ramips/dts/DIR-320-B1.dts
@@ -61,6 +61,10 @@
 		ralink,led_polarity = <0x17>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		status {
diff --git a/target/linux/ramips/dts/DIR-600-B1.dts b/target/linux/ramips/dts/DIR-600-B1.dts
index aa9309fbb7d..17903793ee7 100644
--- a/target/linux/ramips/dts/DIR-600-B1.dts
+++ b/target/linux/ramips/dts/DIR-600-B1.dts
@@ -30,7 +30,7 @@
 			read-only;
 		};
 
-		partition@30000 {
+		devdata: partition@30000 {
 			label = "devdata";
 			reg = <0x30000 0x10000>;
 			read-only;
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0x4000>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/DIR-600-B2.dts b/target/linux/ramips/dts/DIR-600-B2.dts
index f982ae0db70..70e4a508ea4 100644
--- a/target/linux/ramips/dts/DIR-600-B2.dts
+++ b/target/linux/ramips/dts/DIR-600-B2.dts
@@ -30,7 +30,7 @@
 			read-only;
 		};
 
-		partition@30000 {
+		devdata: partition@30000 {
 			label = "devdata";
 			reg = <0x30000 0x10000>;
 			read-only;
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0x4000>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/DIR-610-A1.dts b/target/linux/ramips/dts/DIR-610-A1.dts
index e6c104163a7..9893e7aa008 100644
--- a/target/linux/ramips/dts/DIR-610-A1.dts
+++ b/target/linux/ramips/dts/DIR-610-A1.dts
@@ -65,7 +65,7 @@
 	wmac@10180000 {
 		status = "okay";
 		ralink,led-polarity = <1>;
-		ralink,mtd-eeprom = <&devdata 16384>;
+		ralink,mtd-eeprom = <&devdata 0x4000>;
 	};
 
 	gpio-leds {
diff --git a/target/linux/ramips/dts/DIR-615-D.dts b/target/linux/ramips/dts/DIR-615-D.dts
index b27bca061bc..1a67b2dcaa7 100644
--- a/target/linux/ramips/dts/DIR-615-D.dts
+++ b/target/linux/ramips/dts/DIR-615-D.dts
@@ -30,7 +30,7 @@
 			read-only;
 		};
 
-		partition@30000 {
+		devdata: partition@30000 {
 			label = "devdata";
 			reg = <0x30000 0x10000>;
 			read-only;
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devdata 0x4000>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/DIR-615-H1.dts b/target/linux/ramips/dts/DIR-615-H1.dts
index 13d7f88c70d..1165ff114ff 100644
--- a/target/linux/ramips/dts/DIR-615-H1.dts
+++ b/target/linux/ramips/dts/DIR-615-H1.dts
@@ -68,6 +68,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		status {
diff --git a/target/linux/ramips/dts/DIR-620-A1.dts b/target/linux/ramips/dts/DIR-620-A1.dts
index 070edafde1d..1ffa829e070 100644
--- a/target/linux/ramips/dts/DIR-620-A1.dts
+++ b/target/linux/ramips/dts/DIR-620-A1.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/DIR-620-D1.dts b/target/linux/ramips/dts/DIR-620-D1.dts
index c8632f067e8..e4eeb3ee6d5 100644
--- a/target/linux/ramips/dts/DIR-620-D1.dts
+++ b/target/linux/ramips/dts/DIR-620-D1.dts
@@ -68,6 +68,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		status {
diff --git a/target/linux/ramips/dts/DIR-645.dts b/target/linux/ramips/dts/DIR-645.dts
index 938055c8c99..0a9d83f85c6 100644
--- a/target/linux/ramips/dts/DIR-645.dts
+++ b/target/linux/ramips/dts/DIR-645.dts
@@ -71,6 +71,7 @@
 
 	wmac@10180000 {
 		ralink,5ghz = <0>;
+		ralink,mtd-eeprom = <&factory 0>;
 	};
 
 	ehci@101c0000 {
diff --git a/target/linux/ramips/dts/ESR-9753.dts b/target/linux/ramips/dts/ESR-9753.dts
index 3760a465e01..39e4232d4cb 100644
--- a/target/linux/ramips/dts/ESR-9753.dts
+++ b/target/linux/ramips/dts/ESR-9753.dts
@@ -84,4 +84,8 @@
 	esw@10110000 {
 		ralink,portmap = <0x3e>;
 	};
+
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
 };
diff --git a/target/linux/ramips/dts/F5D8235_V1.dts b/target/linux/ramips/dts/F5D8235_V1.dts
index 0d1e9a8af50..9026d82b738 100644
--- a/target/linux/ramips/dts/F5D8235_V1.dts
+++ b/target/linux/ramips/dts/F5D8235_V1.dts
@@ -62,10 +62,12 @@
 		};
 	};
 
-	wmac@480000 {
+	/* FIXME: no u-boot partition and 0x40000@uboot is out of boundaries */
+/*	wmac@480000 {
 		status = "okay";
+		ralink,mtd-eeprom = <&u-boot 0x40000>;
 	};
-
+*/
 	rtl8367s {
 		compatible = "realtek,rtl8367s";
 		gpio-sda = <&gpio0 1 0>;
diff --git a/target/linux/ramips/dts/F5D8235_V2.dts b/target/linux/ramips/dts/F5D8235_V2.dts
index 1b96cea764e..7eaf16542b0 100644
--- a/target/linux/ramips/dts/F5D8235_V2.dts
+++ b/target/linux/ramips/dts/F5D8235_V2.dts
@@ -25,7 +25,7 @@
 		#size-cells = <1>;
 
 		uboot: partition@0 {
-			label = "u-boot";
+			label = "uboot";
 			reg = <0x0 0x50000>;
 			read-only;
 		};
@@ -54,6 +54,10 @@
 		ralink,portmap = <0x3f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&uboot 0x40000>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/F7C027.dts b/target/linux/ramips/dts/F7C027.dts
index ea716257efd..f660ff8f864 100644
--- a/target/linux/ramips/dts/F7C027.dts
+++ b/target/linux/ramips/dts/F7C027.dts
@@ -68,6 +68,10 @@
 		};
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pinctrl {
 		state_default: pinctrl0 {
 			gpio {
diff --git a/target/linux/ramips/dts/FONERA20N.dts b/target/linux/ramips/dts/FONERA20N.dts
index bb85bab5337..2e01457783f 100644
--- a/target/linux/ramips/dts/FONERA20N.dts
+++ b/target/linux/ramips/dts/FONERA20N.dts
@@ -116,6 +116,10 @@
 		};
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/FREESTATION5.dts b/target/linux/ramips/dts/FREESTATION5.dts
index 603ec363ea6..b221ae401b9 100644
--- a/target/linux/ramips/dts/FREESTATION5.dts
+++ b/target/linux/ramips/dts/FREESTATION5.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x01>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/HG255D.dts b/target/linux/ramips/dts/HG255D.dts
index 7496ca5456d..41b7ddd34e1 100644
--- a/target/linux/ramips/dts/HG255D.dts
+++ b/target/linux/ramips/dts/HG255D.dts
@@ -112,6 +112,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/HW550-3G.dts b/target/linux/ramips/dts/HW550-3G.dts
index d107b55396f..3be3fce7b4a 100644
--- a/target/linux/ramips/dts/HW550-3G.dts
+++ b/target/linux/ramips/dts/HW550-3G.dts
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		usb {
diff --git a/target/linux/ramips/dts/MOFI3500-3GN.dts b/target/linux/ramips/dts/MOFI3500-3GN.dts
index 058b7a27a3c..b988dd095b0 100644
--- a/target/linux/ramips/dts/MOFI3500-3GN.dts
+++ b/target/linux/ramips/dts/MOFI3500-3GN.dts
@@ -96,6 +96,7 @@
 
 	wmac@10180000 {
 		status = "okay";
+		ralink,mtd-eeprom = <&factory 0>;
 	};
 
 	otg@101c0000 {
diff --git a/target/linux/ramips/dts/MPRA1.dts b/target/linux/ramips/dts/MPRA1.dts
index a869427264b..9b4ee34df50 100644
--- a/target/linux/ramips/dts/MPRA1.dts
+++ b/target/linux/ramips/dts/MPRA1.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	ehci@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/MPRA2.dts b/target/linux/ramips/dts/MPRA2.dts
index 44141418c69..56d6f515973 100644
--- a/target/linux/ramips/dts/MPRA2.dts
+++ b/target/linux/ramips/dts/MPRA2.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	ehci@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/MZK-750DHP.dts b/target/linux/ramips/dts/MZK-750DHP.dts
index e25118791dc..a32a1cd8826 100644
--- a/target/linux/ramips/dts/MZK-750DHP.dts
+++ b/target/linux/ramips/dts/MZK-750DHP.dts
@@ -69,6 +69,10 @@
 		ralink,port4 = "ephy";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pcie@10140000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/MZK-W300NH2.dts b/target/linux/ramips/dts/MZK-W300NH2.dts
index 43a98ce97c6..790092e1aaf 100644
--- a/target/linux/ramips/dts/MZK-W300NH2.dts
+++ b/target/linux/ramips/dts/MZK-W300NH2.dts
@@ -62,6 +62,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power {
diff --git a/target/linux/ramips/dts/NBG-419N.dts b/target/linux/ramips/dts/NBG-419N.dts
index 07c5b3c3568..6ef27d006ed 100644
--- a/target/linux/ramips/dts/NBG-419N.dts
+++ b/target/linux/ramips/dts/NBG-419N.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power {
diff --git a/target/linux/ramips/dts/NCS601W.dts b/target/linux/ramips/dts/NCS601W.dts
index dcf0e727a93..9f3121b2f1d 100644
--- a/target/linux/ramips/dts/NCS601W.dts
+++ b/target/linux/ramips/dts/NCS601W.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	ehci@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/NW718.dts b/target/linux/ramips/dts/NW718.dts
index c67b832794e..fa49bf10359 100644
--- a/target/linux/ramips/dts/NW718.dts
+++ b/target/linux/ramips/dts/NW718.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		cpu {
diff --git a/target/linux/ramips/dts/OMNI-EMB-HPM.dts b/target/linux/ramips/dts/OMNI-EMB-HPM.dts
index ed94c5f6d75..4f4ecd492be 100644
--- a/target/linux/ramips/dts/OMNI-EMB-HPM.dts
+++ b/target/linux/ramips/dts/OMNI-EMB-HPM.dts
@@ -71,6 +71,10 @@
 		};
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	ehci@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/OMNI-EMB.dts b/target/linux/ramips/dts/OMNI-EMB.dts
index 146e79b2452..c8bff4dd7d9 100644
--- a/target/linux/ramips/dts/OMNI-EMB.dts
+++ b/target/linux/ramips/dts/OMNI-EMB.dts
@@ -76,6 +76,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/PSR-680W.dts b/target/linux/ramips/dts/PSR-680W.dts
index 62e5f720edb..509787ae8ad 100644
--- a/target/linux/ramips/dts/PSR-680W.dts
+++ b/target/linux/ramips/dts/PSR-680W.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		wan {
diff --git a/target/linux/ramips/dts/PWH2004.dts b/target/linux/ramips/dts/PWH2004.dts
index bee5e0f266c..f94370f39c1 100644
--- a/target/linux/ramips/dts/PWH2004.dts
+++ b/target/linux/ramips/dts/PWH2004.dts
@@ -75,4 +75,8 @@
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
+
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
 };
diff --git a/target/linux/ramips/dts/RT-G32-B1.dts b/target/linux/ramips/dts/RT-G32-B1.dts
index 5b4aebc093a..396e683dfb6 100644
--- a/target/linux/ramips/dts/RT-G32-B1.dts
+++ b/target/linux/ramips/dts/RT-G32-B1.dts
@@ -29,7 +29,7 @@
 					read-only;
 				};
 
-				factory: partition@40000 {
+				devconf: partition@40000 {
 					label = "devconf";
 					reg = <0x40000 0x10000>;
 					read-only;
@@ -53,13 +53,17 @@
 	};
 
 	ethernet@10100000 {
-		mtd-mac-address = <&factory 0x4>;
+		mtd-mac-address = <&devconf 0x4>;
 	};
 
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devconf 0>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/RT-N10-PLUS.dts b/target/linux/ramips/dts/RT-N10-PLUS.dts
index 0606ccb2453..b51030c7129 100644
--- a/target/linux/ramips/dts/RT-N10-PLUS.dts
+++ b/target/linux/ramips/dts/RT-N10-PLUS.dts
@@ -27,7 +27,7 @@
 			read-only;
 		};
 
-		partition@40000 {
+		devconf: partition@40000 {
 			label = "devconf";
 			reg = <0x40000 0x10000>;
 			read-only;
@@ -43,6 +43,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&devconf 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		wps {
diff --git a/target/linux/ramips/dts/RT-N13U.dts b/target/linux/ramips/dts/RT-N13U.dts
index ed344858f4f..cac0d94d982 100644
--- a/target/linux/ramips/dts/RT-N13U.dts
+++ b/target/linux/ramips/dts/RT-N13U.dts
@@ -90,6 +90,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/RT-N14U.dts b/target/linux/ramips/dts/RT-N14U.dts
index d95365bc0e4..66ac0fc71be 100644
--- a/target/linux/ramips/dts/RT-N14U.dts
+++ b/target/linux/ramips/dts/RT-N14U.dts
@@ -66,6 +66,10 @@
 		ralink,port-map = "wllll";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pinctrl {
 		state_default: pinctrl0 {
 			default {
diff --git a/target/linux/ramips/dts/RT-N15.dts b/target/linux/ramips/dts/RT-N15.dts
index 893652055fe..23842d48b81 100644
--- a/target/linux/ramips/dts/RT-N15.dts
+++ b/target/linux/ramips/dts/RT-N15.dts
@@ -76,6 +76,10 @@
 		gpio-sck = <&gpio0 2 0>;
 	};
 
+	wmac@480000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/RTN56U.dts b/target/linux/ramips/dts/RTN56U.dts
index 305e36e85b8..4b7258333d0 100644
--- a/target/linux/ramips/dts/RTN56U.dts
+++ b/target/linux/ramips/dts/RTN56U.dts
@@ -56,7 +56,7 @@
 	wmac@10180000 {
 		status = "okay";
 		ralink,2ghz = <0>;
-		ralink,eeprom = "soc_wmac.eeprom";
+		ralink,mtd-eeprom = <&factory 0>;
 	};
 
 	ehci@101c0000 {
diff --git a/target/linux/ramips/dts/RUT5XX.dts b/target/linux/ramips/dts/RUT5XX.dts
index 530b8b12fb0..9ae69973524 100644
--- a/target/linux/ramips/dts/RUT5XX.dts
+++ b/target/linux/ramips/dts/RUT5XX.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		status {
diff --git a/target/linux/ramips/dts/SL-R7205.dts b/target/linux/ramips/dts/SL-R7205.dts
index 24bf9403799..574de55b49c 100644
--- a/target/linux/ramips/dts/SL-R7205.dts
+++ b/target/linux/ramips/dts/SL-R7205.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		wifi {
diff --git a/target/linux/ramips/dts/UR-326N4G.dts b/target/linux/ramips/dts/UR-326N4G.dts
index 4af10bb8f43..021efe584a2 100644
--- a/target/linux/ramips/dts/UR-326N4G.dts
+++ b/target/linux/ramips/dts/UR-326N4G.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		3g {
diff --git a/target/linux/ramips/dts/UR-336UN.dts b/target/linux/ramips/dts/UR-336UN.dts
index 5ce7fa9efdc..81d0be033f2 100644
--- a/target/linux/ramips/dts/UR-336UN.dts
+++ b/target/linux/ramips/dts/UR-336UN.dts
@@ -25,14 +25,20 @@
 		#size-cells = <1>;
 	};
 
-	ethernet@10100000 {
+	/* FIXME: no partitions defined */
+/*	ethernet@10100000 {
 		mtd-mac-address = <&factory 0x4004>;
 	};
-
+*/
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
 
+	/* FIXME: no partitions defined */
+/*	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+*/
 	gpio-leds {
 		compatible = "gpio-leds";
 		3g {
diff --git a/target/linux/ramips/dts/V11STFE.dts b/target/linux/ramips/dts/V11STFE.dts
index 54ead081ddb..6fa6aa5c3e1 100644
--- a/target/linux/ramips/dts/V11STFE.dts
+++ b/target/linux/ramips/dts/V11STFE.dts
@@ -24,6 +24,10 @@
 		status = "okay";
 	};
 
+	wmac@480000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pci@10140000 {
 		status = "okay";
 
@@ -54,7 +58,7 @@
 			read-only;
 		};
 
-		partition@40000 {
+		factory: partition@40000 {
 			reg = <0x00040000 0x00010000>;
 			label = "factory";
 			read-only;
diff --git a/target/linux/ramips/dts/V22RW-2X2.dts b/target/linux/ramips/dts/V22RW-2X2.dts
index 99e748e78da..7eff596676b 100644
--- a/target/linux/ramips/dts/V22RW-2X2.dts
+++ b/target/linux/ramips/dts/V22RW-2X2.dts
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		security {
diff --git a/target/linux/ramips/dts/W150M.dts b/target/linux/ramips/dts/W150M.dts
index f3ab7191ca0..915fb21d8a2 100644
--- a/target/linux/ramips/dts/W150M.dts
+++ b/target/linux/ramips/dts/W150M.dts
@@ -100,4 +100,8 @@
 	esw@10110000 {
 		ralink,portmap = <0x2f>;
 	};
+
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
 };
diff --git a/target/linux/ramips/dts/W306R_V20.dts b/target/linux/ramips/dts/W306R_V20.dts
index 3f57b35bd81..1c2cf6af88a 100644
--- a/target/linux/ramips/dts/W306R_V20.dts
+++ b/target/linux/ramips/dts/W306R_V20.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		sys {
diff --git a/target/linux/ramips/dts/W502U.dts b/target/linux/ramips/dts/W502U.dts
index af448eb7b17..6d3282ea645 100644
--- a/target/linux/ramips/dts/W502U.dts
+++ b/target/linux/ramips/dts/W502U.dts
@@ -60,6 +60,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		usb {
diff --git a/target/linux/ramips/dts/WCR150GN.dts b/target/linux/ramips/dts/WCR150GN.dts
index 976754eac1b..2a4fa115651 100644
--- a/target/linux/ramips/dts/WCR150GN.dts
+++ b/target/linux/ramips/dts/WCR150GN.dts
@@ -85,6 +85,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/WHR-1166D.dts b/target/linux/ramips/dts/WHR-1166D.dts
index 47e0b1b6edf..d62be1e10e5 100644
--- a/target/linux/ramips/dts/WHR-1166D.dts
+++ b/target/linux/ramips/dts/WHR-1166D.dts
@@ -73,6 +73,10 @@
 		ralink,port4 = "ephy";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pcie@10140000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/WHR-300HP2.dts b/target/linux/ramips/dts/WHR-300HP2.dts
index 28917fec93f..f3f2a9397d5 100644
--- a/target/linux/ramips/dts/WHR-300HP2.dts
+++ b/target/linux/ramips/dts/WHR-300HP2.dts
@@ -77,6 +77,10 @@
 		ralink,port4 = "ephy";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power {
diff --git a/target/linux/ramips/dts/WHR-600D.dts b/target/linux/ramips/dts/WHR-600D.dts
index df38b8c9517..5b4b900edc6 100644
--- a/target/linux/ramips/dts/WHR-600D.dts
+++ b/target/linux/ramips/dts/WHR-600D.dts
@@ -74,6 +74,10 @@
 		ralink,port4 = "ephy";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pcie@10140000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/WHR-G300N.dts b/target/linux/ramips/dts/WHR-G300N.dts
index 8cec31e0339..30541313ad8 100644
--- a/target/linux/ramips/dts/WHR-G300N.dts
+++ b/target/linux/ramips/dts/WHR-G300N.dts
@@ -29,6 +29,11 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	/* FIXME: no partitions defined */
+/*	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+*/
 	gpio-leds {
 		compatible = "gpio-leds";
 		diag {
diff --git a/target/linux/ramips/dts/WL-351.dts b/target/linux/ramips/dts/WL-351.dts
index 1e6705c02c7..fd30160692a 100644
--- a/target/linux/ramips/dts/WL-351.dts
+++ b/target/linux/ramips/dts/WL-351.dts
@@ -64,6 +64,10 @@
 		ralink,fpa2 = <0x1f003fff>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/WL341V3.dts b/target/linux/ramips/dts/WL341V3.dts
index 70317c7eeed..1271cfadbc7 100644
--- a/target/linux/ramips/dts/WL341V3.dts
+++ b/target/linux/ramips/dts/WL341V3.dts
@@ -21,7 +21,7 @@
 			read-only;
 		};
 
-		partition@20000 {
+		boardnvram: partition@20000 {
 			label = "board-nvram";
 			reg = <0x20000 0x10000>;
 			read-only;
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&boardnvram 0xfd70>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		first {
diff --git a/target/linux/ramips/dts/WLI-TX4-AG300N.dts b/target/linux/ramips/dts/WLI-TX4-AG300N.dts
index 063caed87b7..b144ca99864 100644
--- a/target/linux/ramips/dts/WLI-TX4-AG300N.dts
+++ b/target/linux/ramips/dts/WLI-TX4-AG300N.dts
@@ -59,6 +59,10 @@
 		};
 	};
 
+	wmac@480000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-keys-polled {
 		compatible = "gpio-keys-polled";
 		#address-cells = <1>;
diff --git a/target/linux/ramips/dts/WL_330N.dts b/target/linux/ramips/dts/WL_330N.dts
index 4fc4368c3fc..999a29d3308 100644
--- a/target/linux/ramips/dts/WL_330N.dts
+++ b/target/linux/ramips/dts/WL_330N.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		link {
diff --git a/target/linux/ramips/dts/WL_330N3G.dts b/target/linux/ramips/dts/WL_330N3G.dts
index 1c88ed31aa9..3b29104af58 100644
--- a/target/linux/ramips/dts/WL_330N3G.dts
+++ b/target/linux/ramips/dts/WL_330N3G.dts
@@ -56,6 +56,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		3g {
diff --git a/target/linux/ramips/dts/WMR300.dts b/target/linux/ramips/dts/WMR300.dts
index 56cf6a60f1c..b6bce43575d 100644
--- a/target/linux/ramips/dts/WMR300.dts
+++ b/target/linux/ramips/dts/WMR300.dts
@@ -53,6 +53,10 @@
 		ralink,port-map = "wllll";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pinctrl {
 		state_default: pinctrl0 {
 			default {
diff --git a/target/linux/ramips/dts/WNCE2001.dts b/target/linux/ramips/dts/WNCE2001.dts
index 10910afe311..d8a3b0badfe 100644
--- a/target/linux/ramips/dts/WNCE2001.dts
+++ b/target/linux/ramips/dts/WNCE2001.dts
@@ -77,6 +77,10 @@
 		mtd-mac-address = <&factory 0x28>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		power-green {
diff --git a/target/linux/ramips/dts/WR512-3GN-4M.dts b/target/linux/ramips/dts/WR512-3GN-4M.dts
index fccd04aed9c..00989702473 100644
--- a/target/linux/ramips/dts/WR512-3GN-4M.dts
+++ b/target/linux/ramips/dts/WR512-3GN-4M.dts
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		3g {
diff --git a/target/linux/ramips/dts/WR512-3GN-8M.dts b/target/linux/ramips/dts/WR512-3GN-8M.dts
index 01da52340e4..20a325cd71c 100644
--- a/target/linux/ramips/dts/WR512-3GN-8M.dts
+++ b/target/linux/ramips/dts/WR512-3GN-8M.dts
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x2f>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		3g {
diff --git a/target/linux/ramips/dts/WR6202.dts b/target/linux/ramips/dts/WR6202.dts
index ed3e70851d9..a769a98abc4 100644
--- a/target/linux/ramips/dts/WR6202.dts
+++ b/target/linux/ramips/dts/WR6202.dts
@@ -85,6 +85,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	otg@101c0000 {
 		status = "okay";
 	};
diff --git a/target/linux/ramips/dts/WR8305RT.dts b/target/linux/ramips/dts/WR8305RT.dts
index 81653f509d9..c28e422eea6 100644
--- a/target/linux/ramips/dts/WR8305RT.dts
+++ b/target/linux/ramips/dts/WR8305RT.dts
@@ -64,6 +64,10 @@
 		ralink,port-map = "llllw";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pinctrl {
 		state_default: pinctrl0 {
 			ephy {
diff --git a/target/linux/ramips/dts/WRTNODE.dts b/target/linux/ramips/dts/WRTNODE.dts
index 2e0b71bcc2c..3fb2303e026 100644
--- a/target/linux/ramips/dts/WRTNODE.dts
+++ b/target/linux/ramips/dts/WRTNODE.dts
@@ -65,6 +65,10 @@
 		ralink,port-map = "wllll";
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	pinctrl {
 		state_default: pinctrl0 {
 			default {
diff --git a/target/linux/ramips/dts/XDXRN502J.dts b/target/linux/ramips/dts/XDXRN502J.dts
index 628324cfbba..000f9db4054 100644
--- a/target/linux/ramips/dts/XDXRN502J.dts
+++ b/target/linux/ramips/dts/XDXRN502J.dts
@@ -52,6 +52,10 @@
 		ralink,portmap = <0x3e>;
 	};
 
+	wmac@10180000 {
+		ralink,mtd-eeprom = <&factory 0>;
+	};
+
 	gpio-leds {
 		compatible = "gpio-leds";
 		wifi {