Thread (8 messages) 8 messages, 3 authors, 2025-03-05

Re: [PATCH v2 2/2] phy: rockchip: usbdp: re-init the phy on orientation-change

From: Sebastian Reichel <hidden>
Date: 2025-03-05 21:52:57
Also in: linux-phy, linux-rockchip, lkml

Hi,

On Mon, Mar 03, 2025 at 10:27:31AM +0100, Quentin Schulz wrote:
On 3/1/25 10:19 PM, Sebastian Reichel wrote:
quoted
On Wed, Feb 26, 2025 at 01:38:10PM +0100, Quentin Schulz wrote:
quoted
Unrelated to this patch (but may be triggered by this patch?), I'm wondering
how flip is really handled.

It seems like we have flip store the orientation of the cable, but also if
rockchip,dp-lane-mux is set to <0 1>. But wouldn't that break if we ignore
that initial flipped lane-mux whenever a USB-C cable is inserted in reverse?
Basically, shouldn't a reserve orientation of the cable when
rockchip,dp-lane-mux is set to <0 1> mean "normal mux"?
If a USB-C connector is involved, the TypeC controller is supposed to
setup the lane muxing based on the connector orientation. This
happens via the typec API and in this hardware setup the PHY should
not have the rockchip,dp-lane-mux DT property set.
I could see some HW routing "mistake" where the USB-C connector in normal
orientation has DP lanes routed to RX1/TX1? Or is this expected to just be
faulty HW we shouldn't attempt at supporting?
You mean somebody routing the RK3588 SSTX1 and SSRX1 pins to SSTX2
and SSRX2 of the TypeC connector and vice versa and thus effectively
inverting the orientation on their board? I would say let's worry
about that once somebody comes up with such a cursed hardware design.

Note, that rockchip,dp-lane-mux wouldn't be a good property for this
setup either. With USB-C you don't necessarily have 2 lanes USB3 and
2 lanes DP. You can also have 4 lanes USB3 (not supported by RK3588)
or 4 lanes DP (should be supported by RK3588 hardware). So
hardwiring the mux is a bad idea. Probably would require some flag
for the TypeC orientation switch to handle the orientation
information inverted.
quoted
The rockchip,dp-lane-mux property is required if no USB-C connector
is involved. For example if the lanes are routed to a Displayport
connector. In that case the lane setup is fixed in hardware and
there is no TypeC controller involved, which could do any setup ;)
Yup I've seen that for the Rock 5 ITX and the evaluation board(s) do this.
Quite interesting :)

Cheers,
Quentin
Greetings,

-- Sebastian

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help