Skip to content

arm64: dts: apple: add the J716c (MacBook Pro 16-inch, M5 Max) - #945

Merged
RyanTheTide merged 10 commits into
integration/aurorafrom
j716c/dt
Nov 8, 2026
Merged

RyanTheTide merged 10 commits into
integration/aurorafrom
j716c/dt

Conversation

@erikwb

@erikwb erikwb commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

The M5 Max MacBook Pro has no device tree. J716c is the one-die M5 Max: this adds t6050-max.dtsi, on the T6050 SoC files from the T6050 device tree PR (this PR is stacked on it), and the board file, which only enables and configures. It has 18 CPUs. This describes the CPUs, AIC, NVMe, SMC, boot framebuffer, DockChannel console, keyboard and trackpad, and the N1 Wi-Fi/Bluetooth on PCIe port 0.

The AP pin controller moves to the uncached regmap on T6050, as on T8140 and T8132: reading pin 112 takes an SError on this board, so only the pins a board names are read. Pin 80 (the N1's PERST#) is the only one exposed.

Testing (J716c): this runs as part of the full T6050 stack (j716c/t6050-platform): the machine boots to userspace from NVMe with all 18 CPUs, N1 Wi-Fi up and CPU frequency scaling active.

Created with Claude Opus 5.5 in Claude Code.

Add t6050-max.dtsi, the one-die M5 Max: die 0 of the T6050, with six
cores in each cluster, 18 in all, and the MTP, so far described for this
part only. Add the J716c board on it.

Described so far: the CPUs, AIC, NVMe, the SMC, the boot framebuffer,
the DockChannel console and the keyboard and trackpad (MTP). The GPU,
video decoder and memory cache controllers are not described for the
Max yet; the internal PCIe host, USB-C, I2C, the SMC sensors and
pinctrl_ap stay disabled until each is brought up on this board.

Developed with Claude Code.

Signed-off-by: Erik Bourget <erik@ebourget.net>
On J716c, reading pin 112 of the AP pin controller takes an SError. Use
the uncached regmap on T6050, as on T8140 and T8132, so that only the
pins a board names are ever read.

Developed with Claude Code.

Signed-off-by: Erik Bourget <erik@ebourget.net>
The boot loader trains port 0 (the N1 Wi-Fi/Bluetooth); describe it with
its PERST# on pinctrl_ap pin 80. Pin 112 of pinctrl_ap takes an SError
when read, so pin 80 is the only one exposed.

Developed with Claude Code.

Signed-off-by: Erik Bourget <erik@ebourget.net>
The 14-inch M5 Max is the same one-die T6050 as the J716c, so the board
file reuses t6050-max.dtsi and enables the set the J716c file enables:
CPUs, AIC, NVMe, SMC, boot framebuffer, DockChannel console, keyboard and
trackpad, and the N1 Wi-Fi/Bluetooth on PCIe port 0. This PR is stacked on
the J716c device tree PR (#945).

Three values differ from the J716c file:
- the N1 firmware name and platform ID (j714c-ftab.bin, board 0x0a),
- the trackpad firmware (tpmtfw-j714c.bin),
- the trackpad AFE reset is owned by the MTP firmware (power method 2,
  apple,firmware-managed-reset), so the board has no smc_pcio reset line.

Add the apple,j714c compatible to the binding.

Signed-off-by: Joshua Warren <816217+joshuaswarren@users.noreply.github.com>
arm64: dts: apple: add the J714c (MacBook Pro 14-inch, M5 Max)
Integration now has the T6050 base and J775D from
#935 with its review fixups.
The Makefile conflicted: the two boards go after the T6041 ones.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
t6050-j716c.dts uses "apple,j716c", which the M5 Max entry did not
list. List it next to the J714c.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
The boot loader always passes the command line, so "maxcpus=1" never
applies on a normal boot and would only hide 17 of the 18 cores when it
did, as on the J775D.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
…t pcIO lines

The J716c and J714c trees use the T6050 DockChannel FIFO and MTP, which
the shared bindings did not list. T6050's MTP carries no SoC-specific
helper compatible, so its node is "apple,t6050-mtp", "apple,mtp",
"apple,rtk-helper-asc4"; describe that form next to the existing one.

The J714c uses none of the SMC pcIO outputs (its MTP firmware owns the
trackpad reset), so its pcIO node has no command list. Let a board leave
the list out.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
@RyanTheTide

RyanTheTide commented Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Review from the Aurora side, same deal as #935. Ryan wants the T6050 trees in, so I've pushed our fixups on top and left your commits (and Joshua's J714c from #1085) as they are.

What I checked

What I pushed

  • A merge of current integration, which now has arm64: dts: apple: add the T6050 (M5 Ultra) SoC and J775D Mac Studio device trees #935 and its fixups (the Makefile conflicted).
  • dt-bindings: apple,j716c was missing from arm/apple.yaml, so the J716c root didn't validate. It's in the M5 Max entry next to the J714c now.
  • J714c and J716c: dropped the default bootargs = "maxcpus=1", as on the J775D. The loader always passes the command line.
  • dt-bindings: the T6050 DockChannel FIFO and MTP. The MTP node now lists apple,t6050-rtk-helper-asc4 like every other MTP node, so it fits the existing binding. The driver matches apple,rtk-helper-asc4 only, so nothing binds differently. The J714c's pcIO node has no command list (its MTP firmware owns the trackpad reset), so the pcIO binding lets a board leave it out.

#935 is merged and this PR targets integration/aurora now. With the fixups both boards pass CHECK_DTBS with no warnings, so I'll merge it once CI is green.

Build-tested, unbooted here. @erikwb if you get a chance to boot the head of this branch on your J716c that would be great, it's the first board that gets all of the fixups at once.

Every other MTP node lists four compatibles, "apple,<soc>-mtp",
"apple,<soc>-rtk-helper-asc4", "apple,mtp", "apple,rtk-helper-asc4",
and the binding describes only that form. Add the T6050 helper
compatible instead of a second, three-entry form in the binding, which
also changed the messages for the T8122 trees that already fail it.

The driver matches "apple,rtk-helper-asc4" only, so nothing binds
differently.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
@RyanTheTide
RyanTheTide merged commit 843d791 into integration/aurora Nov 8, 2026
2 checks passed
RyanTheTide added a commit to rolotrealanis98/linux that referenced this pull request Nov 8, 2026
Integration now has the T6050 base, J775D, J716c and J714c from
aurora-silicon#935 and
aurora-silicon#945 with their review
fixups. This branch carries earlier copies of those commits, so the
shared files conflicted:

- t6050-max.dtsi keeps this branch's CPU order and takes the MTP
  helper compatible from integration;
- t6050-die0.dtsi keeps the SMC's second GPIO bank;
- the J775D, J716c and J714c files, the QSPI and SPMI bindings take the
  reviewed versions from integration;
- arm/apple.yaml lists the J716s in its own M5 Pro entry, the Makefile
  builds it next to the other T6050 boards.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
RyanTheTide pushed a commit that referenced this pull request Nov 8, 2026
The 14-inch M5 Max is the same one-die T6050 as the J716c, so the board
file reuses t6050-max.dtsi and enables the set the J716c file enables:
CPUs, AIC, NVMe, SMC, boot framebuffer, DockChannel console, keyboard and
trackpad, and the N1 Wi-Fi/Bluetooth on PCIe port 0. This PR is stacked on
the J716c device tree PR (#945).

Three values differ from the J716c file:
- the N1 firmware name and platform ID (j714c-ftab.bin, board 0x0a),
- the trackpad firmware (tpmtfw-j714c.bin),
- the trackpad AFE reset is owned by the MTP firmware (power method 2,
  apple,firmware-managed-reset), so the board has no smc_pcio reset line.

Add the apple,j714c compatible to the binding.

Signed-off-by: Joshua Warren <816217+joshuaswarren@users.noreply.github.com>
RyanTheTide added a commit that referenced this pull request Nov 8, 2026
Integration now has the T6050 base and the J775D, J716c, J714c and J716s
trees from #935,
#945 and
#1167. arm/apple.yaml
conflicted: the K boards go into the M5 Pro and M5 Max entries next to
the J714/J716 boards. The pwm and pmgr-pwrstate bindings already list
T6050.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
@RyanTheTide
RyanTheTide deleted the j716c/dt branch November 8, 2026 08:02
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.

3 participants