The RK3399 USB2 PHY is the Inno Silicon USB 2.0 analog frontend that sits behind both the DWC3 OTG block and the EHCI/OHCI USB host controllers. Two ports per PHY block (one OTG, one host); each runs its own clock control and squelch / disconnect detect logic.
Identity
| Property | Value |
|---|---|
| Block | RK3399 / Inno USB 2.0 PHY |
| MMIO base | 0xff770000 (and a second instance for the other USB block) |
| Ports | OTG + host |
| DTS compatible | rockchip,rk3399-usb2phy |
| Linux driver | drivers/phy/rockchip/phy-rockchip-inno-usb2.c |
Driver
● workingsrc/sys/arm64/rockchip/rk_usb2phy.c
— 559 lines. Provides PHY init, suspend/resume, and the OTG-port
hooks DWC3 needs to put the controller in device mode at attach time.
Notable commits:
- Initial USB bring-up on PPP — selective CRU filter, PHY init, VBUS
power (
f695c16Fix USB on PinePhone Pro: selective CRU filter, PHY init, VBUS power ). - OTG port support for device mode (
4d26349rk_usb2phy: add OTG port support for device mode ) — this is what lets DWC3 sit in peripheral / gadget mode. phy_susclears opmode bits [3:2] correctly so suspend/resume doesn’t lock the phy in test mode (8e03db9rk_usb2phy: fix phy_sus to also clear opmode bits [3:2] ).- USB2-only mode flag added during typec_phy debug
(
223f5b7Add reflash.py automation, debug output, typec_phy usb2-only mode ) — useful when chasing TCPHY-side regressions.
Status
| Question | Answer |
|---|---|
| Probes? | Yes |
| OTG port (DWC3)? | Working — gadget on ue0 |
| Host port (EHCI/OHCI)? | Working — modem and external peripherals enumerate |
| Suspend/resume? | Works at PHY level; full S2RAM not implemented yet |
Open work
- No driver-level work pending. The remaining USB-side changes are at higher layers — DWC3 role-switch (see the DWC3 component) and FUSB302 PD policy.
- If/when S2RAM lands, revisit suspend ordering — the PHY’s clock and power gating must sequence correctly with DWC3 disconnect.
Related
- DWC3 component — the controller this PHY drives on the OTG side.
- TCPHY component — handles the USB3
- DP alt-mode side; works in tandem with USB2 PHY for full USB-C cable orientation.
- Essay 16: FUSB302 USB-PD sink — USB-C cable detection and the future role-switch wiring.
- USB-C / PD recipe — verification.
- Hardware reference — USB2 PHY row.