Skip to content

arm64: dts: apple: t8142-j815: lid angle sensor (on #1532) - #1805

Draft
m0d16l14n1 wants to merge 24 commits into
aurora-silicon:integration/aurorafrom
m0d16l14n1:j815/t8142-lid-angle
Draft

m0d16l14n1 wants to merge 24 commits into
aurora-silicon:integration/aurorafrom
m0d16l14n1:j815/t8142-lid-angle

Conversation

@m0d16l14n1

Copy link
Copy Markdown
Contributor

Draft, stacked on #1532 (the J815 device tree; J815 only gets its &aop node there). The net change is the last two commits: m0d16l14n1/linux@0434a61...m0d16l14n1:linux:j815/t8142-lid-angle

  1. dt-bindings: apple,t8142-aop-las.
  2. t8142-j815.dts: las under &aop. The J815 AOP firmware announces a "las" service; macOS 27.2 on this machine binds it as an AppleSPUHIDDevice with usage page 0x20 / usage 0x8a, the report aop_las decodes (same as T6050, arm64: dts: apple: t6050: Add the AOP lid angle sensor #1548). The ADT's i2c1 mogul-las is the sensor's authentication chip, not the angle. No driver change (aop_las matches apple,aop-las).

Tested on J815: aop-sensors-las probes, in_angl_raw 109 with in_angl_scale pi/180, and it still reads after s2idle.

J813 most likely has the same service, but I can't check that without one.

Part of the J815 (MacBook Air 15-inch, M5, T8142) bring-up: board results are summarised in discussion #135. Tested on a J815 with a macOS 27.0 stub (firmware 27.0) through aura Stage 2.

Assisted-by: Claude Opus 5.5

m0d16l14n1 and others added 24 commits November 11, 2026 16:56
J704 and J815 describe their boards on top of the T8142 inventory in
t8142.dtsi, but J813 still defines its own root, CPUs, timer, AIC and
UARTs, and its fragments define the pmgr and DART nodes that the
inventory also has. A board that includes t8142.dtsi therefore cannot
use the J813 fragments: the labels are defined twice. That blocks the
J815, which shares most of them.

Include t8142.dtsi in J813 and enable what it uses, as J815 does. Turn
the fragments' pmgr, AOP, AVD, DCP, display, PCIe, PMP and MTP DART
definitions into references that keep J813's values. Enable the two USB
DARTs, which the inventory disables at the same paths.

The flattened J813 tree is unchanged apart from explicit
status = "okay", interrupt-parent now inherited from the root, and the
inventory's extra USB DART labels: compared with dtc -I dts -O dts -s
before and after, with phandle numbers removed.

Not tested on J813 hardware.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
J815 has J813's PMGR power domains, PMP, QSPI and FPWM. Include
t8142-j813-peripherals.dtsi, which J813 now builds on t8142.dtsi, in
place of the board's own PMGR and MTP DART enables. The PMP takes the
J815 board-id from the ADT (0x26).

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set
in a J815 tree that included the whole J813 board.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
The J815 ADT describes both Type-C ports like J813's: ATC PHYs, DWC3
controllers, DARTs and the CD3218B controllers on the same buses.
Include t8142-j813-usb.dtsi.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. A SuperSpeed Plus hub
and the USB 2/3 devices behind it enumerate, and USB-C headphones play
audio.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
Include t8142-j813-display.dtsi and describe the J815 panel: 15.3-inch,
2880x1864 (2880x1800 below the notch), 326 x 211 mm.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. With the macOS 27.0 DCP
firmware this needs the FW27 display support in Linux aurora-silicon#1413; the console
and a KWin session run on the panel.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
The J815 GPU is J813's. Include t8142-j813-gpu.dtsi.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. With the macOS 27.0
firmware this needs Linux aurora-silicon#1413; the GPU driver initializes and KWin
renders through Mesa.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
Include t8142-j813-avd.dtsi: J815 has J813's AVD, DART and power domain.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. With avd-fw-v5-t2 the
decoder probes and decodes through v4l2-request/VA-API: H.264 High 1080p
and HEVC Main 720p in mpv (vaapi-copy, one AVD interrupt per frame, no
kernel errors).

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
Include t8142-j813-isp.dtsi. The J815 ADT gives the ISP sensor-type 0x72
(J813: 0x71).

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. The ISP firmware boots
and the camera streams.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
Include t8142-j813-n1.dtsi for the N1 on apcie port 0. Describe the N1's
three PCI functions and alias wifi0 and bluetooth0 to them, so the
loader can fill in the factory MAC and BD addresses, as on T6050.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. Wi-Fi connects to WPA2
networks, and Bluetooth LE devices pair and reconnect. Both use the
factory addresses.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
Include t8142-j813-audio.dtsi for the AOP, the AP and NUB pin
controllers, the ADMACs and the I2C buses with the headphone jack codec
and speaker amplifiers. J815 has six speaker amplifiers where J813 has
four, so keep J813's sound card and the AOP audio service disabled.
The J815 speaker layout is a separate change.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board, with audio enabled. The
AOP boots and its services come up. This exact variant, with audio
disabled, has been compile-tested only.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
The J815's AOP "als" service is an ST VD6286, as on the M4 Pro, not
T8140's CT817. Give the service device its compatible so aop_als binds
and sends the per-device calibration.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set in
a J815 tree that included the whole J813 board. The sensor reports lux
and colour temperature.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
The discovered SMC temperatures carry no power rails and no SoC die
zone. Add the total system, AC input and 3.8 V rail power, the AC and
battery voltages and the AC current, and J704's T8142 die key list for
the SoC die thermal zone.

Tested on J815 (MacBook Air 15-inch, M5) with the equivalent node set
in a J815 tree that included the whole J813 board.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
From the J815 ADT (macOS 27.0): the SEP is a pre-booted
iop-sep,ascwrap-v6 at 0x30a600000 with its ASC mailbox at +0x8000. Its
t8110 DART uses the BIT(40) input aperture, as on T8132. The Touch ID
sensor is on spi2 (0x3a5108000, 8 MHz, CS0, power domain SPI2 under
SPI_P), with power on NUB GPIO 36 and data-ready on AP GPIO 200. Alias
the SEP so the loader can reserve its firmware and copy the boot
manifests onto the node, and expose the two sensor pins.

The SEP and its DART stay disabled: the SEP driver enables them.

Tested on J815 with the J815 SEP profile: the SEP attaches, the sensor
binds on spi2 and comes up in about 40 ms, and fingerprints enrol and
match (sudo with the finger).

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
Match the existing DT and public driver interfaces: keep the specific fallback chains, T8142-only ALS, eight ISP power domains versus fourteen on T8140, and the two-mailbox/six-region T8142 GPU profile. Preserve the constraints on other SoCs. No DT resource values change.

Validated with dtschema 2026.9 strict document/reference checks and targeted processed-schema positive and negative cases. Full DTB validation and the draft J813 hardware gate remain separate.

Signed-off-by: Diljit Singh <hey@djdev.me>
Carry byte-exact schema files from reviewed aurora-silicon#1423 at 18fa06f so the shared J813/J815 DT can be checked without inventing a second binding implementation.

Original binding updates by Thomas Glanzmann, signed off in commits 9afc945 and bb9ad0e. This is binding metadata only; no driver or speaker-protection adoption or parent edge is added. The M5 merge lane retains ownership of aurora-silicon#1423. Later identical binding changes coalesce in an ordinary merge.

Signed-off-by: Diljit Singh <hey@djdev.me>
Identify the J815 native profile with a T8142-specific compatible while retaining the PCI1900 fallback. The generic driver continues to match the host/PCI ID and obtain firmware data from its root board table; no firmware/platform/protocol values are invented. Keep all three wire27 properties required for the older PCI-only T6050 profile and forbid mixing those properties into the native profile.

Only the J815 endpoint compatible changes. Shared SoC/J813 DT inputs and runtime resources remain unchanged. The J815 board firmware-table prerequisite is aurora-silicon#1530.

Signed-off-by: Diljit Singh <hey@djdev.me>
Preserve the current shared T8142 CPU topology, OPP power data and
trackpad actuator, along with the J813 firmware clock providers.
Reconcile T8142 binding profiles with the current T6050 sensor services
and preserve the T8140 ISP firmware memory and sensor power domains.
Match the existing J813/J815 fw-data crash-log region and its ordered
seven-region tuple. Preserve the six-region maximum for other GPUs.
Keep main's complete ISP binding, preserving the T8140/Neo sensor-domain
order and T8142 eight-domain case. All added and removed feature lines
in the remaining 15 DT and binding files match the preceding parent.

The complete bindings directory matches the validated aurora-silicon#1534 integration:
eight binding documents and 32 candidate/32 main GPU schema controls.
No repeated schema test or new compiled-DTB/hardware result is claimed.
J815 audio stays disabled here. Keep the underscore loader alias until
compatible-loader qualification/adoption; no warning filtering.

Preserve published ancestry and require fresh current-head Host/DT CI.
The required J813 shared-DT boot and existing loader/rollout gates remain.
No boot, audio playback, image build or protection-policy change.

Assisted-by: LLM
Add the N1 control/Wi-Fi/Bluetooth PCI functions and wifi0/bluetooth0
aliases already used by J815, so the loader can populate the factory
addresses on J813. Keep the change board-local and omit the untested SEP
alias. Do not change Bluetooth experimental module options.

Based on the patch and owner report by @gig3m in linux#1532 comment
6828183980. The supplied block is carried exactly; its PCI topology
matches J815. Symbolic source checks preserve all307 original nodes and
properties and add only the four PCI nodes/two aliases. This is not a
new compiled-DTB or whole integrated hardware qualification.

The owner reports five boots/daily use of the 97f1472 feature on a
2b05915 composition with this block/local display patch, firmware26.6.2.
GPU and SEP remain untested; Bluetooth pairing required opt-in flags.
The independent Aura165 alias qualification/adoption gate remains.

Assisted-by: LLM
Retain the parent's PMGR node layout and aurora-silicon#1527's newly merged ps_pmp
always-on property, including the SRAM supplier. Keep current main's
cpuidle source and its WFI/PSCI handling. All14 other feature line sets
are unchanged; the owner-provided J813 N1 targets stay byte-exact.

Symbolic checks cover PMP address/supplier/always-on and factory aliases
on J813 and J815 in parent and child. This is not a compiled DTB or new
physical boot result. Require fresh CI; keep the Aura165 loader alias
qualification/adoption gate and J815 physical rollout limits.

Assisted-by: LLM
Carry gig3m's node from linux#1532 comment6837248959 exactly. The J813
27.0 ADT supplies the same VD6286 ALS service as J815. The owner reports
illuminance and color-temperature readings using installer-supplied
per-device calibration on the previously stated composed tree.

Keep calibration loading in aop_als; firmware-name would select the
different CT817 setup-port calibration path. Existing nodes/properties
are preserved and the added ALS node equals J815's. This source check
is not a new DTB build or physical boot. Require fresh CI and retain
the independent Aura165 alias qualification/adoption gate.

Based-on: @gig3m's patch and owner report6837248959
Assisted-by: LLM (Codex)
Preserve the complete prior J815 board description and append main's
complete MCC enablement, including its shared cache definition. Keep
main RTC and binding updates alongside the existing bring-up features.
The shared MCC node is inherited disabled on J813; J815 is enabled as
on main. The old J815 audio graph and SEP two-file feature are preserved.

Metaschema checks caught a pre-existing duplicate agx-g17s enum in main.
Remove its redundant trailing occurrence, preserving the allowed set
and every other condition; retain current main's entry and ordering.

Keep published ancestry and require fresh CI. Existing loader-alias,
review and physical qualification limits remain; no hardware claim.

Assisted-by: LLM (Codex)

Carry intervening main673f6184 J700-only update; every reviewed/tested input is byte-identical, so validation is reused without repeated tests.
The T8142 AOP firmware announces the "las" lid angle service, as T6050's
does.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
The J815 AOP firmware announces "las": macOS 27.2 binds it on this
machine as an AppleSPUHIDDevice with usage page 0x20 and usage 0x8a,
the report aop_las decodes. Describe the service. The ADT's i2c1
"mogul-las" is the sensor's authentication chip, not the angle.

On J815 the IIO device reads in_angl_raw 109 (scale pi/180), and it
still reads after s2idle.

Assisted-by: Claude Opus 5.5
Signed-off-by: Nick <nekreshen@yandex.ru>
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