diff --git a/target/linux/ath79/dts/qca9531_8dev_lima.dts b/target/linux/ath79/dts/qca9531_8dev_lima.dts
index 5a21251d6d3..19097d71836 100644
--- a/target/linux/ath79/dts/qca9531_8dev_lima.dts
+++ b/target/linux/ath79/dts/qca9531_8dev_lima.dts
@@ -67,6 +67,20 @@
 				label = "art";
 				reg = <0x080000 0x040000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 
 			partition@c0000 {
@@ -108,17 +122,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts b/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts
index 7873f75528b..072a0fa27c2 100644
--- a/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts
+++ b/target/linux/ath79/dts/qca9531_alcatel_hh40v.dts
@@ -119,24 +119,26 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				cal_art_1000: cal@1000 {
-					reg = <0x1000 0x440>;
-				};
+					cal_art_1000: cal@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				macaddr_art_0: macaddr@0 {
-					reg = <0x0 0x6>;
-				};
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
 
-				macaddr_art_6: macaddr@6 {
-					reg = <0x6 0x6>;
-				};
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi b/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi
index 406985d576f..c2e8f0b1625 100644
--- a/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi
+++ b/target/linux/ath79/dts/qca9531_alfa-network_r36a.dtsi
@@ -87,16 +87,18 @@
 				reg = <0x070000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				cal_art_1000: cal@1000 {
-					reg = <0x1000 0x440>;
-				};
+					cal_art_1000: cal@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 				};
 			};
 
