[PATCH 19/19] arm64: dts: apple: t60xx: Add USB4 ACIO and NHI

Sven Peter sven at kernel.org
Sun Aug 30 13:19:37 PDT 2026


Add the ACIO host router, NHI, DART and mailbox nodes for the four ATC
instances on each t600x and t602x die and connect the host routers to
the Type-C connectors on the MacBook Pro (j314/j316 and j414/j416), Mac
Studio (j375 and j475), Mac mini (j474) and Mac Pro (j180d) boards.

Signed-off-by: Sven Peter <sven at kernel.org>
---
 arch/arm64/boot/dts/apple/t6002-j375d.dts      |  67 +++++
 arch/arm64/boot/dts/apple/t600x-dieX.dtsi      | 384 +++++++++++++++++++++++++
 arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 107 +++++++
 arch/arm64/boot/dts/apple/t600x-j375.dtsi      | 137 +++++++++
 arch/arm64/boot/dts/apple/t6022-j180d.dts      | 202 +++++++++++++
 arch/arm64/boot/dts/apple/t6022-j475d.dts      |  10 +
 arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi     |  57 ++++
 arch/arm64/boot/dts/apple/t602x-dieX.dtsi      | 384 +++++++++++++++++++++++++
 8 files changed, 1348 insertions(+)

diff --git a/arch/arm64/boot/dts/apple/t6002-j375d.dts b/arch/arm64/boot/dts/apple/t6002-j375d.dts
index e6eb6b6c386d..c28f5c604550 100644
--- a/arch/arm64/boot/dts/apple/t6002-j375d.dts
+++ b/arch/arm64/boot/dts/apple/t6002-j375d.dts
@@ -18,6 +18,10 @@ / {
 	aliases {
 		atcphy4 = &atcphy0_die1;
 		atcphy5 = &atcphy1_die1;
+		usb4-4-acio = &usb4_0_acio_die1;
+		usb4-4-nhi = &usb4_0_nhi_die1;
+		usb4-5-acio = &usb4_1_acio_die1;
+		usb4-5-nhi = &usb4_1_nhi_die1;
 	};
 };
 
@@ -52,6 +56,13 @@ typec4_connector_ss: endpoint {
 						remote-endpoint = <&atcphy4_typec_lanes>;
 					};
 				};
+
+				port at 2 {
+					reg = <2>;
+					typec4_con_tbt: endpoint {
+						remote-endpoint = <&usb4_4_acio_tbt>;
+					};
+				};
 			};
 		};
 	};
@@ -85,6 +96,13 @@ typec5_connector_ss: endpoint {
 						remote-endpoint = <&atcphy5_typec_lanes>;
 					};
 				};
+
+				port at 2 {
+					reg = <2>;
+					typec5_con_tbt: endpoint {
+						remote-endpoint = <&usb4_5_acio_tbt>;
+					};
+				};
 			};
 		};
 	};
