[PATCH] arm64: dts: airoha: en7581: Add npu node to to EN7581 SoC

Lorenzo Bianconi lorenzo at kernel.org
Mon Mar 9 08:07:03 PDT 2026


Introduce npu controller node to EN7581 SoC and EN7581 evaluation board.
Adjust reserved memory parameters to the values used by the npu
controller.

Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>
---
 arch/arm64/boot/dts/airoha/en7581-evb.dts |  4 +++
 arch/arm64/boot/dts/airoha/en7581.dtsi    | 43 ++++++++++++++++++++++++-------
 2 files changed, 38 insertions(+), 9 deletions(-)

diff --git a/arch/arm64/boot/dts/airoha/en7581-evb.dts b/arch/arm64/boot/dts/airoha/en7581-evb.dts
index 886e2e4b5f64ce1a2a5496d35b8379fb4ac27dc2..b1a41d1e7eb676beb0e42c949c70362125ec6f0b 100644
--- a/arch/arm64/boot/dts/airoha/en7581-evb.dts
+++ b/arch/arm64/boot/dts/airoha/en7581-evb.dts
@@ -99,6 +99,10 @@ &i2c0 {
 	status = "okay";
 };
 
+&npu {
+	status = "okay";
+};
+
 &eth {
 	status = "okay";
 };
diff --git a/arch/arm64/boot/dts/airoha/en7581.dtsi b/arch/arm64/boot/dts/airoha/en7581.dtsi
index ff6908a76e8eb6cf91343495d1fe531a868e41fb..3ea00b3b0a35ce1f466cbe89fefd05abef20056d 100644
--- a/arch/arm64/boot/dts/airoha/en7581.dtsi
+++ b/arch/arm64/boot/dts/airoha/en7581.dtsi
@@ -15,29 +15,29 @@ reserved-memory {
 		#size-cells = <2>;
 		ranges;
 
-		npu-binary at 84000000 {
+		npu_binary: npu-binary at 84000000 {
 			no-map;
 			reg = <0x0 0x84000000 0x0 0xa00000>;
 		};
 
-		npu-flag at 84b0000 {
+		npu_pkt: npu-pkt at 8a000000 {
 			no-map;
-			reg = <0x0 0x84b00000 0x0 0x100000>;
+			reg = <0x0 0x8a000000 0x0 0x2c00000>;
 		};
 
-		npu-pkt at 85000000 {
+		npu_txpkt: npu-txpkt at 8cc00000 {
 			no-map;
-			reg = <0x0 0x85000000 0x0 0x1a00000>;
+			reg = <0x0 0x8cc00000 0x0 0x4000000>;
 		};
 
-		npu-phyaddr at 86b00000 {
+		npu_txbufid: npu-txbufid at 90c00000 {
 			no-map;
-			reg = <0x0 0x86b00000 0x0 0x100000>;
+			reg = <0x0 0x90c00000 0x0 0x6800>;
 		};
 
-		npu-rxdesc at 86d00000 {
+		npu_ba: npu-ba at 90c06800 {
 			no-map;
-			reg = <0x0 0x86d00000 0x0 0x100000>;
+			reg = <0x0 0x90c06800 0x0 0x200000>;
 		};
 	};
 
@@ -347,6 +347,31 @@ i2c1: i2c at 1fbf8100 {
 			status = "disabled";
 		};
 
+		npu: npu at 1e900000 {
+			compatible = "airoha,en7581-npu";
+			reg = <0x0 0x1e900000 0x0 0x313000>;
+			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+			memory-region = <&npu_binary>, <&npu_pkt>, <&npu_txpkt>,
+					<&npu_txbufid>, <&npu_ba>;
+			memory-region-names = "firmware", "pkt", "tx-pkt",
+					      "tx-bufid", "ba";
+			status = "disabled";
+		};
+
 		eth: ethernet at 1fb50000 {
 			compatible = "airoha,en7581-eth";
 			reg = <0 0x1fb50000 0 0x2600>,

---
base-commit: 405c09548a695ca7be58b5b9d3ac8388630e907f
change-id: 20260309-airoha-7581-npu-c5a7a2926ca4

Best regards,
-- 
Lorenzo Bianconi <lorenzo at kernel.org>




More information about the Linux-mediatek mailing list