[RFC/PATCH 0/2] dwc3/rockchip orientation fixes

John Keeping
2025-07-10T15:23:11Z

This series attempts to fix an issue with using the USB PHY on RK3588 as
an orientation switch. The phy driver only updates its internal state
and does not write to the hardware when notified of an orientation
switch.

An early patch addressing this issue [1] updated the hardware directly,
but this changes the phy state underneath the USB controller when it is
not expecting the state to change. That was addressed in [2] but my
testing of that shows runtime PM overflows that cause the device to be
left disabled unexpectedly.

This approach updates the dwc3 driver so that it always signals a phy
mode change when a plug event occurs, allowing the phy to reset safely
at a point when the USB controller expects it to do so.

The dwc3 changes seem to work in my testing, but I have no idea of the
full implications of setting an "unsupported" role.

[1] https://lore.kernel.org/r/20250226103810.3746018-1-heiko@sntech.de
[2] https://lore.kernel.org/r/20250610-rk3576-sige5-usb-v4-0-7e7f779619c1@collabora.com

John Keeping (2):
usb: dwc3: disable for USB_ROLE_NONE
phy: rockchip: usbdp: implement .set_mode

drivers/phy/rockchip/phy-rockchip-usbdp.c | 14 ++++++++++++++
drivers/usb/dwc3/core.c | 3 ---
drivers/usb/dwc3/drd.c | 5 +----
3 files changed, 15 insertions(+), 7 deletions(-)

--
2.50.0