[PATCH v2 0/3] PCI: apple: Integrate pwrctrl API

Yureka Lilian yureka at cyberchaos.dev
Wed Nov 4 03:40:28 PST 2026


Hi all,

This series integrates the PCI pwrctrl framework into the Apple PCIe
host driver to provide standardized power management for PCI ports.

This allows powering on the WiFi, SD card reader, and USB xHCI on
Apple Silicon Macs through the pwrctrl framework before probing the ports.

The first patch in this series exposes the necessary APIs to create,
destroy, and power on/off pwrctrl devices for individual ports.
The second patch integrates these APIs into the Apple PCIe driver on a
per-port basis. The third patch adds device tree changes for t600x as an
example.

Originally, a custom solution for powering on the WiFi and SD card
reader was proposed[1], but we can now use the pci-pwrctrl framework
for this purpose.

Link[1]: https://lore.kernel.org/lkml/20220502093832.32778-4-marcan@marcan.st/
---
Changes in v2:
- Split the pwrctrl API integration to work on a per-port basis for
  consistency with the rest of the driver
- Correctly use ERR_PTR to convert the error value before printing

To: Bartosz Golaszewski <brgl at kernel.org>
To: Manivannan Sadhasivam <mani at kernel.org>
To: Bjorn Helgaas <bhelgaas at google.com>
To: Lorenzo Pieralisi <lpieralisi at kernel.org>
To: Krzysztof Wilczyński <kwilczynski at kernel.org>
To: Rob Herring <robh at kernel.org>
To: Marc Zyngier <maz at kernel.org>
To: Sven Peter <sven at kernel.org>
To: Janne Grunau <j at jannau.net>
To: Neal Gompa <neal at gompa.dev>
To: Krzysztof Kozlowski <krzk+dt at kernel.org>
To: Conor Dooley <conor+dt at kernel.org>
Cc: linux-pci at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: asahi at lists.linux.dev
Cc: linux-arm-kernel at lists.infradead.org
Cc: devicetree at vger.kernel.org

---
Yureka Lilian (3):
      PCI/pwrctrl: Export per-device APIs
      PCI: apple: Integrate pwrctrl API
      arm64: dts: apple: t600x: Add PCIe pwren gpios

 arch/arm64/boot/dts/apple/t600x-die0.dtsi      |  4 ++
 arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi | 16 ++++++++
 arch/arm64/boot/dts/apple/t600x-j375.dtsi      | 27 ++++++++++++++
 drivers/pci/controller/Kconfig                 |  1 +
 drivers/pci/controller/pcie-apple.c            | 23 ++++++++++++
 drivers/pci/pwrctrl/core.c                     | 51 +++++++++++++++++++++++---
 include/linux/pci-pwrctrl.h                    |  4 ++
 7 files changed, 121 insertions(+), 5 deletions(-)
---
base-commit: 6628e7d4c6b25c8d18f1345e3a20d21829aae7e4
change-id: 20260706-apple-pcie-pwren-0dd1ebdf1c4c

Best regards,
--  
Yureka Lilian <yureka at cyberchaos.dev>




More information about the linux-arm-kernel mailing list