[PATCH v2 0/3] Apple SoC CIO (USB4/Thunderbolt) reset controller

Sven Peter posted 3 patches 1 month, 1 week ago
.../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(-)
[PATCH v2 0/3] Apple SoC CIO (USB4/Thunderbolt) reset controller
Posted by Sven Peter 1 month, 1 week ago
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@kernel.org

To: Sven Peter <sven@kernel.org>
To: Janne Grunau <j@jannau.net>
To: Neal Gompa <neal@gompa.dev>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Joshua Peisach <jpeisach@ubuntu.com>
Cc: asahi@lists.linux.dev
Cc: linux-arm-kernel@lists.infradead.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

---
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@kernel.org>
Re: [PATCH v2 0/3] Apple SoC CIO (USB4/Thunderbolt) reset controller
Posted by Janne Grunau 2 weeks, 6 days ago
On Fri, Aug 21, 2026 at 05:44:53PM +0200, Sven Peter wrote:
> 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@kernel.org
> 
> To: Sven Peter <sven@kernel.org>
> To: Janne Grunau <j@jannau.net>
> To: Neal Gompa <neal@gompa.dev>
> To: Rob Herring <robh@kernel.org>
> To: Krzysztof Kozlowski <krzk+dt@kernel.org>
> To: Conor Dooley <conor+dt@kernel.org>
> To: Philipp Zabel <p.zabel@pengutronix.de>
> Cc: Joshua Peisach <jpeisach@ubuntu.com>
> Cc: asahi@lists.linux.dev
> Cc: linux-arm-kernel@lists.infradead.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> 
> ---
> 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(-)

whole series

Reviewed-by: Janne Grunau <j@jannau.net>

Janne