[openwrt/openwrt] ath79: improve support for Dongwon T&I DW02-412H

LEDE Commits lede-commits at lists.infradead.org
Mon Jan 31 22:55:18 PST 2022


mans0n pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/c7a559980ad18270c0c1c7afa4cbe708f26fb851

commit c7a559980ad18270c0c1c7afa4cbe708f26fb851
Author: Sungbo Eo <mans0n at gorani.run>
AuthorDate: Mon Jan 31 13:21:47 2022 +0900

    ath79: improve support for Dongwon T&I DW02-412H
    
    * Move &nand node to DTSI
    * Utilize nvmem for fetching caldata
    * Rename build recipe, clean before build
    * Simplify KERNEL definition
    
    Signed-off-by: Sungbo Eo <mans0n at gorani.run>
---
 .../ath79/dts/qca9557_dongwon_dw02-412h-128m.dts   | 26 +--------
 .../ath79/dts/qca9557_dongwon_dw02-412h-64m.dts    | 26 +--------
 .../linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi | 66 ++++++++++++++++------
 target/linux/ath79/image/nand.mk                   | 12 ++--
 .../etc/hotplug.d/firmware/11-ath10k-caldata       |  5 --
 5 files changed, 60 insertions(+), 75 deletions(-)

diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts
index 2308d82af9..199529e709 100644
--- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts
+++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-128m.dts
@@ -7,28 +7,6 @@
 	compatible = "dongwon,dw02-412h-128m", "qca,qca9557";
 };
 
-&nand {
-	status = "okay";
-
-	partitions {
-		compatible = "fixed-partitions";
-		#address-cells = <1>;
-		#size-cells = <1>;
-
-		partition at 0 {
-			label = "current";
-			reg = <0x0 0x1000000>;
-			read-only;
-		};
-
-		partition at 1000000 {
-			label = "kernel";
-			reg = <0x1000000 0x800000>;
-		};
-
-		partition at 1800000 {
-			label = "ubi";
-			reg = <0x1800000 0x6800000>;
-		};
-	};
+&ubi {
+	reg = <0x1800000 0x6800000>;
 };
diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts
index 2420dc11a9..15d3d677a9 100644
--- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts
+++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h-64m.dts
@@ -7,28 +7,6 @@
 	compatible = "dongwon,dw02-412h-64m", "qca,qca9557";
 };
 
-&nand {
-	status = "okay";
-
-	partitions {
-		compatible = "fixed-partitions";
-		#address-cells = <1>;
-		#size-cells = <1>;
-
-		partition at 0 {
-			label = "current";
-			reg = <0x0 0x1000000>;
-			read-only;
-		};
-
-		partition at 1000000 {
-			label = "kernel";
-			reg = <0x1000000 0x800000>;
-		};
-
-		partition at 1800000 {
-			label = "ubi";
-			reg = <0x1800000 0x2800000>;
-		};
-	};
+&ubi {
+	reg = <0x1800000 0x2800000>;
 };
diff --git a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi
index fd56983432..498499c146 100644
--- a/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi
+++ b/target/linux/ath79/dts/qca9557_dongwon_dw02-412h.dtsi
@@ -97,30 +97,74 @@
 				read-only;
 			};
 
-			art: partition at 1f0000 {
+			partition at 1f0000 {
 				label = "art";
 				reg = <0x1f0000 0x010000>;
 				read-only;
+
+				compatible = "nvmem-cells";
+				#address-cells = <1>;
+				#size-cells = <1>;
+
+				macaddr_art_0: macaddr at 0 {
+					reg = <0x0 0x6>;
+				};
+
+				cal_art_1000: cal at 1000 {
+					reg = <0x1000 0x440>;
+				};
+
+				cal_art_5000: cal at 5000 {
+					reg = <0x5000 0x844>;
+				};
 			};
 		};
 	};
 };
 