diff --git a/target/linux/ath79/dts/qca9531_asus_rp-ac51.dts b/target/linux/ath79/dts/qca9531_asus_rp-ac51.dts
index ec8b825ef2f..b2777f6cc6f 100644
--- a/target/linux/ath79/dts/qca9531_asus_rp-ac51.dts
+++ b/target/linux/ath79/dts/qca9531_asus_rp-ac51.dts
@@ -97,16 +97,18 @@
 				reg = <0x050000 0x10000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_art_0: macaddr@0 {
-					reg = <0x0 0x6>;
-				};
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 				};
 			};
 
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
index 4a84e150ae6..d0d2a07c2b4 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-e130n-v2.dts
@@ -94,6 +94,16 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -134,13 +144,3 @@
 	nvmem-cell-names = "mac-address";
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e313ac.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e313ac.dts
index c1875213519..d078a9dcce5 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-e313ac.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-e313ac.dts
@@ -93,6 +93,20 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -143,17 +157,3 @@
 		reg = <0 0 0 0 0>;
 	};
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_1002: macaddr@1002 {
-		reg = <0x1002 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e314n-v2.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e314n-v2.dts
index 92881267885..ff053d628e4 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-e314n-v2.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-e314n-v2.dts
@@ -108,6 +108,20 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -149,17 +163,3 @@
 	status = "okay";
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e5.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e5.dts
index 17cbe1df142..73d45f9b7cc 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-e5.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-e5.dts
@@ -92,6 +92,20 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -134,17 +148,3 @@
 		pinctrl-single,bits = <0x4 0x0 0xff>;
 	};
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts b/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts
index 75e30ff1b7b..5a441b551dc 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-e560ac.dts
@@ -103,6 +103,16 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -161,13 +171,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <10>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts b/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts
index e5024b39f94..54cc9b2fa05 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-ew72.dts
@@ -87,6 +87,16 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -127,13 +137,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <3>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts b/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts
index fc2f6de1114..94adf258cb9 100644
--- a/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts
+++ b/target/linux/ath79/dts/qca9531_comfast_cf-wr752ac-v1.dts
@@ -87,6 +87,16 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -126,13 +136,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <10>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_compex_wpj531-16m.dts b/target/linux/ath79/dts/qca9531_compex_wpj531-16m.dts
index 16a2794b973..7a8f6edcee1 100644
--- a/target/linux/ath79/dts/qca9531_compex_wpj531-16m.dts
+++ b/target/linux/ath79/dts/qca9531_compex_wpj531-16m.dts
@@ -83,6 +83,20 @@
 				label = "u-boot";
 				reg = <0x000000 0x030000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_2e010: macaddr@2e010 {
+						reg = <0x2e010 0x6>;
+					};
+
+					macaddr_uboot_2e018: macaddr@2e018 {
+						reg = <0x2e018 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -136,17 +150,3 @@
 &usb0 {
 	status = "okay";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_2e010: macaddr@2e010 {
-		reg = <0x2e010 0x6>;
-	};
-
-	macaddr_uboot_2e018: macaddr@2e018 {
-		reg = <0x2e018 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
index 667f779b171..b7b663c8c2b 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar300m.dtsi
@@ -114,6 +114,16 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -169,16 +179,6 @@
 	mtd-cal-data = <&art 0x1000>;
 };
 
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
-
 &pinmux {
 	pinctrl-names = "default";
 	pinctrl-0 = <&enable_gpio17>;
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
index 60bd2922a2d..ed3ab2a2d0a 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-ar750.dts
@@ -113,6 +113,16 @@
 				label = "art";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -144,13 +154,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-e750.dts b/target/linux/ath79/dts/qca9531_glinet_gl-e750.dts
index ca0784e6bf6..e0c65b7f1b8 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-e750.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-e750.dts
@@ -83,6 +83,16 @@
 				label = "art";
 				reg = <0x50000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -133,13 +143,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-s200.dtsi b/target/linux/ath79/dts/qca9531_glinet_gl-s200.dtsi
index 44bb83af64a..114ad461351 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-s200.dtsi
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-s200.dtsi
@@ -136,8 +136,6 @@
 				reg = <0x050000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-
 				nvmem-layout {
 					compatible = "fixed-layout";
 					#address-cells = <1>;
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-x300b.dts b/target/linux/ath79/dts/qca9531_glinet_gl-x300b.dts
index 5f5646b3e03..5810a635747 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-x300b.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-x300b.dts
@@ -108,6 +108,16 @@
 				label = "art";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -140,13 +150,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-x750.dts b/target/linux/ath79/dts/qca9531_glinet_gl-x750.dts
index 0b2030bb49c..ae5373a37a6 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-x750.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-x750.dts
@@ -95,6 +95,16 @@
 				label = "art";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -126,13 +136,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_glinet_gl-xe300.dts b/target/linux/ath79/dts/qca9531_glinet_gl-xe300.dts
index 9212c0a7548..d0dfccd12c7 100644
--- a/target/linux/ath79/dts/qca9531_glinet_gl-xe300.dts
+++ b/target/linux/ath79/dts/qca9531_glinet_gl-xe300.dts
@@ -108,6 +108,16 @@
 				label = "art";
 				reg = <0x50000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -160,13 +170,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
index 2838b9c82d6..3b01fa9e421 100644
--- a/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
+++ b/target/linux/ath79/dts/qca9531_joyit_jt-or750i.dts
@@ -94,6 +94,20 @@
 				label = "art";
 				reg = <0xff0000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -122,17 +136,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_letv_lba-047-ch.dts b/target/linux/ath79/dts/qca9531_letv_lba-047-ch.dts
index 586facc9e5b..414db556cad 100644
--- a/target/linux/ath79/dts/qca9531_letv_lba-047-ch.dts
+++ b/target/linux/ath79/dts/qca9531_letv_lba-047-ch.dts
@@ -119,20 +119,22 @@
 				reg = <0xff0000 0x10000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_art_0: macaddr@0 {
-					reg = <0x0 0x6>;
-				};
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
 
-				macaddr_art_6: macaddr@6 {
-					reg = <0x6 0x6>;
-				};
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
 
-				cal_art_1000: calibration@1000 {
-					reg = <0x1000 0x440>;
+					cal_art_1000: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9531_qxwlan_e600g.dtsi b/target/linux/ath79/dts/qca9531_qxwlan_e600g.dtsi
index ce515159b15..d718f7501b5 100644
--- a/target/linux/ath79/dts/qca9531_qxwlan_e600g.dtsi
+++ b/target/linux/ath79/dts/qca9531_qxwlan_e600g.dtsi
@@ -79,6 +79,16 @@
 				label = "pri-data";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_pridata_400: macaddr@400 {
+						reg = <0x400 0x6>;
+					};
+				};
 			};
 
 			art: partition@60000 {
@@ -110,13 +120,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&pridata {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_pridata_400: macaddr@400 {
-		reg = <0x400 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_telco_t1.dts b/target/linux/ath79/dts/qca9531_telco_t1.dts
index 540de60377e..1748d9e1c9c 100644
--- a/target/linux/ath79/dts/qca9531_telco_t1.dts
+++ b/target/linux/ath79/dts/qca9531_telco_t1.dts
@@ -96,6 +96,20 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -138,17 +152,3 @@
 		pinctrl-single,bits = <0x4 0x0 0xff>;
 	};
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_teltonika_rut300.dts b/target/linux/ath79/dts/qca9531_teltonika_rut300.dts
index f79be8dca54..4954d35537f 100644
--- a/target/linux/ath79/dts/qca9531_teltonika_rut300.dts
+++ b/target/linux/ath79/dts/qca9531_teltonika_rut300.dts
@@ -84,6 +84,16 @@
 				label = "config";
 				reg = <0x020000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_config_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -118,16 +128,6 @@
 	status = "okay";
 };
 
-&config {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_config_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
-
 &eth0 {
 	status = "okay";
 	phy-handle = <&swphy0>;
diff --git a/target/linux/ath79/dts/qca9531_tplink_archer-d50-v1.dts b/target/linux/ath79/dts/qca9531_tplink_archer-d50-v1.dts
index 0fc2bd3df82..887b8ef8161 100644
--- a/target/linux/ath79/dts/qca9531_tplink_archer-d50-v1.dts
+++ b/target/linux/ath79/dts/qca9531_tplink_archer-d50-v1.dts
@@ -124,6 +124,16 @@
 				label = "romfile";
 				reg = <0x7d0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_romfile_f100: macaddr@f100 {
+						reg = <0xf100 0x6>;
+					};
+				};
 			};
 
 			partition@7e0000 {
@@ -180,13 +190,3 @@
 &usb0 {
 	status = "okay";
 };
-
-&romfile {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_romfile_f100: macaddr@f100 {
-		reg = <0xf100 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_tplink_tl-mr3420-v3.dts b/target/linux/ath79/dts/qca9531_tplink_tl-mr3420-v3.dts
index e6fb8525961..e8e1468ae19 100644
--- a/target/linux/ath79/dts/qca9531_tplink_tl-mr3420-v3.dts
+++ b/target/linux/ath79/dts/qca9531_tplink_tl-mr3420-v3.dts
@@ -149,6 +149,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -196,13 +206,3 @@
 &usb_phy {
 	status = "okay";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts b/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts
index 5a990fff023..b1acb0b22bb 100644
--- a/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts
+++ b/target/linux/ath79/dts/qca9531_tplink_tl-mr6400-v1.dts
@@ -106,6 +106,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -154,13 +164,3 @@
 &usb_phy {
 	status = "okay";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts b/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts
index 09f086b90dd..9d408cddfa7 100644
--- a/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts
+++ b/target/linux/ath79/dts/qca9531_tplink_tl-wr902ac-v1.dts
@@ -125,6 +125,16 @@
 				label = "info";
 				reg = <0x750000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@760000 {
@@ -180,13 +190,3 @@
 &usb0 {
 	status = "okay";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_wallys_dr531.dts b/target/linux/ath79/dts/qca9531_wallys_dr531.dts
index 9982914442d..59f86170c98 100644
--- a/target/linux/ath79/dts/qca9531_wallys_dr531.dts
+++ b/target/linux/ath79/dts/qca9531_wallys_dr531.dts
@@ -116,6 +116,20 @@
 			env: partition@30000 {
 				label = "u-boot-env";
 				reg = <0x030000 0x010000>;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_env_f810: macaddr@f810 {
+						reg = <0xf810 0x6>;
+					};
+
+					macaddr_env_f818: macaddr@f818 {
+						reg = <0xf818 0x6>;
+					};
+				};
 			};
 
 			partition@40000 {
@@ -152,17 +166,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&env {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_env_f810: macaddr@f810 {
-		reg = <0xf810 0x6>;
-	};
-
-	macaddr_env_f818: macaddr@f818 {
-		reg = <0xf818 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9531_yuncore_a770.dts b/target/linux/ath79/dts/qca9531_yuncore_a770.dts
index a255342015a..fa1f7dc5fca 100644
--- a/target/linux/ath79/dts/qca9531_yuncore_a770.dts
+++ b/target/linux/ath79/dts/qca9531_yuncore_a770.dts
@@ -88,6 +88,20 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -116,17 +130,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts b/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts
index 64df0cff7c5..f4422e22429 100644
--- a/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts
+++ b/target/linux/ath79/dts/qca9533_comfast_cf-e110n-v2.dts
@@ -112,6 +112,24 @@
 				label = "art";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -154,21 +172,3 @@
 	nvmem-cells = <&macaddr_art_6>;
 	nvmem-cell-names = "mac-address";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_art_1002: macaddr@1002 {
-		reg = <0x1002 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_kuwfi_c910.dts b/target/linux/ath79/dts/qca9533_kuwfi_c910.dts
index a705aa8686b..b42915dd332 100644
--- a/target/linux/ath79/dts/qca9533_kuwfi_c910.dts
+++ b/target/linux/ath79/dts/qca9533_kuwfi_c910.dts
@@ -140,16 +140,18 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_art_1000: macaddr@1000 {
-					reg = <0x1000 0x440>;
-				};
+					calibration_art_1000: macaddr@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi b/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi
index 8a51d6b6d65..f2a3a67b1e5 100644
--- a/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi
+++ b/target/linux/ath79/dts/qca9533_openmesh_om2p-v4.dtsi
@@ -122,6 +122,20 @@
 				label = "ART";
 				reg = <0xfc0000 0x040000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -154,17 +168,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <2>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi b/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi
index 602365f45d8..dfd7e18d819 100644
--- a/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi
+++ b/target/linux/ath79/dts/qca9533_plasmacloud_pa300.dtsi
@@ -104,6 +104,16 @@
 				label = "ART";
 				reg = <0xfc0000 0x040000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -137,13 +147,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <2>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_qca_ap143-16m.dts b/target/linux/ath79/dts/qca9533_qca_ap143-16m.dts
index 05d87e39959..ce59e8a54b5 100644
--- a/target/linux/ath79/dts/qca9533_qca_ap143-16m.dts
+++ b/target/linux/ath79/dts/qca9533_qca_ap143-16m.dts
@@ -45,6 +45,20 @@
 		label = "art";
 		reg = <0xff0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
+
+			macaddr_art_6: macaddr@6 {
+				reg = <0x6 0x6>;
+			};
+		};
 	};
 };
 
@@ -61,17 +75,3 @@
 &wmac {
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_qca_ap143-8m.dts b/target/linux/ath79/dts/qca9533_qca_ap143-8m.dts
index db6a92720ba..f04885e47d1 100644
--- a/target/linux/ath79/dts/qca9533_qca_ap143-8m.dts
+++ b/target/linux/ath79/dts/qca9533_qca_ap143-8m.dts
@@ -45,6 +45,20 @@
 		label = "art";
 		reg = <0x7f0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
+
+			macaddr_art_6: macaddr@6 {
+				reg = <0x6 0x6>;
+			};
+		};
 	};
 };
 
@@ -61,17 +75,3 @@
 &wmac {
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi b/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi
index 3f3fae1dfd7..e7044b60a43 100644
--- a/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi
+++ b/target/linux/ath79/dts/qca9533_tplink_cpexxx.dtsi
@@ -80,6 +80,16 @@
 				label = "info";
 				reg = <0x030000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@40000 {
@@ -119,13 +129,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wa801nd.dtsi b/target/linux/ath79/dts/qca9533_tplink_tl-wa801nd.dtsi
index 43db72ec650..5a05869a1c0 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wa801nd.dtsi
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wa801nd.dtsi
@@ -80,6 +80,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -117,13 +127,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
index e7d837a5740..762197f255a 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wa850re-v2.dts
@@ -128,6 +128,16 @@
 				label = "info";
 				reg = <0x3c0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@3d0000 {
@@ -165,13 +175,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wr802n.dtsi b/target/linux/ath79/dts/qca9533_tplink_tl-wr802n.dtsi
index 4be1ced4b21..520cc1b9e04 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wr802n.dtsi
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wr802n.dtsi
@@ -51,6 +51,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -89,13 +99,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi b/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi
index c9c109ee392..13d415e16d0 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wr841.dtsi
@@ -86,6 +86,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -125,13 +135,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wr841hp-v3.dts b/target/linux/ath79/dts/qca9533_tplink_tl-wr841hp-v3.dts
index 07b706251a3..ba326ee61a6 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wr841hp-v3.dts
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wr841hp-v3.dts
@@ -108,6 +108,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -147,13 +157,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_tplink_tl-wr842n-v3.dts b/target/linux/ath79/dts/qca9533_tplink_tl-wr842n-v3.dts
index 2d00159909b..1262e3fe124 100644
--- a/target/linux/ath79/dts/qca9533_tplink_tl-wr842n-v3.dts
+++ b/target/linux/ath79/dts/qca9533_tplink_tl-wr842n-v3.dts
@@ -119,6 +119,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -158,13 +168,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_ubnt_aircube-isp.dts b/target/linux/ath79/dts/qca9533_ubnt_aircube-isp.dts
index e854f3700cd..c5d6e66c9a7 100644
--- a/target/linux/ath79/dts/qca9533_ubnt_aircube-isp.dts
+++ b/target/linux/ath79/dts/qca9533_ubnt_aircube-isp.dts
@@ -66,6 +66,20 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -93,17 +107,3 @@
 	status = "okay";
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9533_yuncore_a930.dts b/target/linux/ath79/dts/qca9533_yuncore_a930.dts
index 089eebaa9cc..30b340768f7 100644
--- a/target/linux/ath79/dts/qca9533_yuncore_a930.dts
+++ b/target/linux/ath79/dts/qca9533_yuncore_a930.dts
@@ -79,6 +79,20 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -102,17 +116,3 @@
 	status = "okay";
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca953x_dlink_dap-2xxx.dtsi b/target/linux/ath79/dts/qca953x_dlink_dap-2xxx.dtsi
index 13d41f7bd57..ff08f90106c 100644
--- a/target/linux/ath79/dts/qca953x_dlink_dap-2xxx.dtsi
+++ b/target/linux/ath79/dts/qca953x_dlink_dap-2xxx.dtsi
@@ -47,12 +47,14 @@
 				reg = <0xff0000 0x10000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				cal_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
+					cal_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi b/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi
index e49b8fc1ca0..b9045a3e5f4 100644
--- a/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi
+++ b/target/linux/ath79/dts/qca953x_tplink_tl-wr810n.dtsi
@@ -68,6 +68,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -107,13 +117,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9550_airtight_c-75.dts b/target/linux/ath79/dts/qca9550_airtight_c-75.dts
index 8dbf1c8bc46..d4bf64ab40b 100644
--- a/target/linux/ath79/dts/qca9550_airtight_c-75.dts
+++ b/target/linux/ath79/dts/qca9550_airtight_c-75.dts
@@ -156,6 +156,20 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -191,17 +205,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9557_8dev_rambutan.dts b/target/linux/ath79/dts/qca9557_8dev_rambutan.dts
index a8168746928..f01ac7fc91c 100644
--- a/target/linux/ath79/dts/qca9557_8dev_rambutan.dts
+++ b/target/linux/ath79/dts/qca9557_8dev_rambutan.dts
@@ -45,6 +45,20 @@
 			label = "art";
 			reg = <0x500000 0x100000>;
 			read-only;
+
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				macaddr_art_0: macaddr@0 {
+					reg = <0x0 0x6>;
+				};
+
+				macaddr_art_6: macaddr@6 {
+					reg = <0x6 0x6>;
+				};
+			};
 		};
 
 		partition@600000 {
@@ -119,17 +133,3 @@
 &usb1 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9557_araknis_an-500-ap-i-ac.dts b/target/linux/ath79/dts/qca9557_araknis_an-500-ap-i-ac.dts
index bd9f3e8da8a..69f351ac506 100644
--- a/target/linux/ath79/dts/qca9557_araknis_an-500-ap-i-ac.dts
+++ b/target/linux/ath79/dts/qca9557_araknis_an-500-ap-i-ac.dts
@@ -59,6 +59,16 @@
 		label = "art";
 		reg = <0xff0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
+		};
 	};
 };
 
@@ -97,13 +107,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9557_buffalo_bhr-4grv2.dts b/target/linux/ath79/dts/qca9557_buffalo_bhr-4grv2.dts
index a4e2a615f64..f17af66cdf9 100644
--- a/target/linux/ath79/dts/qca9557_buffalo_bhr-4grv2.dts
+++ b/target/linux/ath79/dts/qca9557_buffalo_bhr-4grv2.dts
@@ -95,6 +95,20 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -136,17 +150,3 @@
 		full-duplex;
 	};
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9557_dlink_dap-2660-a1.dts b/target/linux/ath79/dts/qca9557_dlink_dap-2660-a1.dts
index 93e2fc0d974..b380fef5152 100644
--- a/target/linux/ath79/dts/qca9557_dlink_dap-2660-a1.dts
+++ b/target/linux/ath79/dts/qca9557_dlink_dap-2660-a1.dts
@@ -90,7 +90,17 @@
 };
 
 &art {
-	cal_ath10k: calibration@5000 {
-		reg = <0x5000 0x844>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		cal_ath9k: calibration@1000 {
+			reg = <0x1000 0x440>;
+		};
+
+		cal_ath10k: calibration@5000 {
+			reg = <0x5000 0x844>;
+		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi
index 498499c1466..c00b8184b4f 100644
--- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi
+++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi
@@ -102,20 +102,22 @@
 				reg = <0x1f0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_art_0: macaddr@0 {
-					reg = <0x0 0x6>;
-				};
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
 
-				cal_art_1000: cal@1000 {
-					reg = <0x1000 0x440>;
-				};
+					cal_art_1000: cal@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				cal_art_5000: cal@5000 {
-					reg = <0x5000 0x844>;
+					cal_art_5000: cal@5000 {
+						reg = <0x5000 0x844>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9557_engenius_eap1200h.dts b/target/linux/ath79/dts/qca9557_engenius_eap1200h.dts
index d20a0444753..47f66f12223 100644
--- a/target/linux/ath79/dts/qca9557_engenius_eap1200h.dts
+++ b/target/linux/ath79/dts/qca9557_engenius_eap1200h.dts
@@ -62,20 +62,22 @@
 		reg = <0xff0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		macaddr_art_0: macaddr@0 {
-			reg = <0x0 0x6>;
-		};
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
 
-		calibration_art_1000: calibration@1000 {
-			reg = <0x1000 0x440>;
-		};
+			calibration_art_1000: calibration@1000 {
+				reg = <0x1000 0x440>;
+			};
 
-		calibration_art_5000: calibration@5000 {
-			reg = <0x5000 0x844>;
+			calibration_art_5000: calibration@5000 {
+				reg = <0x5000 0x844>;
+			};
 		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9557_engenius_enstationac-v1.dts b/target/linux/ath79/dts/qca9557_engenius_enstationac-v1.dts
index 12740b9bdf7..0c64f995229 100644
--- a/target/linux/ath79/dts/qca9557_engenius_enstationac-v1.dts
+++ b/target/linux/ath79/dts/qca9557_engenius_enstationac-v1.dts
@@ -65,6 +65,16 @@
 		label = "art";
 		reg = <0xff0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
+		};
 	};
 };
 
@@ -114,13 +124,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_allnet_all-wap02860ac.dts b/target/linux/ath79/dts/qca9558_allnet_all-wap02860ac.dts
index c8b1d94c965..34e0e44e47b 100644
--- a/target/linux/ath79/dts/qca9558_allnet_all-wap02860ac.dts
+++ b/target/linux/ath79/dts/qca9558_allnet_all-wap02860ac.dts
@@ -83,6 +83,16 @@
 		label = "art";
 		reg = <0xff0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
+		};
 	};
 };
 
@@ -98,13 +108,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_araknis_an-700-ap-i-ac.dts b/target/linux/ath79/dts/qca9558_araknis_an-700-ap-i-ac.dts
index 520ca60144b..c51fbc56535 100644
--- a/target/linux/ath79/dts/qca9558_araknis_an-700-ap-i-ac.dts
+++ b/target/linux/ath79/dts/qca9558_araknis_an-700-ap-i-ac.dts
@@ -98,11 +98,13 @@
 };
 
 &art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
 
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
+		macaddr_art_0: macaddr@0 {
+			reg = <0x0 0x6>;
+		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9558_aruba_ap-115.dts b/target/linux/ath79/dts/qca9558_aruba_ap-115.dts
index b8aed4c283a..37d0f0b2685 100644
--- a/target/linux/ath79/dts/qca9558_aruba_ap-115.dts
+++ b/target/linux/ath79/dts/qca9558_aruba_ap-115.dts
@@ -164,6 +164,16 @@
 				label = "oemdata";
 				reg = <0xfe0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_oemdata_1d: macaddr@1d {
+						reg = <0x1d 0x6>;
+					};
+				};
 			};
 
 			partition@ff0000 {
@@ -219,16 +229,6 @@
 	};
 };
 
-&oemdata {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_oemdata_1d: macaddr@1d {
-		reg = <0x1d 0x6>;
-	};
-};
-
 &usb_phy0 {
 	status = "okay";
 };
diff --git a/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi b/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi
index 72e52129a4c..f534d51aa1f 100644
--- a/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi
+++ b/target/linux/ath79/dts/qca9558_belkin_f9x-v2.dtsi
@@ -151,6 +151,16 @@
 			art: partition@ff0000 {
 				label = "art";
 				reg = <0xff0000 0x010000>;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -217,13 +227,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts b/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts
index b38e2e848f6..208840ebba2 100644
--- a/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts
+++ b/target/linux/ath79/dts/qca9558_comfast_cf-e380ac-v2.dts
@@ -91,6 +91,16 @@
 				label = "art";
 				reg = <0x040000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@50000 {
@@ -138,13 +148,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <10>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts
index ba145d6fb0f..e0471c53487 100644
--- a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts
+++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v1.dts
@@ -30,6 +30,24 @@
 				label = "art";
 				reg = <0x020000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_art_18: macaddr@18 {
+						reg = <0x18 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -63,21 +81,3 @@
 	nvmem-cells = <&macaddr_art_18>;
 	nvmem-cell-names = "mac-address";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_art_18: macaddr@18 {
-		reg = <0x18 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts
index d0929f981c0..9bbbf2a9b40 100644
--- a/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts
+++ b/target/linux/ath79/dts/qca9558_comfast_cf-wr650ac-v2.dts
@@ -30,6 +30,24 @@
 				label = "art";
 				reg = <0x040000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_art_18: macaddr@18 {
+						reg = <0x18 0x6>;
+					};
+				};
 			};
 
 			partition@50000 {
@@ -63,21 +81,3 @@
 	nvmem-cells = <&macaddr_art_18>;
 	nvmem-cell-names = "mac-address";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_art_18: macaddr@18 {
-		reg = <0x18 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_compex_wpj558-16m.dts b/target/linux/ath79/dts/qca9558_compex_wpj558-16m.dts
index 61597c89095..d6ecc7728fa 100644
--- a/target/linux/ath79/dts/qca9558_compex_wpj558-16m.dts
+++ b/target/linux/ath79/dts/qca9558_compex_wpj558-16m.dts
@@ -76,6 +76,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x030000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_2e010: macaddr@2e010 {
+						reg = <0x2e010 0x6>;
+					};
+				};
 			};
 
 			firmware@30000 {
@@ -131,13 +141,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_2e010: macaddr@2e010 {
-		reg = <0x2e010 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi
index b96b314fa54..f4a2cf040d2 100644
--- a/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi
+++ b/target/linux/ath79/dts/qca9558_devolo_dvl1xxx.dtsi
@@ -69,6 +69,16 @@
 				label = "art";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -118,13 +128,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <(-2)>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts b/target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts
index c398dd637f1..d32329b3660 100644
--- a/target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts
+++ b/target/linux/ath79/dts/qca9558_dlink_dap-2680-a1.dts
@@ -90,7 +90,17 @@
 };
 
 &art {
-	precal_ath10k: pre-calibration@5000 {
-		reg = <0x5000 0x2f20>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		cal_ath9k: calibration@1000 {
+			reg = <0x1000 0x440>;
+		};
+
+		precal_ath10k: pre-calibration@5000 {
+			reg = <0x5000 0x2f20>;
+		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9558_dlink_dap-2695-a1.dts b/target/linux/ath79/dts/qca9558_dlink_dap-2695-a1.dts
index 1985fa48d83..3ca641a5507 100644
--- a/target/linux/ath79/dts/qca9558_dlink_dap-2695-a1.dts
+++ b/target/linux/ath79/dts/qca9558_dlink_dap-2695-a1.dts
@@ -116,7 +116,17 @@
 };
 
 &art {
-	cal_ath10k: calibration@5000 {
-		reg = <0x5000 0x844>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		cal_ath9k: calibration@1000 {
+			reg = <0x1000 0x440>;
+		};
+
+		cal_ath10k: calibration@5000 {
+			reg = <0x5000 0x844>;
+		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9558_dlink_dap-3662-a1.dts b/target/linux/ath79/dts/qca9558_dlink_dap-3662-a1.dts
index 27883f721cf..e72af99da24 100644
--- a/target/linux/ath79/dts/qca9558_dlink_dap-3662-a1.dts
+++ b/target/linux/ath79/dts/qca9558_dlink_dap-3662-a1.dts
@@ -104,7 +104,17 @@
 };
 
 &art {
-	cal_ath10k: calibration@5000 {
-		reg = <0x5000 0x844>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		cal_ath9k: calibration@1000 {
+			reg = <0x1000 0x440>;
+		};
+
+		cal_ath10k: calibration@5000 {
+			reg = <0x5000 0x844>;
+		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts b/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts
index d012ae4c505..e5c2cbcb72c 100644
--- a/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts
+++ b/target/linux/ath79/dts/qca9558_dlink_dir-629-a1.dts
@@ -114,8 +114,6 @@
 				reg = <0x048000 0x008000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-
 				nvmem-layout {
 					compatible = "fixed-layout";
 					#address-cells = <1>;
@@ -152,12 +150,14 @@
 				reg = <0x080000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				cal_art_1000: calibration@1000 {
-					reg = <0x1000 0x440>;
+					cal_art_1000: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 				};
 			};
 
diff --git a/target/linux/ath79/dts/qca9558_domywifi_dw33d.dts b/target/linux/ath79/dts/qca9558_domywifi_dw33d.dts
index 976ac551f72..73f4ed0d1e1 100644
--- a/target/linux/ath79/dts/qca9558_domywifi_dw33d.dts
+++ b/target/linux/ath79/dts/qca9558_domywifi_dw33d.dts
@@ -120,6 +120,24 @@
 				label = "art";
 				reg = <0xff0000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_art_c: macaddr@c {
+						reg = <0xc 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -193,21 +211,3 @@
 	nvmem-cells = <&macaddr_art_c>;
 	nvmem-cell-names = "mac-address";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_art_c: macaddr@c {
-		reg = <0xc 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_engenius_eap1750h.dts b/target/linux/ath79/dts/qca9558_engenius_eap1750h.dts
index e17eda3840b..47e4fec1424 100644
--- a/target/linux/ath79/dts/qca9558_engenius_eap1750h.dts
+++ b/target/linux/ath79/dts/qca9558_engenius_eap1750h.dts
@@ -62,20 +62,22 @@
 		reg = <0xff0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		macaddr_art_0: macaddr@0 {
-			reg = <0x0 0x6>;
-		};
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
 
-		calibration_art_1000: calibration@1000 {
-			reg = <0x1000 0x440>;
-		};
+			calibration_art_1000: calibration@1000 {
+				reg = <0x1000 0x440>;
+			};
 
-		calibration_art_5000: calibration@5000 {
-			reg = <0x5000 0x844>;
+			calibration_art_5000: calibration@5000 {
+				reg = <0x5000 0x844>;
+			};
 		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts b/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts
index eca3a6091f7..208eb11cd55 100644
--- a/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts
+++ b/target/linux/ath79/dts/qca9558_engenius_ews660ap.dts
@@ -50,20 +50,22 @@
 		reg = <0xff0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		macaddr_art_0: macaddr@0 {
-			reg = <0x0 0x6>;
-		};
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
 
-		calibration_art_1000: calibration@1000 {
-			reg = <0x1000 0x440>;
-		};
+			calibration_art_1000: calibration@1000 {
+				reg = <0x1000 0x440>;
+			};
 
-		calibration_art_5000: calibration@5000 {
-			reg = <0x5000 0x844>;
+			calibration_art_5000: calibration@5000 {
+				reg = <0x5000 0x844>;
+			};
 		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts b/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts
index 159013066f6..6cd93f6b33d 100644
--- a/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts
+++ b/target/linux/ath79/dts/qca9558_jjplus_jwap230.dts
@@ -84,20 +84,22 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_art_lan: macaddr@0 {
-					reg = <0x0 0x6>;
-				};
+					macaddr_art_lan: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
 
-				macaddr_art_wan: macaddr@6 {
-					reg = <0x6 0x6>;
-				};
+					macaddr_art_wan: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
 
-				calibration_art_wlan: calibration@1000 {
-					reg = <0x1000 0x440>;
+					calibration_art_wlan: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts b/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts
index b3447f8be36..5ee38b2e884 100644
--- a/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts
+++ b/target/linux/ath79/dts/qca9558_librerouter_librerouter-v1.dts
@@ -139,6 +139,24 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_art_c: macaddr@c {
+						reg = <0xc 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -193,21 +211,3 @@
 	nvmem-cells = <&macaddr_art_c>;
 	nvmem-cell-names = "mac-address";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_art_c: macaddr@c {
-		reg = <0xc 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts b/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
index 000dbce8e11..6c799efe33a 100644
--- a/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
+++ b/target/linux/ath79/dts/qca9558_linksys_ea4500-v3.dts
@@ -90,20 +90,22 @@
 			reg = <0x140000 0x40000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			cal_macaddr: macaddr@0 {
-				reg = <0x6 0x6>;
-			};
+				cal_macaddr: macaddr@0 {
+					reg = <0x6 0x6>;
+				};
 
-			cal_ath9k_soc: cal_ath9k@1000 {
-				reg = <0x1000 0x440>;
-			};
+				cal_ath9k_soc: cal_ath9k@1000 {
+					reg = <0x1000 0x440>;
+				};
 
-			cal_ath9k_pci: cal_ath9k@5000 {
-				reg = <0x5000 0x440>;
+				cal_ath9k_pci: cal_ath9k@5000 {
+					reg = <0x5000 0x440>;
+				};
 			};
 		};
 
diff --git a/target/linux/ath79/dts/qca9558_netgear_ex7300.dts b/target/linux/ath79/dts/qca9558_netgear_ex7300.dts
index b94ccd30b7d..81898e972f0 100644
--- a/target/linux/ath79/dts/qca9558_netgear_ex7300.dts
+++ b/target/linux/ath79/dts/qca9558_netgear_ex7300.dts
@@ -159,6 +159,32 @@
 				label = "caldata";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_caldata_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_caldata_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_caldata_c: macaddr@c {
+						reg = <0xc 0x6>;
+					};
+
+					cal_caldata_1000: cal@1000 {
+						reg = <0x1000 0x440>;
+					};
+
+					precal_caldata_5000: precal@5000 {
+						reg = <0x5000 0x2f20>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -218,29 +244,3 @@
 
 	pll-data = <0x86000000 0x80000101 0x80001313>;
 };
-
-&caldata {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_caldata_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_caldata_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_caldata_c: macaddr@c {
-		reg = <0xc 0x6>;
-	};
-
-	cal_caldata_1000: cal@1000 {
-		reg = <0x1000 0x440>;
-	};
-
-	precal_caldata_5000: precal@5000 {
-		reg = <0x5000 0x2f20>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_ocedo_koala.dts b/target/linux/ath79/dts/qca9558_ocedo_koala.dts
index 85fd43699ee..76305b2ecef 100644
--- a/target/linux/ath79/dts/qca9558_ocedo_koala.dts
+++ b/target/linux/ath79/dts/qca9558_ocedo_koala.dts
@@ -106,6 +106,20 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -140,17 +154,3 @@
 
 	pll-data = <0x8e000000 0x80000101 0x80001313>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_ocedo_ursus.dts b/target/linux/ath79/dts/qca9558_ocedo_ursus.dts
index be958d19a08..d2125c38ba3 100644
--- a/target/linux/ath79/dts/qca9558_ocedo_ursus.dts
+++ b/target/linux/ath79/dts/qca9558_ocedo_ursus.dts
@@ -77,6 +77,24 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+
+					macaddr_art_12: macaddr@12 {
+						reg = <0x12 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -131,21 +149,3 @@
 	pll-data = <0x3000101 0x101 0x1313>;
 	qca955x-sgmii-fixup;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-
-	macaddr_art_12: macaddr@12 {
-		reg = <0x12 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi b/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi
index c2062a800a1..12b60d08229 100644
--- a/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi
+++ b/target/linux/ath79/dts/qca9558_openmesh_a60.dtsi
@@ -111,6 +111,20 @@
 				label = "ART";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -179,17 +193,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi b/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi
index 8e11760daf4..28e01ddd565 100644
--- a/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi
+++ b/target/linux/ath79/dts/qca9558_openmesh_mr.dtsi
@@ -119,6 +119,16 @@
 				label = "ART";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -163,13 +173,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts
index 147b98f9253..2744b01c8e3 100644
--- a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts
+++ b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v1.dts
@@ -130,6 +130,20 @@
 				label = "ART";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -198,17 +212,3 @@
 &pcie1 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts
index 1ce924b8a0b..9193d0e511d 100644
--- a/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts
+++ b/target/linux/ath79/dts/qca9558_openmesh_om5p-ac-v2.dts
@@ -160,6 +160,20 @@
 				label = "ART";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -228,17 +242,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <2>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_qxwlan_e558.dtsi b/target/linux/ath79/dts/qca9558_qxwlan_e558.dtsi
index 5b28af5ca6e..9bed24ad093 100644
--- a/target/linux/ath79/dts/qca9558_qxwlan_e558.dtsi
+++ b/target/linux/ath79/dts/qca9558_qxwlan_e558.dtsi
@@ -89,6 +89,16 @@
 				label = "pri-data";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_pridata_400: macaddr@400 {
+						reg = <0x400 0x6>;
+					};
+				};
 			};
 
 			art: partition@60000 {
@@ -167,13 +177,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&pridata {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_pridata_400: macaddr@400 {
-		reg = <0x400 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_sophos_ap.dtsi b/target/linux/ath79/dts/qca9558_sophos_ap.dtsi
index 3d38ca79fe4..8abd3e60b77 100644
--- a/target/linux/ath79/dts/qca9558_sophos_ap.dtsi
+++ b/target/linux/ath79/dts/qca9558_sophos_ap.dtsi
@@ -107,6 +107,16 @@
 				label = "config";
 				reg = <0x060000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_config_201a: macaddr@201a {
+						reg = <0x201a 0x6>;
+					};
+				};
 			};
 
 			partition@70000 {
@@ -157,16 +167,6 @@
 	mtd-cal-data = <&art 0x1000>;
 };
 
-&config {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_config_201a: macaddr@201a {
-		reg = <0x201a 0x6>;
-	};
-};
-
 &usb0 {
 	vbus-supply = <&reg_usb_vbus>;
 };
diff --git a/target/linux/ath79/dts/qca9558_sophos_ap15.dts b/target/linux/ath79/dts/qca9558_sophos_ap15.dts
index bb4b058a9a5..490d3ae2276 100644
--- a/target/linux/ath79/dts/qca9558_sophos_ap15.dts
+++ b/target/linux/ath79/dts/qca9558_sophos_ap15.dts
@@ -75,6 +75,16 @@
 				label = "config";
 				reg = <0x060000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_config_201a: macaddr@201a {
+						reg = <0x201a 0x6>;
+					};
+				};
 			};
 
 			partition@70000 {
@@ -126,13 +136,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&config {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_config_201a: macaddr@201a {
-		reg = <0x201a 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts b/target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts
index 85012d3aace..a017d2f0590 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-c5-v1.dts
@@ -33,6 +33,16 @@
 		label = "u-boot";
 		reg = <0x000000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_uboot_1fc00: macaddr@1fc00 {
+				reg = <0x1fc00 0x6>;
+			};
+		};
 	};
 
 	partition@20000 {
@@ -65,13 +75,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
index e520a83d405..2f5ffe15786 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v1.dts
@@ -33,6 +33,16 @@
 		label = "u-boot";
 		reg = <0x000000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_uboot_1fc00: macaddr@1fc00 {
+				reg = <0x1fc00 0x6>;
+			};
+		};
 	};
 
 	partition@20000 {
@@ -46,12 +56,14 @@
 		reg = <0x7f0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		calibration_art_1000: calibration@1000 {
-			reg = <0x1000 0x440>;
+			calibration_art_1000: calibration@1000 {
+				reg = <0x1000 0x440>;
+			};
 		};
 	};
 };
@@ -71,13 +83,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>, <&calibration_art_1000>;
 	nvmem-cell-names = "mac-address", "calibration";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
index 1b860dbf2d5..b2877676e87 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-c7-v2.dts
@@ -34,6 +34,16 @@
 		label = "u-boot";
 		reg = <0x000000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_uboot_1fc00: macaddr@1fc00 {
+				reg = <0x1fc00 0x6>;
+			};
+		};
 	};
 
 	partition@20000 {
@@ -47,16 +57,18 @@
 		reg = <0xff0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		calibration_art_1000: calibration@1000 {
-			reg = <0x1000 0x440>;
-		};
+			calibration_art_1000: calibration@1000 {
+				reg = <0x1000 0x440>;
+			};
 
-		calibration_art_5000: calibration@5000 {
-			reg = <0x5000 0x844>;
+			calibration_art_5000: calibration@5000 {
+				reg = <0x5000 0x844>;
+			};
 		};
 	};
 };
@@ -89,13 +101,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>, <&calibration_art_1000>;
 	nvmem-cell-names = "mac-address", "calibration";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-d7-v1.dts b/target/linux/ath79/dts/qca9558_tplink_archer-d7-v1.dts
index 4f822fbc7d1..c40cb126584 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-d7-v1.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-d7-v1.dts
@@ -52,6 +52,16 @@
 				label = "romfs";
 				reg = <0xfd0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_romfs_f100: macaddr@f100 {
+						reg = <0xf100 0x6>;
+					};
+				};
 			};
 
 			partition@fe0000 {
@@ -85,13 +95,3 @@
 	nvmem-cells = <&macaddr_romfs_f100>;
 	nvmem-cell-names = "mac-address";
 };
-
-&romfs {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_romfs_f100: macaddr@f100 {
-		reg = <0xf100 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_archer-d7b-v1.dts b/target/linux/ath79/dts/qca9558_tplink_archer-d7b-v1.dts
index 9adaa7fa6d3..950e1d7b757 100644
--- a/target/linux/ath79/dts/qca9558_tplink_archer-d7b-v1.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_archer-d7b-v1.dts
@@ -46,6 +46,16 @@
 				label = "romfs";
 				reg = <0xfd0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_romfs_f100: macaddr@f100 {
+						reg = <0xf100 0x6>;
+					};
+				};
 			};
 
 			partition@fe0000 {
@@ -79,13 +89,3 @@
 	nvmem-cells = <&macaddr_romfs_f100>;
 	nvmem-cell-names = "mac-address";
 };
-
-&romfs {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_romfs_f100: macaddr@f100 {
-		reg = <0xf100 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts b/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts
index 0966f019089..7c48326d576 100644
--- a/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_re350k-v1.dts
@@ -152,6 +152,16 @@
 				label = "info";
 				reg = <0xda0000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@dc0000 {
@@ -176,13 +186,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi b/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi
index 31089f339da..30e80177a90 100644
--- a/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi
+++ b/target/linux/ath79/dts/qca9558_tplink_rex5x.dtsi
@@ -135,6 +135,16 @@
 				label = "info";
 				reg = <0x610000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@630000 {
@@ -170,13 +180,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <(-1)>;
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_tl-wdr4900-v2.dts b/target/linux/ath79/dts/qca9558_tplink_tl-wdr4900-v2.dts
index c6b9b077da2..b052a830bc7 100644
--- a/target/linux/ath79/dts/qca9558_tplink_tl-wdr4900-v2.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_tl-wdr4900-v2.dts
@@ -138,12 +138,14 @@
 				reg = <0x000000 0x020000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_uboot_1fc00: macaddr@1fc00 {
-					reg = <0x1fc00 0x6>;
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
 				};
 			};
 
@@ -158,16 +160,18 @@
 				reg = <0x7f0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				cal_ath9k_soc: cal_ath9k@1000 {
-					reg = <0x1000 0x440>;
-				};
+					cal_ath9k_soc: cal_ath9k@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				cal_ath9k_pci: cal_ath9k@5000 {
-					reg = <0x5000 0x440>;
+					cal_ath9k_pci: cal_ath9k@5000 {
+						reg = <0x5000 0x440>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9558_tplink_tl-wdr7500-v3.dts b/target/linux/ath79/dts/qca9558_tplink_tl-wdr7500-v3.dts
index 998ede85cb9..ccfebcc7ff8 100644
--- a/target/linux/ath79/dts/qca9558_tplink_tl-wdr7500-v3.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_tl-wdr7500-v3.dts
@@ -33,6 +33,16 @@
 		label = "u-boot";
 		reg = <0x000000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_uboot_1fc00: macaddr@1fc00 {
+				reg = <0x1fc00 0x6>;
+			};
+		};
 	};
 
 	partition@20000 {
@@ -65,13 +75,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi b/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi
index 52996bba347..158d1200dec 100644
--- a/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi
+++ b/target/linux/ath79/dts/qca9558_tplink_tl-wr1043nd.dtsi
@@ -97,6 +97,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -164,13 +174,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_tplink_tl-wr941n-v7-cn.dts b/target/linux/ath79/dts/qca9558_tplink_tl-wr941n-v7-cn.dts
index 27bf82d20df..9d329000c9b 100644
--- a/target/linux/ath79/dts/qca9558_tplink_tl-wr941n-v7-cn.dts
+++ b/target/linux/ath79/dts/qca9558_tplink_tl-wr941n-v7-cn.dts
@@ -74,6 +74,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_1fc00: macaddr@1fc00 {
+						reg = <0x1fc00 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -117,13 +127,3 @@
 	nvmem-cells = <&macaddr_uboot_1fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_1fc00: macaddr@1fc00 {
-		reg = <0x1fc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
index 91675ff6153..09e7e1bf8d9 100644
--- a/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
+++ b/target/linux/ath79/dts/qca9558_ubnt_nanobeam-ac-xc.dts
@@ -98,13 +98,3 @@
 	phy-mode = "sgmii";
 	phy-handle = <&phy4>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_ubnt_powerbeam-5ac-500.dts b/target/linux/ath79/dts/qca9558_ubnt_powerbeam-5ac-500.dts
index 3827a94b248..48f06e3dcb8 100644
--- a/target/linux/ath79/dts/qca9558_ubnt_powerbeam-5ac-500.dts
+++ b/target/linux/ath79/dts/qca9558_ubnt_powerbeam-5ac-500.dts
@@ -36,13 +36,3 @@
 	phy-mode = "sgmii";
 	phy-handle = <&phy4>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_ubnt_rocket-5ac-lite.dts b/target/linux/ath79/dts/qca9558_ubnt_rocket-5ac-lite.dts
index 836211ccd58..7df3759b628 100644
--- a/target/linux/ath79/dts/qca9558_ubnt_rocket-5ac-lite.dts
+++ b/target/linux/ath79/dts/qca9558_ubnt_rocket-5ac-lite.dts
@@ -36,13 +36,3 @@
 	phy-mode = "sgmii";
 	phy-handle = <&phy4>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9558_watchguard_ap300.dts b/target/linux/ath79/dts/qca9558_watchguard_ap300.dts
index 799883c350f..6ad6add64af 100644
--- a/target/linux/ath79/dts/qca9558_watchguard_ap300.dts
+++ b/target/linux/ath79/dts/qca9558_watchguard_ap300.dts
@@ -104,6 +104,16 @@
 		label = "art";
 		reg = <0x1ff0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_art_0: macaddr@0 {
+				reg = <0x0 0x6>;
+			};
+		};
 	};
 };
 
@@ -124,13 +134,3 @@
 &pcie0 {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca955x_dlink_dap-2xxx.dtsi b/target/linux/ath79/dts/qca955x_dlink_dap-2xxx.dtsi
index 3e254fa494e..1e082ffd7f6 100644
--- a/target/linux/ath79/dts/qca955x_dlink_dap-2xxx.dtsi
+++ b/target/linux/ath79/dts/qca955x_dlink_dap-2xxx.dtsi
@@ -46,14 +46,6 @@
 				label = "art";
 				reg = <0xff0000 0x10000>;
 				read-only;
-
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
-
-				cal_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
-				};
 			};
 		};
 	};
diff --git a/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi b/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi
index e1b76bcbd1f..61446263c47 100644
--- a/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi
+++ b/target/linux/ath79/dts/qca955x_senao_router-dual.dtsi
@@ -103,14 +103,18 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_art_1000: calibration@1000 {
-					reg = <0x1000 0x440>;
-				};
+					calibration_art_1000: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				calibration_art_5000: calibration@5000 {
-					reg = <0x5000 0x844>;
+					calibration_art_5000: calibration@5000 {
+						reg = <0x5000 0x844>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca955x_ubnt_xc.dtsi b/target/linux/ath79/dts/qca955x_ubnt_xc.dtsi
index 0f803945db6..519f831beab 100644
--- a/target/linux/ath79/dts/qca955x_ubnt_xc.dtsi
+++ b/target/linux/ath79/dts/qca955x_ubnt_xc.dtsi
@@ -50,6 +50,16 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts
index 4b371e0e8e8..0a01ed6dbc1 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c25-v1.dts
@@ -152,6 +152,16 @@
 				label = "info";
 				reg = <0x7e0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			art: partition@7f0000 {
@@ -191,13 +201,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c58-v1.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c58-v1.dts
index 180efada127..5c1f0334ffa 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c58-v1.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c58-v1.dts
@@ -34,6 +34,16 @@
 				label = "info";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -74,13 +84,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c59-v1.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c59-v1.dts
index f05a290d2f8..1963428cd0f 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c59-v1.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c59-v1.dts
@@ -51,6 +51,16 @@
 				label = "info";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -91,13 +101,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c59-v2.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c59-v2.dts
index 4be23ffbc02..9f66b1c6421 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c59-v2.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c59-v2.dts
@@ -57,6 +57,16 @@
 				label = "info";
 				reg = <0x030000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@40000 {
@@ -97,13 +107,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c60-v1.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c60-v1.dts
index f5ab2e5977c..8602449d94a 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c60-v1.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c60-v1.dts
@@ -46,6 +46,16 @@
 				label = "info";
 				reg = <0x010000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -86,13 +96,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c60-v2.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c60-v2.dts
index 014222770f9..fe217f206e0 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c60-v2.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c60-v2.dts
@@ -46,6 +46,16 @@
 				label = "info";
 				reg = <0x01fb00 0x000500>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -92,13 +102,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_archer-c60-v3.dts b/target/linux/ath79/dts/qca9561_tplink_archer-c60-v3.dts
index a2f46ecd604..505bfefed14 100644
--- a/target/linux/ath79/dts/qca9561_tplink_archer-c60-v3.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_archer-c60-v3.dts
@@ -41,6 +41,16 @@
 				label = "info";
 				reg = <0x01fb00 0x000500>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@20000 {
@@ -87,13 +97,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_eap225-wall-v2.dts b/target/linux/ath79/dts/qca9561_tplink_eap225-wall-v2.dts
index 439549d1425..856161a9873 100644
--- a/target/linux/ath79/dts/qca9561_tplink_eap225-wall-v2.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_eap225-wall-v2.dts
@@ -99,6 +99,16 @@
 				label = "info";
 				reg = <0x030000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@40000 {
@@ -132,16 +142,18 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
-				};
+					calibration_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				precalibration_ath10k: pre-calibration@5000 {
-					reg = <0x5000 0x2f20>;
+					precalibration_ath10k: pre-calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
 				};
 			};
 		};
@@ -161,13 +173,3 @@
 	nvmem-cells = <&macaddr_info_8>, <&calibration_ath9k>;
 	nvmem-cell-names = "mac-address", "calibration";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts b/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts
index 15c58686597..f4ba15a599d 100644
--- a/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts
+++ b/target/linux/ath79/dts/qca9561_tplink_tl-wdr6500-v2.dts
@@ -81,12 +81,14 @@
 				reg = <0x000000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_uboot_0fc00: macaddr@0fc00 {
-					reg = <0x0fc00 0x6>;
+					macaddr_uboot_0fc00: macaddr@0fc00 {
+						reg = <0x0fc00 0x6>;
+					};
 				};
 			};
 
@@ -101,16 +103,18 @@
 				reg = <0x7f0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
-				};
+					calibration_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				calibration_ath10k: calibration@5000 {
-					reg = <0x5000 0x844>;
+					calibration_ath10k: calibration@5000 {
+						reg = <0x5000 0x844>;
+					};
 				};
 			};
 		};
diff --git a/target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts b/target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts
index 6e45fbb20fc..b0f5c8de43b 100644
--- a/target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts
+++ b/target/linux/ath79/dts/qca9561_xiaomi_mi-router-4q.dts
@@ -93,6 +93,20 @@
 				label = "art";
 				reg = <0x60000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_art_6: macaddr@6 {
+						reg = <0x6 0x6>;
+					};
+				};
 			};
 
 			partition@70000 {
@@ -139,17 +153,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <1>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_art_6: macaddr@6 {
-		reg = <0x6 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_asus_pl-ac56.dts b/target/linux/ath79/dts/qca9563_asus_pl-ac56.dts
index c597b566aa0..a31f188142f 100644
--- a/target/linux/ath79/dts/qca9563_asus_pl-ac56.dts
+++ b/target/linux/ath79/dts/qca9563_asus_pl-ac56.dts
@@ -91,12 +91,14 @@
 				reg = <0x050000 0x10000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 				};
 			};
 
diff --git a/target/linux/ath79/dts/qca9563_asus_rp-ac66.dts b/target/linux/ath79/dts/qca9563_asus_rp-ac66.dts
index ac3551d1156..c4b9f347134 100644
--- a/target/linux/ath79/dts/qca9563_asus_rp-ac66.dts
+++ b/target/linux/ath79/dts/qca9563_asus_rp-ac66.dts
@@ -113,12 +113,14 @@
 				reg = <0x050000 0x10000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 				};
 			};
 
diff --git a/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts b/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts
index 20c97009520..33a496f8b7b 100644
--- a/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts
+++ b/target/linux/ath79/dts/qca9563_comfast_cf-e375ac.dts
@@ -84,6 +84,16 @@
 				label = "art";
 				reg = <0x040000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@50000 {
@@ -135,13 +145,3 @@
 	nvmem-cell-names = "mac-address";
 	mac-address-increment = <10>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_compex_wpj563.dts b/target/linux/ath79/dts/qca9563_compex_wpj563.dts
index 407e912ad26..95ca9003983 100644
--- a/target/linux/ath79/dts/qca9563_compex_wpj563.dts
+++ b/target/linux/ath79/dts/qca9563_compex_wpj563.dts
@@ -79,6 +79,16 @@
 				label = "u-boot";
 				reg = <0x000000 0x030000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_uboot_2e010: macaddr@2e010 {
+						reg = <0x2e010 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -143,13 +153,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_2e010: macaddr@2e010 {
-		reg = <0x2e010 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_dlink_dir-8x9-a1.dtsi b/target/linux/ath79/dts/qca9563_dlink_dir-8x9-a1.dtsi
index 616c29a4c15..70ec60219df 100644
--- a/target/linux/ath79/dts/qca9563_dlink_dir-8x9-a1.dtsi
+++ b/target/linux/ath79/dts/qca9563_dlink_dir-8x9-a1.dtsi
@@ -67,8 +67,6 @@
 				reg = <0x050000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-
 				nvmem-layout {
 					compatible = "fixed-layout";
 					#address-cells = <1>;
@@ -106,17 +104,19 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
+					calibration_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
+
+					calibration_ath10k: calibration@5000 {
+						reg = <0x5000 0x844>;
+					};
 				};
-
-				calibration_ath10k: calibration@5000 {
-					reg = <0x5000 0x844>;
-				};	
 			};
 		};
 	};
diff --git a/target/linux/ath79/dts/qca9563_elecom_wrc-1750ghbk2-i.dts b/target/linux/ath79/dts/qca9563_elecom_wrc-1750ghbk2-i.dts
index f7358891b04..77d5fc360bc 100644
--- a/target/linux/ath79/dts/qca9563_elecom_wrc-1750ghbk2-i.dts
+++ b/target/linux/ath79/dts/qca9563_elecom_wrc-1750ghbk2-i.dts
@@ -45,20 +45,22 @@
 		reg = <0xff0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		cal_art_1000: cal@1000 {
-			reg = <0x1000 0x440>;
-		};
+			cal_art_1000: cal@1000 {
+				reg = <0x1000 0x440>;
+			};
 
-		macaddr_art_1002: macaddr@1002 {
-			reg = <0x1002 0x6>;
-		};
+			macaddr_art_1002: macaddr@1002 {
+				reg = <0x1002 0x6>;
+			};
 
-		cal_art_5000: cal@5000 {
-			reg = <0x5000 0x844>;
+			cal_art_5000: cal@5000 {
+				reg = <0x5000 0x844>;
+			};
 		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9563_elecom_wrc-300ghbk2-i.dts b/target/linux/ath79/dts/qca9563_elecom_wrc-300ghbk2-i.dts
index 5ffff57b482..7d977802ea9 100644
--- a/target/linux/ath79/dts/qca9563_elecom_wrc-300ghbk2-i.dts
+++ b/target/linux/ath79/dts/qca9563_elecom_wrc-300ghbk2-i.dts
@@ -39,16 +39,18 @@
 		reg = <0x7f0000 0x010000>;
 		read-only;
 
-		compatible = "nvmem-cells";
-		#address-cells = <1>;
-		#size-cells = <1>;
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
 
-		cal_art_1000: cal@1000 {
-			reg = <0x1000 0x440>;
-		};
+			cal_art_1000: cal@1000 {
+				reg = <0x1000 0x440>;
+			};
 
-		macaddr_art_1002: macaddr@1002 {
-			reg = <0x1002 0x6>;
+			macaddr_art_1002: macaddr@1002 {
+				reg = <0x1002 0x6>;
+			};
 		};
 	};
 };
diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi
index d3562398bcb..09d2f48c2aa 100644
--- a/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi
+++ b/target/linux/ath79/dts/qca9563_glinet_gl-ar750s.dtsi
@@ -95,6 +95,16 @@
 				label = "art";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			/* Firmware / Kernel flash type specific */
@@ -174,13 +184,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi b/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi
index 8980f772e74..ab1f8902b10 100644
--- a/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi
+++ b/target/linux/ath79/dts/qca9563_glinet_gl-x1200.dtsi
@@ -95,28 +95,30 @@
 				reg = <0x050000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
-				};
+					calibration_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				calibration_ath10k: calibration@5000 {
-					reg = <0x5000 0x2f20>;
-				};
+					calibration_ath10k: calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
 
-				macaddr_art_0: macaddr@0 {
-					reg = <0x0 0x6>;
-				};
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
 
-				macaddr_art_1002: macaddr@1002 {
-					reg = <0x1002 0x6>;
-				};
+					macaddr_art_1002: macaddr@1002 {
+						reg = <0x1002 0x6>;
+					};
 
-				macaddr_art_5006: macaddr@5006 {
-					reg = <0x5006 0x6>;
+					macaddr_art_5006: macaddr@5006 {
+						reg = <0x5006 0x6>;
+					};
 				};
 			};
 
diff --git a/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi b/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi
index 799297f4e15..c4faec8ef14 100644
--- a/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi
+++ b/target/linux/ath79/dts/qca9563_netgear_wndr.dtsi
@@ -162,6 +162,28 @@
 				label = "caldata";
 				reg = <0x1f0000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_caldata_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+
+					macaddr_caldata_c: macaddr@c {
+						reg = <0xc 0x6>;
+					};
+
+					cal_art_1000: cal@1000 {
+						reg = <0x1000 0x440>;
+					};
+
+					cal_art_5000: cal@5000 {
+						reg = <0x5000 0x440>;
+					};
+				};
 			};
 		};
 	};
@@ -261,25 +283,3 @@
 &usb0 {
 	status = "okay";
 };
-
-&caldata {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_caldata_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-
-	macaddr_caldata_c: macaddr@c {
-		reg = <0xc 0x6>;
-	};
-
-	cal_art_1000: cal@1000 {
-		reg = <0x1000 0x440>;
-	};
-
-	cal_art_5000: cal@5000 {
-		reg = <0x5000 0x440>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_qxwlan_e1700ac.dtsi b/target/linux/ath79/dts/qca9563_qxwlan_e1700ac.dtsi
index c6c610dbee2..a4f7be3e1cd 100644
--- a/target/linux/ath79/dts/qca9563_qxwlan_e1700ac.dtsi
+++ b/target/linux/ath79/dts/qca9563_qxwlan_e1700ac.dtsi
@@ -82,6 +82,16 @@
 				label = "pri-data";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_pridata_400: macaddr@400 {
+						reg = <0x400 0x6>;
+					};
+				};
 			};
 
 			art: partition@60000 {
@@ -141,13 +151,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&pridata {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_pridata_400: macaddr@400 {
-		reg = <0x400 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_rosinson_wr818.dts b/target/linux/ath79/dts/qca9563_rosinson_wr818.dts
index c73d5a6e583..6e45a20aaed 100644
--- a/target/linux/ath79/dts/qca9563_rosinson_wr818.dts
+++ b/target/linux/ath79/dts/qca9563_rosinson_wr818.dts
@@ -72,6 +72,16 @@
 				label = "factory";
 				reg = <0x050000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@60000 {
@@ -133,13 +143,3 @@
 &usb1 {
 	status = "okay";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-a7-v5.dts b/target/linux/ath79/dts/qca9563_tplink_archer-a7-v5.dts
index 3bb6d685cc5..339891f6da0 100644
--- a/target/linux/ath79/dts/qca9563_tplink_archer-a7-v5.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_archer-a7-v5.dts
@@ -43,6 +43,16 @@
 		label = "info";
 		reg = <0xf40000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	config: partition@f60000 {
@@ -75,13 +85,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts
index 6d5a21c138f..9925666f826 100644
--- a/target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_archer-c2-v3.dts
@@ -127,6 +127,16 @@
 				label = "info";
 				reg = <0x7e0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			art: partition@7f0000 {
@@ -173,13 +183,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2-us.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2-us.dts
index e6fd689c999..6857054f1cb 100644
--- a/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2-us.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2-us.dts
@@ -99,6 +99,16 @@
 				label = "info";
 				reg = <0x020000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -139,13 +149,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2.dts
index c40fe0f2923..e7d19c9fbd3 100644
--- a/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_archer-c6-v2.dts
@@ -99,6 +99,16 @@
 				label = "info";
 				reg = <0x020000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -133,13 +143,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts
index 3c6b8c4fb94..ae6061c4cef 100644
--- a/target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_archer-c7-v4.dts
@@ -198,6 +198,16 @@
 				label = "info";
 				reg = <0xf00000 0x0f0000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			art: partition@ff0000 {
@@ -243,13 +253,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_archer-c7-v5.dts b/target/linux/ath79/dts/qca9563_tplink_archer-c7-v5.dts
index d2631e227cb..32b75cad7b4 100644
--- a/target/linux/ath79/dts/qca9563_tplink_archer-c7-v5.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_archer-c7-v5.dts
@@ -49,6 +49,16 @@
 		label = "info";
 		reg = <0x060000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	partition@80000 {
@@ -81,13 +91,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
index 9421ea225ae..491ffac1326 100644
--- a/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_cpe710-v1.dts
@@ -81,6 +81,16 @@
 				label = "info";
 				reg = <0x060000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@70000 {
@@ -138,13 +148,3 @@
 		device = <&gmac>;
 	};
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_deco-m4r-v1.dts b/target/linux/ath79/dts/qca9563_tplink_deco-m4r-v1.dts
index 8cd9004bd3f..63f42eba760 100644
--- a/target/linux/ath79/dts/qca9563_tplink_deco-m4r-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_deco-m4r-v1.dts
@@ -106,6 +106,16 @@
 				label = "config";
 				reg = <0xe85000 0x16b000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_config_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			art: partition@ff0000 {
@@ -134,13 +144,3 @@
 	nvmem-cells = <&macaddr_config_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&config {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_config_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
index 79c45f1ea8a..929cedad720 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v1.dts
@@ -30,8 +30,18 @@
 };
 
 &art {
-	precalibration_ath10k: pre-calibration@5000 {
-		reg = <0x5000 0x2f20>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		macaddr_info_8: macaddr@8 {
+			reg = <0x8 0x6>;
+		};
+
+		precalibration_ath10k: pre-calibration@5000 {
+			reg = <0x5000 0x2f20>;
+		};
 	};
 };
 
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
index e5914c9a550..da082d3b405 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-outdoor-v3.dts
@@ -30,8 +30,18 @@
 };
 
 &art {
-	precalibration_ath10k: pre-calibration@5000 {
-		reg = <0x5000 0x2f20>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		macaddr_info_8: macaddr@8 {
+			reg = <0x8 0x6>;
+		};
+
+		precalibration_ath10k: pre-calibration@5000 {
+			reg = <0x5000 0x2f20>;
+		};
 	};
 };
 
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts
index 8423daf6023..e03fdf6f888 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-v1.dts
@@ -51,8 +51,18 @@
 };
 
 &art {
-	calibration_ath10k: calibration@5000 {
-		reg = <0x5000 0x844>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		macaddr_info_8: macaddr@8 {
+			reg = <0x8 0x6>;
+		};
+
+		calibration_ath10k: calibration@5000 {
+			reg = <0x5000 0x844>;
+		};
 	};
 };
 
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
index 290172b0cc3..6e34938379f 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-v3.dts
@@ -30,8 +30,18 @@
 };
 
 &art {
-	precalibration_ath10k: pre-calibration@5000 {
-		reg = <0x5000 0x2f20>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		macaddr_info_8: macaddr@8 {
+			reg = <0x8 0x6>;
+		};
+
+		precalibration_ath10k: pre-calibration@5000 {
+			reg = <0x5000 0x2f20>;
+		};
 	};
 };
 
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts b/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts
index ae27ff70684..3fbb3414c1a 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap225-v4.dts
@@ -30,8 +30,18 @@
 };
 
 &art {
-	precalibration_ath10k: pre-calibration@5000 {
-		reg = <0x5000 0x2f20>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		macaddr_info_8: macaddr@8 {
+			reg = <0x8 0x6>;
+		};
+
+		precalibration_ath10k: pre-calibration@5000 {
+			reg = <0x5000 0x2f20>;
+		};
 	};
 };
 
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts b/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
index 236c9e7457b..b4c9e7e5d29 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap245-v1.dts
@@ -44,8 +44,18 @@
 };
 
 &art {
-	calibration_ath10k: calibration@5000 {
-		reg = <0x5000 0x844>;
+	nvmem-layout {
+		compatible = "fixed-layout";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		macaddr_info_8: macaddr@8 {
+			reg = <0x8 0x6>;
+		};
+
+		calibration_ath10k: calibration@5000 {
+			reg = <0x5000 0x844>;
+		};
 	};
 };
 
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap245-v3.dts b/target/linux/ath79/dts/qca9563_tplink_eap245-v3.dts
index ab5bc7b1a94..fb504f1fcf8 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap245-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_eap245-v3.dts
@@ -93,6 +93,16 @@
 				label = "info";
 				reg = <0x090000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@a0000 {
@@ -100,16 +110,18 @@
 				reg = <0x0a0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
-				};
+					calibration_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 
-				calibration_ath10k: calibration@5000 {
-					reg = <0x5000 0x2f20>;
+					calibration_ath10k: calibration@5000 {
+						reg = <0x5000 0x2f20>;
+					};
 				};
 			};
 
@@ -176,13 +188,3 @@
 	nvmem-cells = <&macaddr_info_8>, <&calibration_ath9k>;
 	nvmem-cell-names = "mac-address", "calibration";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
index f384031335b..438e6bc2ec1 100644
--- a/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
+++ b/target/linux/ath79/dts/qca9563_tplink_eap2x5-1port.dtsi
@@ -82,12 +82,14 @@
 				reg = <0xff0000 0x010000>;
 				read-only;
 
-				compatible = "nvmem-cells";
-				#address-cells = <1>;
-				#size-cells = <1>;
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
 
-				calibration_ath9k: calibration@1000 {
-					reg = <0x1000 0x440>;
+					calibration_ath9k: calibration@1000 {
+						reg = <0x1000 0x440>;
+					};
 				};
 			};
 		};
@@ -129,13 +131,3 @@
 	nvmem-cells = <&macaddr_info_8>, <&calibration_ath9k>;
 	nvmem-cell-names = "mac-address", "calibration";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts b/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts
index 73cf5323eea..5eb1eafaf41 100644
--- a/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_re450-v2.dts
@@ -34,6 +34,16 @@
 		label = "info";
 		reg = <0x610000 0x020000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	partition@630000 {
@@ -60,13 +70,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_re450-v3.dts b/target/linux/ath79/dts/qca9563_tplink_re450-v3.dts
index ffebcb9baea..fdd982ae2e2 100644
--- a/target/linux/ath79/dts/qca9563_tplink_re450-v3.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_re450-v3.dts
@@ -22,6 +22,16 @@
 		label = "info";
 		reg = <0x020000 0x002000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	partition@22000 {
@@ -66,13 +76,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_re455-v1.dts b/target/linux/ath79/dts/qca9563_tplink_re455-v1.dts
index bf4e5848af8..a976f4fa5a2 100644
--- a/target/linux/ath79/dts/qca9563_tplink_re455-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_re455-v1.dts
@@ -22,6 +22,16 @@
 		label = "info";
 		reg = <0x020000 0x002000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	partition@22000 {
@@ -66,13 +76,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wa1201-v2.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wa1201-v2.dts
index 71ab4f8aad5..cf13fcd6b7f 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wa1201-v2.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wa1201-v2.dts
@@ -127,6 +127,16 @@
 				label = "info";
 				reg = <0x020000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@30000 {
@@ -149,13 +159,3 @@
 		};
 	};
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630-v1.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630-v1.dts
index 0ccfb42d9ac..8c6c91f1070 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630-v1.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630-v1.dts
@@ -16,6 +16,16 @@
 		label = "u-boot";
 		reg = <0x000000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_uboot_fc00: macaddr@fc00 {
+				reg = <0xfc00 0x6>;
+			};
+		};
 	};
 
 	partition@10000 {
@@ -48,13 +58,3 @@
 	nvmem-cells = <&macaddr_uboot_fc00>;
 	nvmem-cell-names = "mac-address";
 };
-
-&uboot {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_uboot_fc00: macaddr@fc00 {
-		reg = <0xfc00 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
index 95ff6b03631..8786e309659 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2-int.dts
@@ -46,6 +46,16 @@
 		label = "info";
 		reg = <0x7e0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	art: partition@7f0000 {
@@ -66,13 +76,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.0-eu.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.0-eu.dts
index 34efeb94509..3c688d67d63 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.0-eu.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.0-eu.dts
@@ -40,6 +40,16 @@
 		label = "info";
 		reg = <0x630000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	partition@640000 {
@@ -66,13 +76,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts
index a477b50417d..786cd3cc039 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wpa8630p-v2.1-eu.dts
@@ -42,6 +42,16 @@
 		label = "info";
 		reg = <0x7e0000 0x010000>;
 		read-only;
+
+		nvmem-layout {
+			compatible = "fixed-layout";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			macaddr_info_8: macaddr@8 {
+				reg = <0x8 0x6>;
+			};
+		};
 	};
 
 	art: partition@7f0000 {
@@ -62,13 +72,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n-v5.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n-v5.dts
index 6d758245159..dac0da9fdc9 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n-v5.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wr1043n-v5.dts
@@ -46,6 +46,16 @@
 				label = "info";
 				reg = <0xf00000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@f20000 {
@@ -86,13 +96,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_tplink_tl-wr1043nd-v4.dts b/target/linux/ath79/dts/qca9563_tplink_tl-wr1043nd-v4.dts
index 80a63f6efc0..4aa0ef572f6 100644
--- a/target/linux/ath79/dts/qca9563_tplink_tl-wr1043nd-v4.dts
+++ b/target/linux/ath79/dts/qca9563_tplink_tl-wr1043nd-v4.dts
@@ -51,6 +51,16 @@
 				label = "info";
 				reg = <0xf50000 0x020000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_info_8: macaddr@8 {
+						reg = <0x8 0x6>;
+					};
+				};
 			};
 
 			partition@f70000 {
@@ -108,13 +118,3 @@
 	nvmem-cells = <&macaddr_info_8>;
 	nvmem-cell-names = "mac-address";
 };
-
-&info {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_info_8: macaddr@8 {
-		reg = <0x8 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
index 6704ec983b0..da01251f3bd 100644
--- a/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
+++ b/target/linux/ath79/dts/qca9563_ubnt_unifiac.dtsi
@@ -90,6 +90,16 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -100,13 +110,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_xiaomi_aiot-ac2350.dts b/target/linux/ath79/dts/qca9563_xiaomi_aiot-ac2350.dts
index b6206b046d2..2085644f766 100644
--- a/target/linux/ath79/dts/qca9563_xiaomi_aiot-ac2350.dts
+++ b/target/linux/ath79/dts/qca9563_xiaomi_aiot-ac2350.dts
@@ -109,6 +109,16 @@
 				label = "art";
 				reg = <0x60000 0x10000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 
 			partition@70000 {
@@ -174,13 +184,3 @@
 &pcie {
 	status = "okay";
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi b/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi
index 6f729a21fe8..dff94282950 100644
--- a/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi
+++ b/target/linux/ath79/dts/qca9563_yuncore_xd4200.dtsi
@@ -94,6 +94,16 @@
 				label = "art";
 				reg = <0xff0000 0x010000>;
 				read-only;
+
+				nvmem-layout {
+					compatible = "fixed-layout";
+					#address-cells = <1>;
+					#size-cells = <1>;
+
+					macaddr_art_0: macaddr@0 {
+						reg = <0x0 0x6>;
+					};
+				};
 			};
 		};
 	};
@@ -104,13 +114,3 @@
 
 	mtd-cal-data = <&art 0x1000>;
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr@0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/dts/qca9563_zte_mf281.dts b/target/linux/ath79/dts/qca9563_zte_mf281.dts
index 9205061e243..a4e54975db5 100644
--- a/target/linux/ath79/dts/qca9563_zte_mf281.dts
+++ b/target/linux/ath79/dts/qca9563_zte_mf281.dts
@@ -49,16 +49,18 @@
 			reg = <0xa0000 0x80000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			cal_caldata_1000: cal@1000 {
-				reg = <0x1000 0x440>;
-			};
+				cal_caldata_1000: cal@1000 {
+					reg = <0x1000 0x440>;
+				};
 
-			cal_caldata_5000: cal@5000 {
-				reg = <0x5000 0x2f20>;
+				cal_caldata_5000: cal@5000 {
+					reg = <0x5000 0x2f20>;
+				};
 			};
 		};
 
@@ -67,12 +69,14 @@
 			reg = <0x120000 0x80000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			macaddr_mac_0: macaddr@0 {
-				reg = <0x0 0x6>;
+				macaddr_mac_0: macaddr@0 {
+					reg = <0x0 0x6>;
+				};
 			};
 		};
 
diff --git a/target/linux/ath79/dts/qca9563_zte_mf282.dts b/target/linux/ath79/dts/qca9563_zte_mf282.dts
index 1f3038daced..2cb3c1a60b9 100644
--- a/target/linux/ath79/dts/qca9563_zte_mf282.dts
+++ b/target/linux/ath79/dts/qca9563_zte_mf282.dts
@@ -61,16 +61,18 @@
 			reg = <0x140000 0x140000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			cal_caldata_1000: cal@1000 {
-				reg = <0x1000 0x440>;
-			};
+				cal_caldata_1000: cal@1000 {
+					reg = <0x1000 0x440>;
+				};
 
-			cal_caldata_5000: cal@5000 {
-				reg = <0x5000 0x844>;
+				cal_caldata_5000: cal@5000 {
+					reg = <0x5000 0x844>;
+				};
 			};
 		};
 
@@ -79,12 +81,14 @@
 			reg = <0x280000 0x140000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			macaddr_mac_0: macaddr@0 {
-				reg = <0x0 0x6>;
+				macaddr_mac_0: macaddr@0 {
+					reg = <0x0 0x6>;
+				};
 			};
 		};
 
diff --git a/target/linux/ath79/dts/qca9563_zte_mf286.dts b/target/linux/ath79/dts/qca9563_zte_mf286.dts
index 877075c7699..26e27ee0204 100644
--- a/target/linux/ath79/dts/qca9563_zte_mf286.dts
+++ b/target/linux/ath79/dts/qca9563_zte_mf286.dts
@@ -62,16 +62,18 @@
 			reg = <0x140000 0x140000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			cal_caldata_1000: cal@1000 {
-				reg = <0x1000 0x440>;
-			};
+				cal_caldata_1000: cal@1000 {
+					reg = <0x1000 0x440>;
+				};
 
-			cal_caldata_5000: cal@5000 {
-				reg = <0x5000 0x844>;
+				cal_caldata_5000: cal@5000 {
+					reg = <0x5000 0x844>;
+				};
 			};
 		};
 
@@ -80,12 +82,14 @@
 			reg = <0x280000 0x140000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			macaddr_mac_0: macaddr@0 {
-				reg = <0x0 0x6>;
+				macaddr_mac_0: macaddr@0 {
+					reg = <0x0 0x6>;
+				};
 			};
 		};
 
diff --git a/target/linux/ath79/dts/qca9563_zte_mf286ar.dtsi b/target/linux/ath79/dts/qca9563_zte_mf286ar.dtsi
index 45ac3bc7ea5..dc08a21452c 100644
--- a/target/linux/ath79/dts/qca9563_zte_mf286ar.dtsi
+++ b/target/linux/ath79/dts/qca9563_zte_mf286ar.dtsi
@@ -65,16 +65,18 @@
 			reg = <0xa0000 0x80000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			cal_art_1000: cal@1000 {
-				reg = <0x1000 0x440>;
-			};
+				cal_art_1000: cal@1000 {
+					reg = <0x1000 0x440>;
+				};
 
-			precal_art_5000: precal@5000 {
-				reg = <0x5000 0x2f20>;
+				precal_art_5000: precal@5000 {
+					reg = <0x5000 0x2f20>;
+				};
 			};
 		};
 
@@ -83,12 +85,14 @@
 			reg = <0x120000 0x80000>;
 			read-only;
 
-			compatible = "nvmem-cells";
-			#address-cells = <1>;
-			#size-cells = <1>;
+			nvmem-layout {
+				compatible = "fixed-layout";
+				#address-cells = <1>;
+				#size-cells = <1>;
 
-			macaddr_mac_0: mac-address@0 {
-				reg = <0x0 0x6>;
+				macaddr_mac_0: mac-address@0 {
+					reg = <0x0 0x6>;
+				};
 			};
 		};