From: Sven Peter <sven@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Heikki Krogerus <heikki.krogerus@linux.intel.com>,
Janne Grunau <j@jannau.net>, Neal Gompa <neal@gompa.dev>,
Andreas Noever <andreas.noever@gmail.com>,
Mika Westerberg <westeri@kernel.org>,
Yehezkel Bernat <YehezkelShB@gmail.com>,
Philipp Zabel <p.zabel@pengutronix.de>
Cc: Konrad Dybcio <konradybcio@kernel.org>,
linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, asahi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
Sven Peter <sven@kernel.org>
Subject: [PATCH 19/19] arm64: dts: apple: t60xx: Add USB4 ACIO and NHI
Date: Sun, 30 Aug 2026 22:19:37 +0200 [thread overview]
Message-ID: <20260830-b4-apple-soc-tbt-v1-19-44bc9348683c@kernel.org> (raw)
In-Reply-To: <20260830-b4-apple-soc-tbt-v1-0-44bc9348683c@kernel.org>
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@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@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@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@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@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@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@39b028000 {
@@ -120,6 +136,98 @@ DIE_NODE(pinctrl_ap): pinctrl@39b028000 {
#interrupt-cells = <2>;
};
+ DIE_NODE(usb4_0_mbox): mailbox@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@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@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@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@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@703000000 {
power-domains = <&DIE_NODE(ps_atc0_usb)>;
};
+ DIE_NODE(usb4_1_mbox): mailbox@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@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@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@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@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@b03000000 {
power-domains = <&DIE_NODE(ps_atc1_usb)>;
};
+ DIE_NODE(usb4_2_mbox): mailbox@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@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@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@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@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@f03000000 {
power-domains = <&DIE_NODE(ps_atc2_usb)>;
};
+ DIE_NODE(usb4_3_mbox): mailbox@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@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@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@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@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@2 {
+ reg = <2>;
+ typec0_con_tbt: endpoint {
+ remote-endpoint = <&usb4_0_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec1 {
+ ports {
+ port@2 {
+ reg = <2>;
+ typec1_con_tbt: endpoint {
+ remote-endpoint = <&usb4_1_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec2 {
+ ports {
+ port@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@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@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@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 = ðernet0;
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@2 {
+ reg = <2>;
+ typec0_con_tbt: endpoint {
+ remote-endpoint = <&usb4_0_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec1 {
+ ports {
+ port@2 {
+ reg = <2>;
+ typec1_con_tbt: endpoint {
+ remote-endpoint = <&usb4_1_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec2 {
+ ports {
+ port@2 {
+ reg = <2>;
+ typec2_con_tbt: endpoint {
+ remote-endpoint = <&usb4_2_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec3 {
+ ports {
+ port@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@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@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@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@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@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@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@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@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@2 {
+ reg = <2>;
+ typec0_con_tbt: endpoint {
+ remote-endpoint = <&usb4_0_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec1 {
+ ports {
+ port@2 {
+ reg = <2>;
+ typec1_con_tbt: endpoint {
+ remote-endpoint = <&usb4_1_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec2 {
+ ports {
+ port@2 {
+ reg = <2>;
+ typec2_con_tbt: endpoint {
+ remote-endpoint = <&usb4_2_acio_tbt>;
+ };
+ };
+ };
+};
+
+&typec3 {
+ ports {
+ port@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@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@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@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@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@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@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@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@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@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@39b028000 {
@@ -127,6 +143,98 @@ DIE_NODE(pmgr_gfx): power-management@404e80000 {
reg = <0x4 0x4e80000 0 0x4000>;
};
+ DIE_NODE(usb4_0_mbox): mailbox@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@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@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@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@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@703000000 {
power-domains = <&DIE_NODE(ps_atc0_usb)>;
};
+ DIE_NODE(usb4_1_mbox): mailbox@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@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@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@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@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@b03000000 {
power-domains = <&DIE_NODE(ps_atc1_usb)>;
};
+ DIE_NODE(usb4_2_mbox): mailbox@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@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@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@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@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@f03000000 {
power-domains = <&DIE_NODE(ps_atc2_usb)>;
};
+ DIE_NODE(usb4_3_mbox): mailbox@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@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@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@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@1302280000 {
compatible = "apple,t6020-dwc3", "apple,t8103-dwc3";
reg = <0x13 0x02280000 0x0 0xcd00>, <0x13 0x0228cd00 0x0 0x3200>;
--
2.55.0
next prev parent reply other threads:[~2026-08-30 20:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-30 20:19 [PATCH 00/19] Initial USB4/Thunderbolt support for Apple M1/M2/M3 SoCs Sven Peter
2026-08-30 20:19 ` [PATCH 01/19] dt-bindings: usb: Add thunderbolt-switch property Sven Peter
2026-08-30 20:19 ` [PATCH 02/19] usb: typec: Add thunderbolt switch Sven Peter
2026-09-01 11:17 ` Heikki Krogerus
2026-09-01 18:53 ` Sven Peter
2026-08-30 20:19 ` [PATCH 03/19] usb: typec: tipd: Hook up Thunderbolt switch for CD321x Sven Peter
2026-08-30 20:19 ` [PATCH 04/19] dt-bindings: thunderbolt: Add Apple USB4/Thunderbolt NHI Sven Peter
2026-08-30 20:19 ` [PATCH 05/19] dt-bindings: thunderbolt: Add Apple USB4/Thunderbolt ACIO block Sven Peter
2026-08-30 20:19 ` [PATCH 06/19] thunderbolt: Try reading host DROM from device tree first Sven Peter
2026-09-01 8:48 ` Mika Westerberg
2026-08-30 20:19 ` [PATCH 07/19] thunderbolt: Don't read the UID if we already know it Sven Peter
2026-08-30 20:19 ` [PATCH 08/19] thunderbolt: Allocate ring HopID before requesting the ring interrupt Sven Peter
2026-08-30 20:19 ` [PATCH 09/19] thunderbolt: Add ring_interrupt_active to tb_nhi_ops Sven Peter
2026-08-30 20:19 ` [PATCH 10/19] thunderbolt: Make the ring register layout configurable Sven Peter
2026-09-01 8:58 ` Mika Westerberg
2026-09-01 18:56 ` Sven Peter
2026-08-30 20:19 ` [PATCH 11/19] thunderbolt: Add ring_interrupt_mask to tb_nhi_ops Sven Peter
2026-08-30 20:19 ` [PATCH 12/19] thunderbolt: Add ring_configure " Sven Peter
2026-08-30 20:19 ` [PATCH 13/19] thunderbolt: Add QUIRK_NO_DMA_PORT Sven Peter
2026-09-01 9:04 ` Mika Westerberg
2026-09-01 17:06 ` Sven Peter
2026-08-30 20:19 ` [PATCH 14/19] thunderbolt: Add QUIRK_NO_USB3_BW_ALLOC Sven Peter
2026-09-01 9:12 ` Mika Westerberg
2026-08-30 20:19 ` [PATCH 15/19] thunderbolt: Export symbols required by the Apple Silicon driver Sven Peter
2026-08-30 20:19 ` [PATCH 16/19] thunderbolt: Add Apple Silicon support Sven Peter
2026-09-01 10:09 ` Mika Westerberg
2026-09-01 19:06 ` Sven Peter
2026-08-30 20:19 ` [PATCH 17/19] arm64: dts: apple: t8103: Add USB4 ACIO and NHI Sven Peter
2026-09-01 10:20 ` Mika Westerberg
2026-08-30 20:19 ` [PATCH 18/19] arm64: dts: apple: t8112: " Sven Peter
2026-08-30 20:19 ` Sven Peter [this message]
2026-08-31 17:44 ` [PATCH 00/19] Initial USB4/Thunderbolt support for Apple M1/M2/M3 SoCs Joshua Peisach
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260830-b4-apple-soc-tbt-v1-19-44bc9348683c@kernel.org \
--to=sven@kernel.org \
--cc=YehezkelShB@gmail.com \
--cc=andreas.noever@gmail.com \
--cc=asahi@lists.linux.dev \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=j@jannau.net \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=neal@gompa.dev \
--cc=p.zabel@pengutronix.de \
--cc=robh@kernel.org \
--cc=westeri@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox