Skip to content

arm64: dts: apple: preliminary PROLED MacBook Pros (K114c/s, K116c/s), logo LED and touchscreen node - #1025

Merged
RyanTheTide merged 10 commits into
integration/aurorafrom
oled/k114-k116-v2
Nov 8, 2026
Merged

RyanTheTide merged 10 commits into
integration/aurorafrom
oled/k114-k116-v2

Conversation

@RyanTheTide

Copy link
Copy Markdown
Contributor

Preliminary device trees for the MacBook Pros with the PROLED XDR display: K114c and K116c (M5 Max), K114s and K116s (M5 Pro). Nobody on the team has one of these yet, so none of this has run on hardware. Every board value comes from the boards' own ADT (macOS 27.2, 26B8125), checked against J716c's.

This is stacked on #935 and #945 (T6050 SoC and J716c). The first 12 commits are theirs and drop out once they merge. Only the last 7 belong here.

What's in it

  • Bindings for the four boards, plus apple,t6050-pmgr-pwrstate (the T6050 trees already use it) and apple,t6050-fpwm.
  • The three T6050 FPWM channels and their power states, disabled in the SoC file. FPWM1 and FPWM2 power states stay off unless a board uses them, because J716c's ADT ties FPWM1's state to its indicator controller.
  • The boards, in a shared t6050-k114-k116.dtsi that follows J716c. CPUs, NVMe, SMC, boot framebuffer, console, keyboard and trackpad on the MTP, keyboard backlight on FPWM0.
  • The rear Apple logo as a pwm-leds LED (apple::logo) on FPWM1 at the ADT's 25 kHz, with default-state = "keep" so it stays however the boot loader left it.
  • The touchscreen interface ("kiwi" on the MTP transport), described but disabled. dockchannel-hid now ignores interfaces whose node is disabled.

The M5 Pro boards reuse the Max's CPU list. The static ADT lists the same CPUs for both, and the loader drops cores a part doesn't have using the ADT the Mac boots with. That needs confirming on a real M5 Pro boot.

Left out on purpose

  • PCIe and the N1 (Wi-Fi, Bluetooth). The N1's platform ID needs the board ID, which isn't in the static ADT.
  • DCP for the OLED panel. Boot framebuffer only, same as J716c today.

