Repository navigation
Conversation
The combo PHY's USB2 PHY and digital banks are in the USB controller's power domain. Let a combo PHY name it fourth, as "usb", so the PHY can hold it on a port with no USB controller bound. The fixed DisplayPort PHY keeps exactly three domains. Signed-off-by: Jeff Queisser <funkzy@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The combo PHY's USB2 PHY and digital banks are in the USB controller's power domain. Only a bound USB controller holds that domain, so on a port with no controller (a DisplayPort-only port, as on J775D with Linux on the hardware) the first Type-C mode switch wrote an unclocked bank and took an SError. A combo PHY node may now name that domain as a fourth power domain, "usb". When it does, the PHY holds it from combo start to combo stop, after the common domain on the way up and before it on the way down. Nodes that name three domains probe and run exactly as before, and the fixed DisplayPort PHY still takes exactly three. Testing: on J775D (M5 Ultra), with the fourth domain named on each combo port, Type-C mode switches and DisplayPort on the rear ports ran without an SError on every boot since 2026-10-30. Signed-off-by: Jeff Queisser <funkzy@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
apple,port-index has an enum but no type, so dtschema cannot decode the cell and every combo PHY node fails with "b'\x00\x00\x00\x02' is not one of [1, 2]" and a core-schema type error, whatever port it names. Give it the uint32 type. This is a small fix to the binding added in 2aaccf6 ("phy: apple: Add T6050 DisplayPort and USB combo PHY", aurora-silicon#480), offered here only because this series is the next to touch the file. Please fold it into that commit, or drop it here, whichever suits aurora-silicon#480 better. Signed-off-by: Jeff Queisser <funkzy@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
funkzy
force-pushed
the
pr/t6050-combo-usb-domain
branch
from
November 3, 2026 01:15
8f28691 to
5573a22
Compare
Contributor
Author
|
Closing: this change now lives in the funkzy/j775d branch of aurora-silicon/linux-aurora (the J775D series as built and booted, 681521644671), which dj merges directly; no PR flow for it any more. |
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.
Summary
The T6050 combo PHY's USB2 PHY and digital banks sit in the USB controller's power domain. Only a bound USB
controller holds it. On a port with no controller (on the M5 Ultra Mac Studio, J775D, with Linux on the hardware,
the rear Type-C ports drive DisplayPort with no USB controller bound), the first Type-C mode switch wrote an
unclocked bank and took an SError. A combo PHY node may now name that domain fourth, as
usb, and the PHY thenholds it while it runs.
What it changes
power-domainsandpower-domain-namestake three or four entries; the fourth isusb. The fixedDisplayPort PHY (
#phy-cells = <0>) keeps exactly three.combo_start()takesthe USB domain after the common one, before the USB2 sequence;
combo_stop()drops it before the common one.Why
Without it, a combo port with no USB controller cannot switch modes on bare metal: the SError takes the machine
down. Holding the domain in the PHY makes the port independent of whether a controller is bound.
Testing (J775D, M5 Ultra)
The kernel: our J775D series (integration/aurora's lineage, as on the Studio every day) with this PR's code and
that of the other T6050 PRs sent with it in place of the series' own forms, booted once on 2026-11-02 and restarted
through the SMC at the end. The same code is in the series kernel the machine boots by default.
wrapper and usb. No USB controller is bound on that port.
minute. The mode switch that took the SError before ran without one.
Not tested
unchanged apart from the count check.
Dependencies
#480 (
t6050/display-phy). J775D's board DT names the fourth domain; it comes later with the J775D board. The DCPside is the T6050 bare-metal DCP PR on #485.
For dj
Does the guest bind a USB controller on every combo port? If it does, the guest never needs the fourth domain. Is an
optional fourth domain the shape you want, or would you rather the guest DT name it too?