Skip to content

ASoC: apple: t8152-aop-audio: Match the T6050 AOP audio node (J714c) - #1410

Merged
joshuaswarren merged 1 commit into
aurora-wipfrom
w7c/t6050-aop-audio
Nov 10, 2026
Merged

joshuaswarren merged 1 commit into
aurora-wipfrom
w7c/t6050-aop-audio

Conversation

@joshuaswarren

Copy link
Copy Markdown
Contributor

Audio piece 2 for the 14-inch M5 Max (J714c): make the AOP audio driver match the T6050 node. Piece 1 is #1408 (the six speaker amplifiers, DT only).

Problem

The binding (apple,t8152-aop-audio.yaml) allows a lone apple,t6050-aop-audio, and t6050-die0.dtsi on integration/aurora uses it. The driver on this branch matches only apple,t8142-aop-audio and apple,t8152-aop-audio, so the J714c audio node never binds. The driver exists only on this branch; integration/aurora has the binding and the DT but no driver.

Change

sound/soc/apple/t8152_aop_audio.rs: add HW_CFG_T6050 and an OF table entry. One file, one commit.

spkr slots sense words sense width realign
T8152 (J873) 1 2 24-bit no
T8142 (J813) 4 8 16-bit yes
T6050 (J714c, new) 6 12 16-bit yes

Source of the J714c numbers: the J714c ADT audio-speaker stream header (reg bytes 4-5 and the two masks) and its speaker-config containers (vsense slots 0,4,..20; isense 2,6,..22). J813's ADT has the same layout with 4 amplifiers (vsense 0..12, isense 2..14). HW_CFG_T8152 would give a 1-slot, 2-word sense stream and is not reused.

Tested

  • The file builds as a module with Rust enabled (clang 19, arm64 defconfig plus CONFIG_RUST, CONFIG_SND_SOC_APPLE_T8152_AOP_AUDIO=m). The object carries the apple,t6050-aop-audio match string.
  • The kernel's check said the installed bindgen does not preserve empty-struct alignment (the tree asks for tools/aurora-bindgen/build.py). I did not run that build, so the layout check is not covered.

Not tested

  • No J714c boot, so no sound. The sense width (16-bit) and the sense realignment are taken from J813 by analogy; a J714c may need different values.
  • No sound card or macaudio link for the six amplifiers yet, so the driver binds but nothing plays.
  • Speaker protection for six amplifiers is not part of this change (ASoC: apple: integrate v2 speaker protection into aurora-wip #1051 is open).

Scope

No overlap with #1051: it does not touch t8152_aop_audio.rs.

The binding and the J714c device tree name the AOP audio service
"apple,t6050-aop-audio", but the driver matched only t8142 and t8152, so
that node never bound.

Add a T6050 hardware config. The J714c ADT audio-speaker stream header
(DeviceTree.j714cap) has the same layout as J813's with six amplifiers in
place of four: 6 speaker slots and 12 sense words (V, I per amplifier), at
16 bits, on slots vsense 0,4,..20 / isense 2,6,..22. J813's header has 4
slots, 8 sense words and vsense 0..12 / isense 2..14. HW_CFG_T8152 (one
amplifier, two sense words) would expose the wrong channel counts, so it is
not reused.

The sense width and the sense realignment are taken from J813's config by
analogy; they are not tested on a J714c.

Tested: builds as a module with Rust enabled (clang 19, arm64 defconfig plus
CONFIG_RUST, CONFIG_SND_SOC_APPLE_T8152_AOP_AUDIO=m); the object carries the
apple,t6050-aop-audio match string. Not tested: no J714c boot, no sound.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-10T03:32:25.204392Z
We couldn’t complete this review. Comment @codex review to try again.
5ef1b8c PR opened
🔒 Security Review ❌ Failed 2026-11-10T03:32:29.193912Z
We couldn’t complete this review. Comment @codex security review to try again.
5ef1b8c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

The account paying for this security review has reached its Codex usage limits. The payer can check the Codex usage dashboard. For personal accounts, using credits requires enabling “Use credits for security reviews” in Code review settings. If you do not manage the paying account, contact this repository's admins.

@joshuaswarren

Copy link
Copy Markdown
Contributor Author

GREEN at 5ef1b8c

opencode-go/glm-5.3-flash as routed by Main (model id unverifiable); implementer model unverified.

Checked the HwConfig numbers against ADT dumps. The J714c audio-speaker speaker-config has six entries with rx_slot 0-5, vsense_slot = 4N (0..20) and isense_slot = 4N+2 (2..22): six amps, V-before-I, twelve sense words, and the amps are sn012776. The J813 speaker-config is the same pattern at four amps (vsense 0,4,8,12 / isense 2,6,10,14), matching HW_CFG_T8142. The iop audio-data reg blobs also align: J714c carries 0x0c/0x06/0x0c (12 sense words, 6 amp slots, 12) where J813 carries 0x08/0x04/0x08, with 0x10 (16-bit sense) and the remaining header bytes identical, which directly verifies the 6-slots/12-words doc comment.

No code path assumes four amps: the channels only feed channels_min/max; the single literal-4 (hw_params' min(channels, 4) window) is the apple-admac BUS_WIDTH constraint (the DMA driver accepts 0/1/2/4 words and -EINVAL otherwise, and mca.c uses the same cap for much wider TDM streams, with J813 already running an 8-word RX through it); the TDM slot callback ignores counts since the firmware owns the serializers. Not run: hardware.

@joshuaswarren
joshuaswarren merged commit 210c8f6 into aurora-wip Nov 10, 2026
1 check passed
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