Linux 7.0 Apple Silicon Device Tree Updates Complete USB-C Port Support for M1/M2 Macs
#Hardware

Linux 7.0 Apple Silicon Device Tree Updates Complete USB-C Port Support for M1/M2 Macs

Hardware Reporter
5 min read

The latest Apple Silicon Device Tree updates for Linux 7.0 add all necessary nodes and connections to fully expose USB-C ports on M1 and M2-based Macs, marking a significant milestone in Apple Silicon Linux support. The patches enable USB 2.0/3.x functionality across all port configurations, from base M1/M2 models to Pro, Max, and Ultra variants.

The Apple Silicon Linux ecosystem has taken another major step forward with the latest Device Tree updates targeting the Linux 6.20~7.0 development cycle. Sven Peter submitted the Apple SoC DT updates this week, and the most significant addition is the complete implementation of USB3 support for Apple's integrated USB-C ports.

The USB-C Hardware Stack on Apple Silicon

To understand what these updates accomplish, it's essential to examine the hardware architecture. Each port on Apple silicon devices operates through a dedicated collection of hardware blocks that Linux must properly map and configure:

  • Apple Type-C PHY: A combo PHY handling USB 2.0, USB 3.x, USB4/Thunderbolt, and DisplayPort signaling
  • Synopsys Designware dwc3 USB controller: The core USB controller implementation
  • Two DART IOMMU instances: For memory protection and isolation of the dwc3 controller
  • CD321x USB PD controller: Apple's proprietary power delivery controller (similar to TI's TPS6598x series)

Janne Grunau's patch series explains that "the CD321x nodes are already present," so this update focuses on adding "the remaining device nodes, typec connector nodes, and connections between all components." This represents the final piece needed to expose all USB-C ports to the Linux kernel.

Port Configuration by Chip Variant

The Device Tree updates account for the different port configurations across Apple's silicon lineup:

Chip Variant Total Ports Active Ports Notes
M1/M2 2 2 Base models
M1/M2 Pro 4 3 Fourth port used for HDMI output
M1/M2 Max 4 3 Fourth port used for HDMI output
M1/M2 Ultra 8 6 Third and fourth ports on second die fused off

The Pro and Max-based MacBook Pros only utilize three USB-C ports for data connectivity. The fourth port serves as a DisplayPort PHY driving an integrated DP-to-HDMI converter for the HDMI output. Similarly, Ultra-based Mac Studio devices use only six of their eight potential ports, with the third and fourth ports on the second die completely fused off at the silicon level.

What the Device Tree Updates Actually Add

The patch series summary outlines the specific additions:

  1. USB3 Support Nodes: "Add all required nodes and connections for USB3 support" - this constitutes the majority of the diffstat
  2. Type-C PHY Bindings: Scheduled for submission via the PHY tree (already in linux-next)
  3. RTC Subnodes: Added to the System Management Controller
  4. Chassis-Type Property: Added for all M1 and M2 machines for proper identification
  5. Power Management Fixes: Minor corrections to existing power management implementations
  6. iPad Pro Backlight Nodes: Support for A9X-based iPad Pro displays

Dependencies and Timeline

These updates depend on several previous kernel changes:

  • tipd changes: Merged in Linux 6.18
  • dwc3-apple driver: Merged in Linux 6.19-rc1
  • Apple Type-C PHY driver: Currently in linux-next

With these dependencies now in place or queued, the Device Tree updates are the final piece needed for full USB-C functionality. The patches are being prepared for the Linux 6.20~7.0 merge window, which kicks off next month.

Broader Apple Silicon Linux Progress

This update represents part of a larger effort to bring complete hardware support to Apple Silicon Macs under Linux. In a related development, a second pull request this week for Apple SoC defconfig updates now enables most drivers required for Apple Silicon as modules inside the default kernel configuration. This means that out-of-the-box Linux installations will have the necessary drivers available without requiring manual compilation or external module loading.

Practical Implications for Homelab Builders

For homelab builders and developers using Apple Silicon Macs as Linux servers or workstations, these updates mean:

  • Full USB-C peripheral support: External storage, networking adapters, and other USB-C devices should work at full speed
  • Power delivery compatibility: Proper USB PD negotiation for charging and power delivery
  • DisplayPort over USB-C: Support for external displays via USB-C docks and adapters
  • Thunderbolt/USB4 compatibility: When the Type-C PHY driver is fully merged, Thunderbolt devices should work

Testing and Validation

The Device Tree changes have been carefully crafted to match Apple's hardware specifications. Each port configuration has been validated against the actual hardware implementations. The separation of USB2 and USB3 support into distinct nodes ensures proper enumeration and functionality across different USB standards.

For users testing these changes, the updates should be available in Linux 7.0-rc1 when the merge window opens. Early testing with linux-next can provide preview functionality, though stability may vary.

Future Considerations

While USB-C port support is now complete, several areas remain under active development:

  • USB4/Thunderbolt 4: Full functionality requires additional driver work
  • DisplayPort Alt Mode: Complete display output support across all configurations
  • Power Management: Continued refinement of power states and efficiency
  • iPad Pro Support: The A9X backlight nodes suggest ongoing work for iPad Linux support

The Apple Silicon Linux project continues to make steady progress, with each kernel cycle bringing more hardware support and better integration. The USB-C port updates represent a critical milestone for anyone looking to use Apple Silicon Macs as full-featured Linux systems.

For those interested in following the development, the patches are available through the Linux kernel mailing lists, and the official Linux kernel repository will include these changes in the upcoming 7.0 release.

APPLE

The completion of USB-C support on Apple Silicon under Linux demonstrates the community's commitment to bringing full hardware compatibility to these powerful machines. As more developers and homelab builders adopt Apple Silicon for Linux workloads, these foundational updates ensure that the hardware can be fully utilized for server, development, and desktop use cases.

Comments

Loading comments...