[PATCH v2 0/3] Apple SoC CIO (USB4/Thunderbolt) reset controller
From: Sven Peter
Date: Fri Aug 21 2026 - 11:50:00 EST
Hi,
The CIO blocks used for USB4/Thunderbolt on Apple Silicon SoCs have a
reset inside the power manager that has to be deasserted before their
co-processor can be booted. On t8103 and t8112 each port comes with a
dedicated register page while t600x and t602x use a single register
with one request bit per port shared by all ports of a die in the
middle of the PMGR MMIO region.
The first patch adds the dt-binding, the second one the driver and the
last one the device tree nodes for all SoCs. This will be used by the
upcoming USB4/Thunderbolt series to start the host routers before
booting their co-processors.
Best,
Sven
---
Changes in v2:
- dt-bindings: move the t600x example with the PMGR sub-node over to the
PMGR binding itself where it can use the correct number of address
cells such that the unit address matches reg again (Conor)
- bail out of probe when no match data is available (Joshua, sashiko)
- explain why neither a read-modify-write nor a delay before polling
is required for the shared t600x register (sashiko)
- fix a copy/paste error for the M2 MMIO region in the dts change
- Link to v1: https://patch.msgid.link/20260809-b4-cio-reset-v1-0-4f33777d9b4b@xxxxxxxxxx
To: Sven Peter <sven@xxxxxxxxxx>
To: Janne Grunau <j@xxxxxxxxxx>
To: Neal Gompa <neal@xxxxxxxxx>
To: Rob Herring <robh@xxxxxxxxxx>
To: Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>
To: Conor Dooley <conor+dt@xxxxxxxxxx>
To: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
Cc: Joshua Peisach <jpeisach@xxxxxxxxxx>
Cc: asahi@xxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: devicetree@xxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
---
Sven Peter (3):
dt-bindings: reset: Add Apple SoC CIO reset
reset: Add Apple SoC CIO reset driver
arm64: dts: apple: Add CIO reset controllers
.../devicetree/bindings/arm/apple/apple,pmgr.yaml | 12 ++
.../bindings/reset/apple,t8103-cio-reset.yaml | 61 +++++++
MAINTAINERS | 2 +
arch/arm64/boot/dts/apple/t600x-dieX.dtsi | 8 +-
arch/arm64/boot/dts/apple/t602x-dieX.dtsi | 8 +-
arch/arm64/boot/dts/apple/t8103.dtsi | 6 +
arch/arm64/boot/dts/apple/t8112.dtsi | 6 +
drivers/reset/Kconfig | 10 ++
drivers/reset/Makefile | 1 +
drivers/reset/reset-apple-cio.c | 200 +++++++++++++++++++++
10 files changed, 312 insertions(+), 2 deletions(-)
---
base-commit: 8d3ae59288f1e7d58d76558a6ee96d533bc5019f
change-id: 20260809-b4-cio-reset-aa3fb04bad9e
Best regards,
--
Sven Peter <sven@xxxxxxxxxx>