Skip to content

arm64: dts: apple: t8142-j704: enable the MacBook Pro (14-inch, M5) - #1231

Merged
RyanTheTide merged 8 commits into
aurora-silicon:integration/aurorafrom
dmitzsaz:pr/j704-enable
Nov 9, 2026
Merged

RyanTheTide merged 8 commits into
aurora-silicon:integration/aurorafrom
dmitzsaz:pr/j704-enable

Conversation

@dmitzsaz

@dmitzsaz dmitzsaz commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

The J704 board file now includes the disabled T8142 inventory from #1153. This enables what runs on the J704 and adds the board's own devices from its ADT:

The inventory's DARTs are used through their labels. The USB DART nodes list both instances in reg; the board keeps instance 0 there and adds instance 1 as its own node, as the J813 does. The binding entry gets the machine's name, matching the new model string. The wdt, qspi, PMP and display-subsystem bindings get their T8142 compatibles, which the J813 already uses, and the inventory's MTP DART gets reg-names for its DAPF region (ADT dart-mtp instances DART, DAPF).

Not working yet: on the macOS 27.0 firmware the internal panel stays on the boot framebuffer; the DCP needs the firmware-27 path (#1012 / #1135).

Tested on: J704 (macOS 27.0 stub), 2026-11-08, 7.3.0-j704en = integration/aurora bdd4621 + this PR. All ten CPUs with schedutil (E up to 3048 MHz, P up to 4608 MHz); booted from NVMe, 2.0 GB/s direct read; the internal keyboard in the U-Boot console and then in Linux (Retaining the live coprocessor bypass, adopted the running RTKit session), trackpad; Wi-Fi (brcmfmac 23.10.1039), Bluetooth and the GL9755 on the bus; the three dwc3 bound and a USB device working; PMP, battery, AC, temperatures, fan, RTC, power button and lid; s2idle, woken by the keyboard, with Wi-Fi, Bluetooth, NVMe and input back. The boot chain was aura with a change that trains the root ports the DT describes and U-Boot handing the MTP over live (mtp-live-v1).

scripts/dtc/apple-dt-check.sh against bdd4621: 1 new warning, 8 removed (the J813's). The new one is the disp0_piodma alias, which the J813 has too; aura looks the node up by that name. The changed bindings pass dt_binding_check.

Prepared with Claude Opus 5.5; tested by me on the hardware.

The J704 entry names the board only by its code. It is the MacBook Pro
(14-inch, M5, 2025), as its device tree's model now says.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
The M5 (T8142) watchdog is the T8103 one, as on the other recent SoCs.
The J704 and J813 device trees use apple,t8142-wdt.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
The M5 (T8142) QSPI controller is the T8140 one, as on T6050 and T8152.
The J704 and J813 device trees use apple,t8142-qspi.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
The M5 (T8142) PMP takes the T8140 firmware interface, so it falls back
to apple,t8140-pmp-v2. The J704 and J813 device trees use that pair.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
The M5 (T8142) display subsystem takes the same description as the
T8140 one. The J704 and J813 device trees use
apple,t8142-display-subsystem with apple,display-subsystem.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
The MTP DART's second register region is its DAPF (ADT dart-mtp
instance DAPF). The DART binding requires reg-names once a second
region is listed.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
The J704 board file includes the disabled T8142 inventory. Enable what
runs on this machine and describe the board's own devices from its
Apple Device Tree:

- The ten CPUs with cpufreq and the PMC voters: E-cluster states up to
  3048 MHz and P-cluster states up to 4608 MHz.
- AIC, the timer, the Samsung UART as the console (serial0, 115200
  baud) and the dockchannel UART (serial1).
- PMGR power domains, the PMP and the SMC: battery, AC, fan and
  temperatures, the power button and lid, reboot and the RTC through
  the PMU's rtc_scrpad offset.
- The keyboard and trackpad on the MTP, with the trackpad firmware
  name and the keyboard backlight at half brightness.
- The three Type-C ports: ATC0 and ATC1 on nub SPMI A0, ATC3 on nub
  SPMI A1. ATC2 drives the HDMI port and is left out.
- The AVD video decoder.
- The internal DCP and the 14.2" mini-LED panel, disabled: the loader
  enables them for a display session it hands over. On macOS 27.0
  firmware the panel stays on the boot framebuffer until the DCP driver
  runs that firmware.

The inventory's DARTs are used through their labels. Each USB DART
node lists both of its instances in reg; the board keeps instance 0
there and adds instance 1 as its own node, as on the J813.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
…eader

Describe the internal ANS2 NVMe SSD as on J813. This machine's ANS
firmware ends the nvme register block at 0x10000 (ADT ans reg[9]) and
keeps the linear submission queue doorbells in the NVMMU block, which
the driver detects from the window size.

Describe the internal PCIe as J813 describes its N1: the boot loader
trains the links and Linux drives the root ports as a generic ECAM
host. Port 0 carries the BCM4388 Wi-Fi/Bluetooth, port 2 the GL9755 SD
card reader. Both ports' MSI maps share one AIC range, so one
apple,t8142-pcie-msi controller lists both. The ports use the
inventory's pcie0 and pcie2 DARTs, stream 0.

Signed-off-by: Dmitriy <noc@pimk.in>
Assisted-by: LLM
@RyanTheTide
RyanTheTide merged commit 8f48481 into aurora-silicon:integration/aurora Nov 9, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants