Re: [PATCH v18 0/7] usb: dwc3: introduce Rockchip glue driver

From: Peter Chen

Date: Fri Nov 13 2026 - 01:43:55 EST


On 26-10-21 20:05:25, Sebastian Reichel wrote:
> - drop generic PHY reset notifier API; I discussed this series at Linux
> Plumbers Conference with Vinod Koul and he prefers a local driver
> hack/quirk instead

Hi Sebastian and Vinod,

Sorry to jump out late, do we really decide to use private callback between
USB controller and USB Combo PHY, and notify PHY's reset events for
controller? Many platforms which support USB/DP altmode feature need this
requirement, besides Rockchip, Qualcomm and the platforms use Cadence USB
controller and PHY also need this.

For this scenario, USB controller works at USB3 mode (also configures PHY for
USB3) first. Later, Type-C/DP event tells PHY that it needs to work for DP(4lane),
since this event doesn't go to controller now, sudden switch PHY from USB3
to DP (4lane) will turn off PIPE clock, and cause all controller's event which
needs PHY (PIPE) clock abnormal, that's the reason why controller needs
this PHY switch (reset) notification and let the controller know it needs
to work at USB2 mode from now on.

So, it is more like a general requirement, but not quirk for special platform.

Peter

> - rework USBDP and DWC3 rockchip glue for the local driver quirk
> using direct function calls
> - Ensure that the reset handler in DWC3 is only called when the PHY is
> initialized (and thus DWC3 is running)
> - Also set vbus in the last patch when dwc3 is configured to device only
> mode (in contrast to dual-role mode being in device mode).
>
> Changes in v16:
> - Link to v15 (sorry, I missed force setting the revision for this
> part in the series split, so the series says v1 in the patch subject):
> https://patch.msgid.link/20260915-b4-rockchip-dwc3-rockchip-glue-v1-0-763bb546824e@xxxxxxxxxxxxx
> - Update first patch to also build the PM functions even when
> PM is disabled
> - Add new patch for defining an empty usb_udc_vbus_handler stub
> when USB_GADGET is disabled
> - Add dependency to Rockchip DWC3 glue, which disallows the
> configuration with USB_DWC3_ROCKCHIP=y and USB_GADGET=m
> - Collect tags
>
> Changes in v15:
> - Link to v14: https://patch.msgid.link/20260813-rockchip-usbdp-cleanup-v14-0-b5ad9c68fa11@xxxxxxxxxxxxx
> - Avoid #ifdef for CONFIG_PM in the new glue driver (Thinh Nguyen)
> - Do not add #if IS_ENABLED around the DT compatible blacklist in the
> generic driver, using the glue driver should be mandatory as the
> generic driver results in arbitrary system hangs. Thinh Nguyen suggested
> updating Kconfig for this, but did not clarify what that means.
> Current Kconfig works the same way as the other mandatory glue
> drivers.
> - Split series to simplify review
>
> Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
> ---
> Sebastian Reichel (7):
> phy: rockchip: usbdp: Track PHY power state
> phy: rockchip: usbdp: Add reset hook support for dwc3
> usb: dwc3: rockchip: introduce glue driver
> usb: dwc3: core: add post PHY registration hook for platform glue
> usb: dwc3: rockchip: add USBDP PHY reset quirk
> usb: gadget: define stub for usb_udc_vbus_handler
> usb: dwc3: rockchip: fix USB-C reconnect in gadget mode
>
> drivers/phy/rockchip/phy-rockchip-usbdp.c | 82 ++++++++++-
> drivers/usb/dwc3/Kconfig | 13 ++
> drivers/usb/dwc3/Makefile | 1 +
> drivers/usb/dwc3/core.c | 17 ++-
> drivers/usb/dwc3/core.h | 9 ++
> drivers/usb/dwc3/dwc3-rockchip.c | 227 ++++++++++++++++++++++++++++++
> drivers/usb/dwc3/trace.c | 3 +
> include/linux/phy/rockchip-usbdp.h | 31 ++++
> include/linux/usb/gadget.h | 5 +
> 9 files changed, 383 insertions(+), 5 deletions(-)
> ---
> base-commit: 8f56fdf3d8cb9f1dbdc93bf9ac816698aa6f70b7
> change-id: 20260914-b4-rockchip-dwc3-rockchip-glue-979ea3735d43
>
> Best regards,
> --
> Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
>
>

--

Thanks,
Peter Chen