Waiting on hardware or follow-ups

  • Touchscreen. It doesn't send finished HID touches, it sends raw sensor frames and the Mac computes contacts in user space. Plan is firmware load through the existing transport once its sequence is specified, raw frames through hidraw, and a separate user-space service that turns frames into MT contacts. The firmware comes from the user's own macOS at install (Admit the PROLED MacBook Pros (K114/K116, M5 Pro/Max) as experimental aurora-installer#107 collects it unconverted).
  • Logo brightness policy (the ADT's nits mapping and per-device syscfg calibration) belongs in user space with values the installer extracts. The ADT's use-enable-pulse isn't handled yet.
  • FPWM2 (mesa-backlight, 100 Hz) is described but left off until we know what it lights.

Tests (buildbox, arm64 cross)

  • make W=1 for the four K boards plus J716c and J775D: clean.
  • dt_binding_check on arm/apple.yaml, power/apple,pmgr-pwrstate.yaml, pwm/apple,s5l-fpwm.yaml, input/apple,dockchannel-hid.yaml: clean.
  • CHECK_DTBS=y on the K boards: 66 warnings each, all inherited from the T6050 base series (J716c has 71). Nothing new from these commits.
  • W=1 build of drivers/hid/dockchannel-hid, pwm-apple and leds-pwm: clean.
  • No KUnit added. The driver change is one availability check and the existing tests don't cover OF lookups.
  • No boot test. There's no K board to boot, and the shared-code change (the disabled-node check) can't change behaviour on any existing board since none of them has a disabled interface node.

The bindings and the SoC FPWM commits don't depend on the hardware and can merge once #935 and #945 do. The board commit needs a hardware test.

🤖 Generated with Claude Code

Add the 14-inch and 16-inch MacBook Pro with the PROLED XDR display, the
K114c and K116c with the M5 Max and the K114s and K116s with the M5 Pro,
all on the T6050.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
The T6050 device trees already use apple,t6050-pmgr-pwrstate with the
T8103 fallback; list it.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
The T6050 has the same FPWM block as the earlier SoCs.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
The MacBook Pros with a PROLED XDR display have a touchscreen that the
MTP coprocessor announces as the "kiwi" interface, next to the trackpad
and keyboard. Document it, and that an interface whose node is disabled
is ignored like one without a node.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
A board may describe an interface that is not ready to be used yet, such
as the touchscreen of the PROLED MacBook Pros, whose firmware load and
reports are still being worked out. Treat an interface whose node is
disabled like one without a node.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Add the three FPWM channels from the ADT (/arm-io/pwm0, pwm1 and pwm2,
"fpwm,s5l8920x" at 0x305040000, 0x305044000 and 0x305048000) with
their power states (FPWM0 to FPWM2 in the second PMGR block at 0x2a8,
0x2b0 and 0x2b8). The channels stay disabled; the boards say what each
drives. The FPWM1 and FPWM2 power states stay disabled too, so a board
that does not use them never touches them: J716c's ADT ties FPWM1's
power state to the indicator controller.

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

Add the 14-inch and 16-inch MacBook Pro with the PROLED XDR display, with
the M5 Max (K114c, K116c) and the M5 Pro (K114s, K116s). They are the
J714/J716 with an OLED panel that takes touch and a lit rear logo, so the
boards follow J716c, and every difference comes from their ADT (macOS
27.2, 26B8125).

Described: the CPUs, NVMe, the SMC, the boot framebuffer, the DockChannel
console, the keyboard and trackpad on the MTP, the keyboard backlight and
the rear Apple logo, both on FPWM channels at the ADT's 25 kHz. The logo
keeps whatever state the boot loader left it in. The touchscreen
interface is described but disabled until its firmware load and reports
are worked out. PCIe stays off: the N1's platform ID needs the board ID,
which the static ADT does not carry.

Not tested on the hardware; nobody on the team has one of these Macs.

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
@RyanTheTide RyanTheTide added soc:T6050 M5 Pro / M5 Max / M5 Ultra hardware discussions needs hardware test labels Nov 6, 2026
RyanTheTide added a commit to aurora-silicon/aurora-installer that referenced this pull request Nov 6, 2026
The device trees are aurora-silicon/linux#1025. The logo is described
there as an LED, so call it untested rather than not working.

Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
Assisted-by: LLM
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>
t6050-die0.dtsi now describes the three FPWM channels and their power
states, disabled. Enable FPWM0 for the keyboard backlight instead of
describing the channel and its power state a second time in the board
file. The compiled node is the same.

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 cores when it did, as on
the other T6050 boards.

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

Copy link
Copy Markdown
Contributor Author

Review for the T6050 lane. With #935, #945 and #1167 merged, this one now carries only its own commits on top of integration.

What I checked

  • make W=1 and CHECK_DTBS=y on the four K boards and the J716s after the merge: no warnings.
  • The compiled J716s tree before and after this PR: every node and property is the same, this PR only adds the disabled FPWM1/FPWM2 channels and their power states.

What I pushed

  • A merge of current integration. arm/apple.yaml conflicted: the K boards now sit in the M5 Pro and M5 Max entries next to the J714/J716 boards. The pwm and pmgr-pwrstate bindings already had T6050 from the earlier merges.
  • J716s: arm64: dts: apple: add the J716s (MacBook Pro 16-inch, M5 Pro) #1167 described FPWM0 and its power state in the board file. With this PR's SoC-level FPWM nodes that clashes, so the J716s now just enables &fpwm0. The compiled node is the same as the one Rolando tested.
  • Dropped the default bootargs = "maxcpus=1" from t6050-k114-k116.dtsi, as on the other T6050 boards.

Build-tested, unbooted. Nobody on the team has a K board, so this goes in as preliminary and untested, which is what aurora-silicon/aurora-installer#107 and aurora-silicon/aurora-silicon.github.io#16 say too.

@RyanTheTide
RyanTheTide merged commit e2daf99 into integration/aurora Nov 8, 2026
2 checks passed
RyanTheTide added a commit to aurora-silicon/aurora-installer that referenced this pull request Nov 8, 2026
main now admits every M4 Mac and the new M5 and M6 boards with device
trees (#109, #113). Both sides added
boards to the same lists, so each list takes both: supported-models.json
and the release templates, the Stage 1 cautions, the inspection policy's
chip, model and firmware entries, the simulated catalog and the tests'
board lists and counts (58 models). The OLED boards keep their 27.2-only
firmware and payload qualification; every other board takes main's.
The Mach-O Stage 1 chip set is now T6040, T6041, T6050, T8132, T8140,
T8142 and T8152. The test that kept 27.2 away from the J616s goes, since
main offers 27.2 to every board.

The kernel device trees for the K114/K116 are in integration now
(aurora-silicon/linux#1025).

Assisted-by: LLM
Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>
RyanTheTide added a commit to aurora-silicon/aurora-installer that referenced this pull request Nov 8, 2026
Admit the PROLED MacBook Pros (K114/K116, M5 Pro/Max) as experimental, untested on hardware. Kernel device trees: aurora-silicon/linux#1025 (merged).
@RyanTheTide
RyanTheTide deleted the oled/k114-k116-v2 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

needs hardware test soc:T6050 M5 Pro / M5 Max / M5 Ultra hardware discussions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant