Skip to content

J714s: sound through the AOP (speakers and headphone jack) - #1554

Merged
DjDeveloperr merged 2 commits into
integration/aurorafrom
m5-speakers/j714s-sound
Nov 11, 2026
Merged

DjDeveloperr merged 2 commits into
integration/aurorafrom
m5-speakers/j714s-sound

Conversation

@DjDeveloperr

@DjDeveloperr DjDeveloperr commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Sound on the MacBook Pro 14" (M5 Pro, J714s) through the AOP, as on the J813: the T6050 AOP runs
the same audio service as T8142.

Rebased onto integration/aurora 58784a9: #1423, #1521 and #1557 (which carries the T6050 entry in
the T8152 AOP audio driver) are merged, so this PR is now two commits. The DT commit uses #1557's
audio node block (identity and DMA list) and adds the pins it needs to #1570's.

  • ASoC: apple: macaudio: Add J714: the J813 configuration with two woofers and a tweeter per
    side. The speakers are behind the protection interfaces from the bind; each amp's level is its
    apple,speaker-config from the boot loader. KUnit tables and the binding updated.
  • arm64: dts: apple: t6050-j714s: Add the speakers and the headphone jack: six SN012776 on
    i2c1/i2c3 (shared shutdown line and fault interrupt, SDZ fail-closed group, ti,bclk-ratio 250
    as on J813), the CS42L84 on i2c2, and the card. Slots, sense slots, idle masks and
    pins from the J714s ADT; only the pins these nodes use are exposed (pin 112 still SErrors).

Validated on the J714s:

  • Lab boots of 7.3.0-m5-argb2 and, on the current default, 7.3.0-m5-intg2 (integration/aurora
    69a9fbb) with these three changes plus J813: AOP sound on integration/aurora (speakers, jack, microphones) #1423 and soc: apple: aop: Boot the T6050 (M5 Pro/Max) AOP through its setup port #1521 as modules. The intg2 runs booted this
    branch's own t6050-j714s.dts (plus the unit's GPU leakage words, as the default DTB does) on aura
    Stage 2 ca05ee02, which passes each amp its ADT speaker-config and amp-tx-zd-config row.
  • Card AppleJ714 with the jack, speaker and sense PCMs; the six amps and the CS42L84 probe;
    nothing deferred. Each amp's playback slot (0-5) and V-sense slot read back as the ADT gives
    them; at bind all six are in software shutdown with no latched fault, the speaker volumes are held
    at the lock's ceiling and every amp gain at its ADT level until a protection owner takes them.
  • speakerguardd v2 with this Mac's own tuning: its silent switch test passes with the wiring
    derived from this DT (on both kernels), v2 takes the speakers under the lease, and the supervisor
    grants only while a stream plays.
  • Audible, owner present: a short tone at 5% and then 10% of the volume slider, each only after
    the safety gates passed (v2 owning the speakers and ready, amp temperatures and fault latches,
    nothing else playing). The kernel granted protection for the playback, the speaker and sense PCMs
    ran, a USB microphone picked up both tones above the quiet baseline, and the amps stayed at
    32-36 °C with no fault.

After the rebase (11-11): the rebased DT's audio nodes (card, amps, jack codec, regulator, buses, pins)
compare identical to the validated DTB's, phandles resolved, apart from #1557's hpai channel and
#1570's pin 81. A silent check on hardware with the rebased DT (intg2 lab boot; #1570's port-1 nodes
disabled there, since intg2 lacks its shared-PHY fix) brought up the speaker card and #1557's
microphone card and passed speakerguardd v2's dry-run check (switch test and verify).

Headphone jack (tested after the merge, same intg2 lab boot): insertion detected (jack switch, input
device, codec status); a 440 Hz tone at -20 dBFS with the jack DAC at -30 dB played clean (no xruns, no
codec errors) and a USB microphone heard it; the speakers stayed off throughout. Headset-mic capture
untested (the headphones have no mic).

🤖 Generated with Claude Code

@DjDeveloperr

DjDeveloperr commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor Author

Owner-confirmed audible playback on the J714s: with the machine's owner at the M5, a short tone (440 Hz, then 1 kHz, 4 s) played through speakerguardd v2 at 5% and then 10% of the volume slider, and the owner confirmed hearing both tones, clean, with no distortion.

Setup: the current default kernel 7.3.0-m5-intg2 (integration/aurora 69a9fbb) with this PR's three changes plus #1423 and #1521 as modules, booting this branch's own t6050-j714s.dts (plus the unit's GPU leakage words, as the default DTB does) on aura Stage 2 ca05ee02. speakerguardd v2 ran with this Mac's own tuning (with speakerguardd#158's transport entry).

  • Each step only after every gate passed: v2's silent switch test and verify, v2 owning the speakers and its supervisor ready, all six amps' temperature and fault latches, no other output stream.
  • The kernel granted speaker protection for the playback; the speaker and sense PCMs ran; a USB microphone picked up both tones above the quiet baseline.
  • Amp temperatures (°C), before / after 5% / after 10%: left woofer 1 32/32/32, left woofer 2 32/33/33, left tweeter 35/36/36, right woofer 1 33/33/33, right woofer 2 33/33/33, right tweeter 34/35/35. No fault latched.
  • Ended at volume 0, muted.

Still not exercised: the headphone jack's streams (the CS42L84 probes and binds).

The MacBook Pro 14" (M5 Pro) J714s, as the J813: the T8152-style AOP
audio driver is the CPU component, with the CS42L84 jack on its jack
back-end and six SN012776 amps (two woofers and a tweeter per side) on
its speaker back-end, in the J616s frame. The speakers are behind the
protection interfaces from the bind, and each amp's level is its
apple,speaker-config from the boot loader.

Signed-off-by: Diljit Singh <hey@djdev.me>
Sound through the AOP, as on J813: the six SN012776 speaker amps on i2c1
and i2c3 (shared shutdown line and fault interrupt), the CS42L84 jack
codec on i2c2, and the sound card linking the AOP audio service's jack
and speaker back-ends to them. The audio node's identity and DMA
channels come from the microphone array's block. Slots, sense slots,
idle masks and pins are from the J714s ADT; expose only the pins these
nodes use.

Signed-off-by: Diljit Singh <hey@djdev.me>
@DjDeveloperr
DjDeveloperr force-pushed the m5-speakers/j714s-sound branch from 59e2a6e to 9f5a070 Compare November 11, 2026 21:01
@DjDeveloperr
DjDeveloperr merged commit e3fb611 into integration/aurora Nov 11, 2026
2 checks passed
@DjDeveloperr

Copy link
Copy Markdown
Contributor Author

Headphone jack, tested after the merge (11-11, lab boot of 7.3.0-m5-intg2 with this branch's DT, headphones without a mic plugged in):

  • Detection: the card's Headphone Jack switch and the jack input device report the headphones, Headset Mic Jack stays off, and the CS42L84's plug status agrees.
  • Playback: a 3 s 440 Hz tone at -20 dBFS through the jack PCM, with Jack DAC Playback Volume at -30 dB (read back before playing). The stream ran clean: no xruns and no codec or DMA errors in the log. A USB microphone near the headphones picked it up 35 dB above the quiet baseline in the 440 Hz band. The DAC went back to its minimum afterwards.
  • Speakers stayed off for the whole test: no protection grant, speaker PCM closed, checked before and during playback.
  • Capture: not tested, because these headphones have no mic.

So the jack's detection and playback path work on the J714s; headset-mic capture is still untested.

🤖 Generated with Claude Code

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.

1 participant