Repository navigation
arm64: dts: apple: t6050-j714c: Describe the six speaker amplifiers - #1408
Conversation
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.
Codex Review Summary: ❌ FailedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
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.
|
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. |
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.dtsonly:i2c1andi2c3(i2c2stays disabled) andps_i2c3(no described parent, as fori2c1andi2c2). Thei2c3node already exists int6050-peripherals.dtsi.ti,sn012776/ti,tas2764codecs, following the M4 Pro/Max (t6041-j614c-j616c.dtsi) six-amp layout: aspeaker_sdzfixed regulator,SDZ-supply,apple,sdz-group-fail-closedand a shared fault interrupt.pinctrl_ap.Where the values come from (J714cAP ADT, 27.0)
i2c1/audio-speakeri2c3/audio-speaker-right-woofer-1i2c1/audio-speaker-left-woofer-2i2c3/audio-speaker-right-woofer-2i2c1/audio-speaker-left-tweeteri2c3/audio-speaker-right-tweeteraudio-speakernode'sspeaker1..speaker5properties point at the other five amps (checked by phandle). Itsspeaker-confighas six rows (transmit slot N,vsense_slot4N,isense_slot4N+2). The mapping of row N to speakerN is my reading of that layout; the M4 Pro/Max DT uses the same order.function-resetofaudio-speakeris GPIO 107. Only that amp has it, so one line shuts all six down. The fault interrupt is GPIO 106 (interrupts = [106, 1]).vmonis the ADT'svsense_slotandimonitsisense_slot, as on the J775D. The M4 Pro/Max DT hasimon0 andvmon2 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 givesi2c1,i2c2andi2c3the sameclock-ids(4). The stub int6050-peripherals.dtsiuses<&peripheral_clocks 4>, and no driver in the tree providesapple,pmgr-clocks, so the J714c overrides it with<&clkref>asi2c1andi2c2do (found in w7X's review).Testing
Offline only:
7d3d4e60de0b), the ten DTBs other than the J714c are byte-identical (cmp). The J714c is the only change.dt-validateof 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 withoutphy/ti,cd2e22.yaml, which clashes with the Appleapple,tunablebindings at base.Not tested
ps_i2c3is enabled with its SIO parent undescribed, as forps_i2c1andps_i2c2.cs42l84, i2c2 0x4b, pins 134 and 139) and no AOP audio. The T8152 AOP audio driver is not on this branch, andaop_audioint6050-die0.dtsicarries onlyapple,t6050-aop-audio, which that driver's OF table does not list (read from the table, not run). Those are separate changes.bop-config,amp-dcblocker-config,amp-tx-zd-configandspeaker-configcome from the boot loader, as on the other boards; I did not set them.