Repository navigation
arm64: dts: apple: t8142-j815: lid angle sensor (on #1532) - #1805
Draft
m0d16l14n1 wants to merge 24 commits into
Draft
m0d16l14n1 wants to merge 24 commits into
m0d16l14n1 wants to merge 24 commits into
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft, stacked on #1532 (the J815 device tree; J815 only gets its
&aopnode there). The net change is the last two commits: m0d16l14n1/linux@0434a61...m0d16l14n1:linux:j815/t8142-lid-angleapple,t8142-aop-las.lasunder&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 reportaop_lasdecodes (same as T6050, arm64: dts: apple: t6050: Add the AOP lid angle sensor #1548). The ADT's i2c1mogul-lasis the sensor's authentication chip, not the angle. No driver change (aop_lasmatchesapple,aop-las).Tested on J815:
aop-sensors-lasprobes,in_angl_raw109 within_angl_scalepi/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