@@ -186,8 +204,57 @@ atcphy5_usb3: endpoint {
 
 #include "hwmon-fan-dual.dtsi"
 
+/* USB4 on die 1 */
+&usb4_0_acio_die1 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_4_acio_tbt: endpoint {
+				remote-endpoint = <&typec4_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_1_acio_die1 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_5_acio_tbt: endpoint {
+				remote-endpoint = <&typec5_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
 /* delete unused USB nodes on die 1 */
 
+/delete-node/ &usb4_2_acio_die1;
+/delete-node/ &usb4_2_mbox_die1;
+
+/delete-node/ &usb4_3_acio_die1;
+/delete-node/ &usb4_3_mbox_die1;
+
 /delete-node/ &dwc3_2_dart_0_die1;
 /delete-node/ &dwc3_2_dart_1_die1;
 /delete-node/ &dwc3_2_die1;
diff --git a/arch/arm64/boot/dts/apple/t600x-dieX.dtsi b/arch/arm64/boot/dts/apple/t600x-dieX.dtsi
index 9676d5127039..98867855454d 100644
--- a/arch/arm64/boot/dts/apple/t600x-dieX.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-dieX.dtsi
@@ -93,6 +93,22 @@ DIE_NODE(pinctrl_aop): pinctrl at 293820000 {
 				<AIC_IRQ DIE_NO 571 IRQ_TYPE_LEVEL_HIGH>,
 				<AIC_IRQ DIE_NO 572 IRQ_TYPE_LEVEL_HIGH>,
 				<AIC_IRQ DIE_NO 573 IRQ_TYPE_LEVEL_HIGH>;
+
+		DIE_NODE(acio0_pins): acio0-pins {
+			pinmux = <APPLE_PINMUX(39, 1)>;
+		};
+
+		DIE_NODE(acio1_pins): acio1-pins {
+			pinmux = <APPLE_PINMUX(41, 1)>;
+		};
+
+		DIE_NODE(acio2_pins): acio2-pins {
+			pinmux = <APPLE_PINMUX(43, 1)>;
+		};
+
+		DIE_NODE(acio3_pins): acio3-pins {
+			pinmux = <APPLE_PINMUX(45, 1)>;
+		};
 	};
 
 	DIE_NODE(pinctrl_ap): pinctrl at 39b028000 {
@@ -120,6 +136,98 @@ DIE_NODE(pinctrl_ap): pinctrl at 39b028000 {
 		#interrupt-cells = <2>;
 	};
 
+	DIE_NODE(usb4_0_mbox): mailbox at 701100000 {
+		compatible = "apple,t6000-m3-mailbox",
+			"apple,m3-mailbox-v2";
+		reg = <0x7 0x01100000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 1311 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1312 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1313 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1314 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_0_acio): cio at 701ac0000 {
+		compatible = "apple,t6000-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0x7 0x01ac0000 0x0 0xc000>,
+			<0x7 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_0_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 0>;
+
+		power-domains = <&DIE_NODE(ps_atc0_cio)>,
+				<&DIE_NODE(ps_atc0_cio_pcie)>,
+				<&DIE_NODE(ps_atc0_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio0_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x7 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_0_dart): iommu at a80000 {
+			compatible = "apple,t6000-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1309 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <1>;
+		};
+
+		DIE_NODE(usb4_0_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6000-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1282 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1283 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1284 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1285 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1286 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1287 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1288 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1289 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1290 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1291 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1292 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1293 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1294 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1295 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1296 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1297 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1298 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1299 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1300 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1301 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1302 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1303 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1304 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1305 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_0_dart) 1>,
+				 <&DIE_NODE(usb4_0_dart) 2>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_0): usb at 702280000 {
 		compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
 		reg = <0x7 0x02280000 0x0 0xcd00>, <0x7 0x0228cd00 0x0 0x3200>;
@@ -173,6 +281,98 @@ DIE_NODE(atcphy0): phy at 703000000 {
 		power-domains = <&DIE_NODE(ps_atc0_usb)>;
 	};
 
+	DIE_NODE(usb4_1_mbox): mailbox at b01100000 {
+		compatible = "apple,t6000-m3-mailbox",
+			"apple,m3-mailbox-v2";
+		reg = <0xb 0x01100000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 1359 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1360 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1361 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1362 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_1_acio): cio at b01ac0000 {
+		compatible = "apple,t6000-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0xb 0x01ac0000 0x0 0xc000>,
+			<0xb 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_1_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 1>;
+
+		power-domains = <&DIE_NODE(ps_atc1_cio)>,
+				<&DIE_NODE(ps_atc1_cio_pcie)>,
+				<&DIE_NODE(ps_atc1_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio1_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0xb 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_1_dart): iommu at a80000 {
+			compatible = "apple,t6000-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1357 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <1>;
+		};
+
+		DIE_NODE(usb4_1_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6000-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1330 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1331 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1332 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1333 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1334 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1335 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1336 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1337 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1338 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1339 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1340 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1341 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1342 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1343 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1344 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1345 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1346 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1347 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1348 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1349 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1350 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1351 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1352 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1353 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_1_dart) 1>,
+				 <&DIE_NODE(usb4_1_dart) 2>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_1): usb at b02280000 {
 		compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
 		reg = <0xb 0x02280000 0x0 0xcd00>, <0xb 0x0228cd00 0x0 0x3200>;
@@ -226,6 +426,98 @@ DIE_NODE(atcphy1): phy at b03000000 {
 		power-domains = <&DIE_NODE(ps_atc1_usb)>;
 	};
 
+	DIE_NODE(usb4_2_mbox): mailbox at f01100000 {
+		compatible = "apple,t6000-m3-mailbox",
+			"apple,m3-mailbox-v2";
+		reg = <0xf 0x01100000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 1407 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1408 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1409 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1410 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_2_acio): cio at f01ac0000 {
+		compatible = "apple,t6000-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0xf 0x01ac0000 0x0 0xc000>,
+			<0xf 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_2_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 2>;
+
+		power-domains = <&DIE_NODE(ps_atc2_cio)>,
+				<&DIE_NODE(ps_atc2_cio_pcie)>,
+				<&DIE_NODE(ps_atc2_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio2_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0xf 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_2_dart): iommu at a80000 {
+			compatible = "apple,t6000-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1405 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <1>;
+		};
+
+		DIE_NODE(usb4_2_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6000-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1378 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1379 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1380 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1381 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1382 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1383 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1384 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1385 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1386 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1387 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1388 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1389 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1390 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1391 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1392 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1393 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1394 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1395 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1396 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1397 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1398 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1399 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1400 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1401 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_2_dart) 1>,
+				 <&DIE_NODE(usb4_2_dart) 2>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_2): usb at f02280000 {
 		compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
 		reg = <0xf 0x02280000 0x0 0xcd00>, <0xf 0x0228cd00 0x0 0x3200>;
@@ -279,6 +571,98 @@ DIE_NODE(atcphy2): phy at f03000000 {
 		power-domains = <&DIE_NODE(ps_atc2_usb)>;
 	};
 
+	DIE_NODE(usb4_3_mbox): mailbox at 1301100000 {
+		compatible = "apple,t6000-m3-mailbox",
+			"apple,m3-mailbox-v2";
+		reg = <0x13 0x01100000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 1455 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1456 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1457 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 1458 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_3_acio): cio at 1301ac0000 {
+		compatible = "apple,t6000-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0x13 0x01ac0000 0x0 0xc000>,
+			<0x13 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_3_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 3>;
+
+		power-domains = <&DIE_NODE(ps_atc3_cio)>,
+				<&DIE_NODE(ps_atc3_cio_pcie)>,
+				<&DIE_NODE(ps_atc3_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio3_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x13 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_3_dart): iommu at a80000 {
+			compatible = "apple,t6000-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1453 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <1>;
+		};
+
+		DIE_NODE(usb4_3_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6000-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1426 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1427 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1428 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1429 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1430 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1431 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1432 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1433 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1434 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1435 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1436 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1437 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1438 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1439 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1440 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1441 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1442 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1443 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1444 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1445 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1446 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1447 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1448 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1449 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_3_dart) 1>,
+				 <&DIE_NODE(usb4_3_dart) 2>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_3): usb at 1302280000 {
 		compatible = "apple,t6000-dwc3", "apple,t8103-dwc3";
 		reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;
diff --git a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
index caded1636f3d..38b7d0c3a585 100644
--- a/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
@@ -21,6 +21,12 @@ aliases {
 		atcphy3 = &atcphy3;
 		bluetooth0 = &bluetooth0;
 		serial0 = &serial0;
+		usb4-0-acio = &usb4_0_acio;
+		usb4-0-nhi = &usb4_0_nhi;
+		usb4-1-acio = &usb4_1_acio;
+		usb4-1-nhi = &usb4_1_nhi;
+		usb4-2-acio = &usb4_2_acio;
+		usb4-2-nhi = &usb4_2_nhi;
 		wifi0 = &wifi0;
 	};
 
@@ -366,6 +372,107 @@ &atcphy3 {
 	status = "disabled";
 };
 
+&typec0 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec0_con_tbt: endpoint {
+				remote-endpoint = <&usb4_0_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec1 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec1_con_tbt: endpoint {
+				remote-endpoint = <&usb4_1_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec2 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec2_con_tbt: endpoint {
+				remote-endpoint = <&usb4_2_acio_tbt>;
+			};
+		};
+	};
+};
+
+/* USB4 */
+&usb4_0_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_0_acio_tbt: endpoint {
+				remote-endpoint = <&typec0_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_1_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_1_acio_tbt: endpoint {
+				remote-endpoint = <&typec1_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_2_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_2_acio_tbt: endpoint {
+				remote-endpoint = <&typec2_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+/* ATC3 is used for DP-to-HDMI only and has no USB4 host router */
+/delete-node/ &usb4_3_acio;
+/delete-node/ &usb4_3_mbox;
+
 #include "spi1-nvram.dtsi"
 #include "hwmon-laptop.dtsi"
 #include "hwmon-fan-dual.dtsi"
diff --git a/arch/arm64/boot/dts/apple/t600x-j375.dtsi b/arch/arm64/boot/dts/apple/t600x-j375.dtsi
index 8a1494949e4c..d081cb03b03b 100644
--- a/arch/arm64/boot/dts/apple/t600x-j375.dtsi
+++ b/arch/arm64/boot/dts/apple/t600x-j375.dtsi
@@ -20,6 +20,14 @@ aliases {
 		bluetooth0 = &bluetooth0;
 		ethernet0 = &ethernet0;
 		serial0 = &serial0;
+		usb4-0-acio = &usb4_0_acio;
+		usb4-0-nhi = &usb4_0_nhi;
+		usb4-1-acio = &usb4_1_acio;
+		usb4-1-nhi = &usb4_1_nhi;
+		usb4-2-acio = &usb4_2_acio;
+		usb4-2-nhi = &usb4_2_nhi;
+		usb4-3-acio = &usb4_3_acio;
+		usb4-3-nhi = &usb4_3_nhi;
 		wifi0 = &wifi0;
 	};
 
@@ -410,4 +418,133 @@ &pcie0_dart_3 {
 	status = "okay";
 };
 
+&typec0 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec0_con_tbt: endpoint {
+				remote-endpoint = <&usb4_0_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec1 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec1_con_tbt: endpoint {
+				remote-endpoint = <&usb4_1_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec2 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec2_con_tbt: endpoint {
+				remote-endpoint = <&usb4_2_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec3 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec3_con_tbt: endpoint {
+				remote-endpoint = <&usb4_3_acio_tbt>;
+			};
+		};
+	};
+};
+
+/* USB4 */
+&usb4_0_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_0_acio_tbt: endpoint {
+				remote-endpoint = <&typec0_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_1_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_1_acio_tbt: endpoint {
+				remote-endpoint = <&typec1_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_2_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_2_acio_tbt: endpoint {
+				remote-endpoint = <&typec2_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_3_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_3_acio_tbt: endpoint {
+				remote-endpoint = <&typec3_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
 #include "spi1-nvram.dtsi"
diff --git a/arch/arm64/boot/dts/apple/t6022-j180d.dts b/arch/arm64/boot/dts/apple/t6022-j180d.dts
index f76b887429dd..27323fb51dd1 100644
--- a/arch/arm64/boot/dts/apple/t6022-j180d.dts
+++ b/arch/arm64/boot/dts/apple/t6022-j180d.dts
@@ -26,6 +26,22 @@ aliases {
 		atcphy5 = &atcphy1_die1;
 		atcphy6 = &atcphy2_die1;
 		atcphy7 = &atcphy3_die1;
+		usb4-0-acio = &usb4_0_acio;
+		usb4-0-nhi = &usb4_0_nhi;
+		usb4-1-acio = &usb4_1_acio;
+		usb4-1-nhi = &usb4_1_nhi;
+		usb4-2-acio = &usb4_2_acio;
+		usb4-2-nhi = &usb4_2_nhi;
+		usb4-3-acio = &usb4_3_acio;
+		usb4-3-nhi = &usb4_3_nhi;
+		usb4-4-acio = &usb4_0_acio_die1;
+		usb4-4-nhi = &usb4_0_nhi_die1;
+		usb4-5-acio = &usb4_1_acio_die1;
+		usb4-5-nhi = &usb4_1_nhi_die1;
+		usb4-6-acio = &usb4_2_acio_die1;
+		usb4-6-nhi = &usb4_2_nhi_die1;
+		usb4-7-acio = &usb4_3_acio_die1;
+		usb4-7-nhi = &usb4_3_nhi_die1;
 		nvram = &nvram;
 		serial0 = &serial0;
 	};
@@ -152,6 +168,13 @@ typec6_connector_ss: endpoint {
 						remote-endpoint = <&atcphy6_typec_lanes>;
 					};
 				};
+
+				port at 2 {
+					reg = <2>;
+					typec6_con_tbt: endpoint {
+						remote-endpoint = <&usb4_6_acio_tbt>;
+					};
+				};
 			};
 		};
 	};
@@ -184,6 +207,13 @@ typec7_connector_ss: endpoint {
 						remote-endpoint = <&atcphy7_typec_lanes>;
 					};
 				};
+
+				port at 2 {
+					reg = <2>;
+					typec7_con_tbt: endpoint {
+						remote-endpoint = <&usb4_7_acio_tbt>;
+					};
+				};
 			};
 		};
 	};
@@ -535,4 +565,176 @@ &nco_clkref {
 	clock-frequency = <1068000000>;
 };
 
+/* USB4 on die 1 */
+&usb4_2_acio_die1 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_6_acio_tbt: endpoint {
+				remote-endpoint = <&typec6_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_3_acio_die1 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_7_acio_tbt: endpoint {
+				remote-endpoint = <&typec7_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&typec0 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec0_con_tbt: endpoint {
+				remote-endpoint = <&usb4_0_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec1 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec1_con_tbt: endpoint {
+				remote-endpoint = <&usb4_1_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec2 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec2_con_tbt: endpoint {
+				remote-endpoint = <&usb4_2_acio_tbt>;
+			};
+		};
+	};
+};
+
+&typec3 {
+	ports {
+		port at 2 {
+			reg = <2>;
+			typec3_con_tbt: endpoint {
+				remote-endpoint = <&usb4_3_acio_tbt>;
+			};
+		};
+	};
+};
+
+/* USB4 */
+&usb4_0_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_0_acio_tbt: endpoint {
+				remote-endpoint = <&typec0_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_1_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_1_acio_tbt: endpoint {
+				remote-endpoint = <&typec1_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_2_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_2_acio_tbt: endpoint {
+				remote-endpoint = <&typec2_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_3_acio {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_3_acio_tbt: endpoint {
+				remote-endpoint = <&typec3_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
 #include "spi1-nvram.dtsi"
diff --git a/arch/arm64/boot/dts/apple/t6022-j475d.dts b/arch/arm64/boot/dts/apple/t6022-j475d.dts
index 32938a3bf96a..d99633160beb 100644
--- a/arch/arm64/boot/dts/apple/t6022-j475d.dts
+++ b/arch/arm64/boot/dts/apple/t6022-j475d.dts
@@ -20,6 +20,10 @@ / {
 	aliases {
 		atcphy4 = &atcphy0_die1;
 		atcphy5 = &atcphy1_die1;
+		usb4-4-acio = &usb4_0_acio_die1;
+		usb4-4-nhi = &usb4_0_nhi_die1;
+		usb4-5-acio = &usb4_1_acio_die1;
+		usb4-5-nhi = &usb4_1_nhi_die1;
 	};
 };
 
@@ -57,6 +61,12 @@ &typec5 {
 /delete-node/ &dwc3_3_die1;
 /delete-node/ &atcphy3_die1;
 
+/delete-node/ &usb4_2_acio_die1;
+/delete-node/ &usb4_2_mbox_die1;
+
+/delete-node/ &usb4_3_acio_die1;
+/delete-node/ &usb4_3_mbox_die1;
+
 /* delete unused always-on power-domains on die 1 */
 /delete-node/ &ps_atc2_usb_aon_die1;
 /delete-node/ &ps_atc2_usb_die1;
diff --git a/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi b/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi
index dc877bd604f8..944a79d30fd7 100644
--- a/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi
+++ b/arch/arm64/boot/dts/apple/t6022-jxxxd.dtsi
@@ -46,6 +46,13 @@ typec4_connector_ss: endpoint {
 						remote-endpoint = <&atcphy4_typec_lanes>;
 					};
 				};
+
+				port at 2 {
+					reg = <2>;
+					typec4_con_tbt: endpoint {
+						remote-endpoint = <&usb4_4_acio_tbt>;
+					};
+				};
 			};
 		};
 	};
@@ -78,6 +85,13 @@ typec5_connector_ss: endpoint {
 						remote-endpoint = <&atcphy5_typec_lanes>;
 					};
 				};
+
+				port at 2 {
+					reg = <2>;
+					typec5_con_tbt: endpoint {
+						remote-endpoint = <&usb4_5_acio_tbt>;
+					};
+				};
 			};
 		};
 	};
@@ -169,3 +183,46 @@ atcphy5_usb3: endpoint {
 		};
 	};
 };
+
+/* USB4 on die 1 */
+&usb4_0_acio_die1 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_4_acio_tbt: endpoint {
+				remote-endpoint = <&typec4_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
+
+&usb4_1_acio_die1 {
+	ports {
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		/* 1: USB4 port */
+		port at 1 {
+			reg = <1>;
+			usb4_5_acio_tbt: endpoint {
+				remote-endpoint = <&typec5_con_tbt>;
+			};
+		};
+
+		/* 2: unused(?) USB4 port */
+		/* 3: PCIe */
+		/* 4: USB3 */
+		/* 5: DP0 */
+		/* 6: DP1 */
+	};
+};
diff --git a/arch/arm64/boot/dts/apple/t602x-dieX.dtsi b/arch/arm64/boot/dts/apple/t602x-dieX.dtsi
index ae3d535c5acb..dae7b81c13d0 100644
--- a/arch/arm64/boot/dts/apple/t602x-dieX.dtsi
+++ b/arch/arm64/boot/dts/apple/t602x-dieX.dtsi
@@ -92,6 +92,22 @@ DIE_NODE(pinctrl_aop): pinctrl at 2a6820000 {
 				<AIC_IRQ DIE_NO 602 IRQ_TYPE_LEVEL_HIGH>,
 				<AIC_IRQ DIE_NO 603 IRQ_TYPE_LEVEL_HIGH>,
 				<AIC_IRQ DIE_NO 604 IRQ_TYPE_LEVEL_HIGH>;
+
+		DIE_NODE(acio0_pins): acio0-pins {
+			pinmux = <APPLE_PINMUX(65, 1)>;
+		};
+
+		DIE_NODE(acio1_pins): acio1-pins {
+			pinmux = <APPLE_PINMUX(67, 1)>;
+		};
+
+		DIE_NODE(acio2_pins): acio2-pins {
+			pinmux = <APPLE_PINMUX(69, 1)>;
+		};
+
+		DIE_NODE(acio3_pins): acio3-pins {
+			pinmux = <APPLE_PINMUX(71, 1)>;
+		};
 	};
 
 	DIE_NODE(pinctrl_ap): pinctrl at 39b028000 {
@@ -127,6 +143,98 @@ DIE_NODE(pmgr_gfx): power-management at 404e80000 {
 		reg = <0x4 0x4e80000 0 0x4000>;
 	};
 
+	DIE_NODE(usb4_0_mbox): mailbox at 701108000 {
+		compatible = "apple,t6020-asc-mailbox",
+			"apple,asc-mailbox-v4";
+		reg = <0x7 0x01108000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 822 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 823 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 824 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 825 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_0_acio): cio at 701ac0000 {
+		compatible = "apple,t6020-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0x7 0x01ac0000 0x0 0xc000>,
+			<0x7 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_0_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 0>;
+
+		power-domains = <&DIE_NODE(ps_atc0_cio)>,
+				<&DIE_NODE(ps_atc0_cio_pcie)>,
+				<&DIE_NODE(ps_atc0_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio0_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x7 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_0_dart): iommu at a80000 {
+			compatible = "apple,t6020-dart", "apple,t8110-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1387 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <5>;
+		};
+
+		DIE_NODE(usb4_0_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6020-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1360 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1361 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1362 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1363 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1364 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1365 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1366 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1367 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1368 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1369 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1370 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1371 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1372 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1373 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1374 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1375 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1376 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1377 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1378 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1379 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1380 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1381 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1382 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1383 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_0_dart) 1 0x100 0x0 0x10 0x0>,
+				 <&DIE_NODE(usb4_0_dart) 2 0x100 0x0 0x10 0x0>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_0): usb at 702280000 {
 		compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
 		reg = <0x7 0x02280000 0x0 0xcd00>, <0x7 0x0228cd00 0x0 0x3200>;
@@ -180,6 +288,98 @@ DIE_NODE(atcphy0): phy at 703000000 {
 		power-domains = <&DIE_NODE(ps_atc0_usb)>;
 	};
 
+	DIE_NODE(usb4_1_mbox): mailbox at b01108000 {
+		compatible = "apple,t6020-asc-mailbox",
+			"apple,asc-mailbox-v4";
+		reg = <0xb 0x01108000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 826 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 827 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 828 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 829 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_1_acio): cio at b01ac0000 {
+		compatible = "apple,t6020-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0xb 0x01ac0000 0x0 0xc000>,
+			<0xb 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_1_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 1>;
+
+		power-domains = <&DIE_NODE(ps_atc1_cio)>,
+				<&DIE_NODE(ps_atc1_cio_pcie)>,
+				<&DIE_NODE(ps_atc1_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio1_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0xb 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_1_dart): iommu at a80000 {
+			compatible = "apple,t6020-dart", "apple,t8110-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1435 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <5>;
+		};
+
+		DIE_NODE(usb4_1_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6020-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1408 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1409 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1410 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1411 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1412 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1413 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1414 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1415 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1416 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1417 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1418 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1419 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1420 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1421 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1422 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1423 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1424 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1425 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1426 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1427 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1428 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1429 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1430 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1431 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_1_dart) 1 0x100 0x0 0x10 0x0>,
+				 <&DIE_NODE(usb4_1_dart) 2 0x100 0x0 0x10 0x0>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_1): usb at b02280000 {
 		compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
 		reg = <0xb 0x02280000 0x0 0xcd00>, <0xb 0x0228cd00 0x0 0x3200>;
@@ -233,6 +433,98 @@ DIE_NODE(atcphy1): phy at b03000000 {
 		power-domains = <&DIE_NODE(ps_atc1_usb)>;
 	};
 
+	DIE_NODE(usb4_2_mbox): mailbox at f01108000 {
+		compatible = "apple,t6020-asc-mailbox",
+			"apple,asc-mailbox-v4";
+		reg = <0xf 0x01108000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 830 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 831 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 832 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 833 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_2_acio): cio at f01ac0000 {
+		compatible = "apple,t6020-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0xf 0x01ac0000 0x0 0xc000>,
+			<0xf 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_2_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 2>;
+
+		power-domains = <&DIE_NODE(ps_atc2_cio)>,
+				<&DIE_NODE(ps_atc2_cio_pcie)>,
+				<&DIE_NODE(ps_atc2_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio2_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0xf 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_2_dart): iommu at a80000 {
+			compatible = "apple,t6020-dart", "apple,t8110-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1483 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <5>;
+		};
+
+		DIE_NODE(usb4_2_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6020-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1456 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1457 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1458 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1459 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1460 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1461 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1462 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1463 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1464 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1465 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1466 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1467 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1468 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1469 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1470 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1471 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1472 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1473 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1474 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1475 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1476 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1477 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1478 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1479 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_2_dart) 1 0x100 0x0 0x10 0x0>,
+				 <&DIE_NODE(usb4_2_dart) 2 0x100 0x0 0x10 0x0>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_2): usb at f02280000 {
 		compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
 		reg = <0xf 0x02280000 0x0 0xcd00>, <0xf 0x0228cd00 0x0 0x3200>;
@@ -286,6 +578,98 @@ DIE_NODE(atcphy2): phy at f03000000 {
 		power-domains = <&DIE_NODE(ps_atc2_usb)>;
 	};
 
+	DIE_NODE(usb4_3_mbox): mailbox at 1301108000 {
+		compatible = "apple,t6020-asc-mailbox",
+			"apple,asc-mailbox-v4";
+		reg = <0x13 0x01108000 0x0 0x4000>;
+		interrupt-parent = <&aic>;
+		interrupts = <AIC_IRQ DIE_NO 834 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 835 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 836 IRQ_TYPE_LEVEL_HIGH>,
+			<AIC_IRQ DIE_NO 837 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-names = "send-empty", "send-not-empty",
+			"recv-empty", "recv-not-empty";
+		#mbox-cells = <0>;
+	};
+
+	DIE_NODE(usb4_3_acio): cio at 1301ac0000 {
+		compatible = "apple,t6020-usb4-acio", "apple,t8103-usb4-acio";
+		reg = <0x13 0x01ac0000 0x0 0xc000>,
+			<0x13 0x01080000 0x0 0x20000>;
+		reg-names = "rc", "sram";
+
+		mboxes = <&DIE_NODE(usb4_3_mbox)>;
+		resets = <&DIE_NODE(cio_reset) 3>;
+
+		power-domains = <&DIE_NODE(ps_atc3_cio)>,
+				<&DIE_NODE(ps_atc3_cio_pcie)>,
+				<&DIE_NODE(ps_atc3_cio_usb)>;
+
+		thunderbolt-switch;
+
+		pinctrl-0 = <&DIE_NODE(acio3_pins)>;
+		pinctrl-names = "default";
+
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x13 0x01000000 0x1000000>;
+		nonposted-mmio;
+
+		DIE_NODE(usb4_3_dart): iommu at a80000 {
+			compatible = "apple,t6020-dart", "apple,t8110-dart";
+			reg = <0xa80000 0x4000>;
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1531 IRQ_TYPE_LEVEL_HIGH>;
+			#iommu-cells = <5>;
+		};
+
+		DIE_NODE(usb4_3_nhi): nhi at f00000 {
+			reg = <0xf00000 0x100000>,
+				<0xdb0000 0x30004>;
+			reg-names = "nhi", "pdf";
+			compatible = "apple,t6020-usb4-nhi",
+				"apple,t8103-usb4-nhi";
+			interrupt-parent = <&aic>;
+			interrupts = <AIC_IRQ DIE_NO 1504 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1505 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1506 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1507 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1508 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1509 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1510 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1511 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1512 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1513 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1514 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1515 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1516 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1517 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1518 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1519 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1520 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1521 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1522 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1523 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1524 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1525 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1526 IRQ_TYPE_LEVEL_HIGH>,
+				<AIC_IRQ DIE_NO 1527 IRQ_TYPE_LEVEL_HIGH>;
+			interrupt-names =
+				"txring0", "txring1", "txring2",
+				"txring3", "txring4", "txring5",
+				"txring6", "txring7", "txring8",
+				"txring9", "txring10", "txring11",
+				"rxring0", "rxring1", "rxring2",
+				"rxring3", "rxring4", "rxring5",
+				"rxring6", "rxring7", "rxring8",
+				"rxring9", "rxring10", "rxring11";
+			iommus = <&DIE_NODE(usb4_3_dart) 1 0x100 0x0 0x10 0x0>,
+				 <&DIE_NODE(usb4_3_dart) 2 0x100 0x0 0x10 0x0>;
+			/* To be filled by the loader */
+			apple,thunderbolt-drom = [00];
+		};
+	};
+
 	DIE_NODE(dwc3_3): usb at 1302280000 {
 		compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
 		reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;

-- 
2.55.0





More information about the linux-arm-kernel mailing list