Skip to content

arm64: dts: apple: t6050-j714c: Describe the six speaker amplifiers - #1408

Merged
joshuaswarren merged 2 commits into
integration/aurorafrom
w7c/j714c-amps
Nov 10, 2026
Merged

joshuaswarren merged 2 commits into
integration/aurorafrom
w7c/j714c-amps

Conversation

@joshuaswarren

@joshuaswarren joshuaswarren commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

First audio piece for the 14-inch M5 Max (J714c): the six speaker amplifiers. It builds on #1391 and #1403 and is one commit. No T6050 laptop has audio yet; this PR adds no sound card.

What changes

t6050-j714c.dts only:

  • Enables i2c1 and i2c3 (i2c2 stays disabled) and ps_i2c3 (no described parent, as for i2c1 and i2c2). The i2c3 node already exists in t6050-peripherals.dtsi.
  • Six ti,sn012776 / ti,tas2764 codecs, following the M4 Pro/Max (t6041-j614c-j616c.dtsi) six-amp layout: a speaker_sdz fixed regulator, SDZ-supply, apple,sdz-group-fail-closed and a shared fault interrupt.
  • Pins 106 and 107 join pin 80 in the exposed range of pinctrl_ap.

Where the values come from (J714cAP ADT, 27.0)

Amp ADT node Address Prefix vmon / imon slot
speaker0 i2c1/audio-speaker i2c1 0x38 Left Woofer 1 0 / 2
speaker1 i2c3/audio-speaker-right-woofer-1 i2c3 0x3b Right Woofer 1 4 / 6
speaker2 i2c1/audio-speaker-left-woofer-2 i2c1 0x39 Left Woofer 2 8 / 10
speaker3 i2c3/audio-speaker-right-woofer-2 i2c3 0x3c Right Woofer 2 12 / 14
speaker4 i2c1/audio-speaker-left-tweeter i2c1 0x3a Left Tweeter 16 / 18
speaker5 i2c3/audio-speaker-right-tweeter i2c3 0x3d Right Tweeter 20 / 22
  • The audio-speaker node's speaker1..speaker5 properties point at the other five amps (checked by phandle). Its speaker-config has six rows (transmit slot N, vsense_slot 4N, isense_slot 4N+2). The mapping of row N to speakerN is my reading of that layout; the M4 Pro/Max DT uses the same order.
  • Shutdown line: function-reset of audio-speaker is GPIO 107. Only that amp has it, so one line shuts all six down. The fault interrupt is GPIO 106 (interrupts = [106, 1]).
  • vmon is the ADT's vsense_slot and imon its isense_slot, as on the J775D. The M4 Pro/Max DT has imon 0 and vmon 2 for its first amp; I follow the J714c ADT (V in slot 0, I in slot 2).
  • i2c3: reg 0x30501c000, interrupt 1378, clock gate 193 in the ADT. The ADT gives i2c1, i2c2 and i2c3 the same clock-ids (4). The stub in t6050-peripherals.dtsi uses <&peripheral_clocks 4>, and no driver in the tree provides apple,pmgr-clocks, so the J714c overrides it with <&clkref> as i2c1 and i2c2 do (found in w7X's review).

Testing

Offline only:

  • All 11 T6050 board DTBs build with dtc, no errors or warnings.
  • Against the base tree (7d3d4e60de0b), the ten DTBs other than the J714c are byte-identical (cmp). The J714c is the only change.
  • dt-validate of the J714c DTB: 1 warning, as at base (pcie@1c70000000: False schema does not allow ['port0']). The six amps add none. I built the schema without phy/ti,cd2e22.yaml, which clashes with the Apple apple,tunable bindings at base.

Not tested

  • No J714c hardware boot. Whether the amps answer on the bus is unknown until the J714c boots. One risk: ps_i2c3 is enabled with its SIO parent undescribed, as for ps_i2c1 and ps_i2c2.
  • Row N to speakerN is inferred (see above). The sense slots are only as right as that mapping.
  • No sound card, no jack codec (cs42l84, i2c2 0x4b, pins 134 and 139) and no AOP audio. The T8152 AOP audio driver is not on this branch, and aop_audio in t6050-die0.dtsi carries only apple,t6050-aop-audio, which that driver's OF table does not list (read from the table, not run). Those are separate changes.
  • The amps' bop-config, amp-dcblocker-config, amp-tx-zd-config and speaker-config come from the boot loader, as on the other boards; I did not set them.
  • No speaker protection. Nothing here drives a stream. I did not read the amp driver's probe path to confirm what it does to the amps before a stream starts.

Enable i2c1 and i2c3 on the J714c and describe the six SN012776 speaker
amplifiers from the J714cAP ADT: left woofer 1, left woofer 2 and left
tweeter on i2c1 at 0x38, 0x39 and 0x3a, right woofer 1, right woofer 2
and right tweeter on i2c3 at 0x3b, 0x3c and 0x3d. The amplifiers share
one shutdown line, AP pin 107 (function-reset of the first), described
as the speaker_sdz fixed regulator with apple,sdz-group-fail-closed,
and one fault interrupt, pin 106.

Each amplifier's sense slots come from the ADT speaker-config, where the
transmit slot N belongs to speakerN: voltage sense in slot 4N, current
sense in slot 4N+2.

ps_i2c3 has no described parent (SIO), as for i2c1 and i2c2. Pins 106
and 107 join pin 80 in the exposed range of pinctrl_ap.

There is no sound card, no jack codec and no AOP audio change. The other
ten T6050 board DTBs are byte-identical.
@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:02:39.888841Z
We couldn’t complete this review. Comment @codex review to try again.
7f57abe PR opened
🔒 Security Review ❌ Failed 2026-11-10T03:02:48.833787Z
We couldn’t complete this review. Comment @codex security review to try again.
7f57abe 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.

The i2c3 stub of t6050-peripherals.dtsi takes <&peripheral_clocks 4>.
No driver in the tree provides apple,pmgr-clocks, so i2c3 and the three
amplifiers on it would never probe. The ADT gives i2c1, i2c2 and i2c3
the same clock-ids (4), and i2c1 and i2c2 take <&clkref>, so the J714c
does the same for i2c3.

The other ten T6050 board DTBs are byte-identical.
@joshuaswarren

Copy link
Copy Markdown
Contributor Author

GREEN at 5fb654e

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

Re-review of the i2c3 clock fix (delta from 7f57abe is +5 lines in t6050-j714c.dts). The decompiled head DTB has i2c3 (i2c@50501c000) on clocks = , like i2c1 and i2c2; the base used peripheral_clocks 4, which has no provider driver in this tree. CI-equivalent apple-dt-check.sh: 137 DTBs build; warning lines 412 base / 413 head, where the extra line is an interleaved copy of the existing dtschema 'apple,tunable' KeyError traceback from the parallel validator (28 tracebacks in both logs, other 411 warning lines an identical multiset), so no real new warnings. Of the 11 t6050 DTBs only t6050-j714c.dtb differs; the other 10 are byte-identical. Earlier checks (slot mapping vs the J614/J616 precedent, SDZ pin 107 / IRQ 106, reserved pinctrl range) are unaffected by this delta. Non-blocking: please cite the ADT speaker-config bytes for the imon/vmon direction (imon 4N+2, vmon 4N matches J775D, opposite to the J314/J614 family). Not run: hardware bring-up.

@joshuaswarren
joshuaswarren merged commit 50e5f04 into integration/aurora Nov 10, 2026
2 checks 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