+&nand {
+	status = "okay";
+
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		partition at 0 {
+			label = "current";
+			reg = <0x0 0x1000000>;
+			read-only;
+		};
+
+		partition at 1000000 {
+			label = "kernel";
+			reg = <0x1000000 0x800000>;
+		};
+
+		ubi: partition at 1800000 {
+			label = "ubi";
+		};
+	};
+};
+
 &pcie0 {
 	status = "okay";
 
 	wifi at 0,0 {
 		compatible = "qcom,ath10k";
 		reg = <0 0 0 0 0>;
+
+		nvmem-cells = <&macaddr_art_0>, <&cal_art_5000>;
+		nvmem-cell-names = "mac-address", "calibration";
+		mac-address-increment = <4>;
 	};
 };
 
 &wmac {
 	status = "okay";
 
-	mtd-cal-data = <&art 0x1000>;
-	nvmem-cells = <&macaddr_art_0>;
-	nvmem-cell-names = "mac-address";
+	nvmem-cells = <&macaddr_art_0>, <&cal_art_1000>;
+	nvmem-cell-names = "mac-address", "calibration";
 	mac-address-increment = <3>;
 };
 
@@ -144,8 +188,8 @@
 			0x54 0x00000000 /* LED Control Register 1 */
 			0x58 0x00000000 /* LED Control Register 2 */
 			0x5c 0x0030c300 /* LED Control Register 3 */
-			0x7c 0x0000007e	/* PORT0_STATUS */
-			>;
+			0x7c 0x0000007e /* PORT0_STATUS */
+		>;
 	};
 };
 
@@ -163,13 +207,3 @@
 		rgmii-enabled = <1>;
 	};
 };
-
-&art {
-	compatible = "nvmem-cells";
-	#address-cells = <1>;
-	#size-cells = <1>;
-
-	macaddr_art_0: macaddr at 0 {
-		reg = <0x0 0x6>;
-	};
-};
diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk
index b8006c6d0c..1e1152551b 100644
--- a/target/linux/ath79/image/nand.mk
+++ b/target/linux/ath79/image/nand.mk
@@ -1,7 +1,7 @@
-define Build/dw-headers
-	head -c 4 $@ >> $@.tmp && \
-	head -c 8 /dev/zero >> $@.tmp && \
-	tail -c +9 $@ >> $@.tmp && \
+define Build/dongwon-header
+	head -c 4 $@ > $@.tmp
+	head -c 8 /dev/zero >> $@.tmp
+	tail -c +9 $@ >> $@.tmp
 	( \
 		header_crc="$$(head -c 68 $@.tmp | gzip -c | \
 			tail -c 8 | od -An -N4 -tx4 --endian little | tr -d ' \n')"; \
@@ -99,8 +99,8 @@ define Device/dongwon_dw02-412h
   KERNEL_SIZE := 8192k
   BLOCKSIZE := 128k
   PAGESIZE := 2048
-  KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | dw-headers
-  KERNEL_INITRAMFS := kernel-bin | append-dtb | lzma | uImage lzma | dw-headers
+  KERNEL := $$(KERNEL) | dongwon-header
+  KERNEL_INITRAMFS := $$(KERNEL)
   UBINIZE_OPTS := -E 5
   IMAGES += factory.img
   IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | \
diff --git a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index 03e225ddde..d47e296853 100644
--- a/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ath79/nand/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -13,11 +13,6 @@ case "$FIRMWARE" in
 		caldata_extract "art" 0x5000 0x844
 		ath10k_patch_mac $(mtd_get_mac_binary art 0x12)
 		;;
-	dongwon,dw02-412h-64m|\
-	dongwon,dw02-412h-128m)
-		caldata_extract "art" 0x5000 0x844
-		ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary art 0x0) 4)
-		;;
 	glinet,gl-ar750s-nor|\
 	glinet,gl-ar750s-nor-nand)
 		caldata_extract "art" 0x5000 0x844



More information about the lede-commits mailing list