Hardware DebuggingIntermediate

Rockchip USB Device Not Detected: Host, OTG, VBUS and PHY Checklist

A USB port that shows nothing in lsusb usually has a role, power or PHY problem. Here is the order to check them on Rockchip SoCs.

Applies to: RK3588 RK3588S RK3576 RK3568 RK3566 RK3399

Step 1: Watch the kernel while plugging in

sudo dmesg -w          # then plug the device in
lsusb -t               # which bus/port, which speed

No message at all on plug-in means the port has no power, the controller is not in host mode, or the PHY/controller is disabled.

Step 2: Controller role (dr_mode)

Rockchip USB 3 controllers are DWC3 cores. A port wired as a host but configured as peripheral or otg without role switching will never enumerate devices.

&usb_host0_xhci {
    dr_mode = "host";          /* "otg" needs role switching (Type-C, ID pin) */
    status = "okay";
};

Check the current role on the vendor kernel via the controller's debugfs or sysfs mode/role entries, or look for "dwc3 ... role switch" messages in dmesg.

Step 3: VBUS

  • Measure 5 V on the connector. Host ports usually get VBUS from a GPIO-controlled regulator (e.g. vcc5v0_host), so the enable GPIO and its polarity must be right.
  • The regulator must be referenced from the PHY (phy-supply) or be regulator-always-on; otherwise it may never switch on.
  • Current limit: a bus-powered HDD or LTE modem may brown out on weak VBUS switches.

Step 4: PHY nodes

Enabling the controller isn't enough. Its PHY must be enabled too:

  • USB 2.0: u2phyN and the per-port node (u2phyN_host / u2phyN_otg).
  • USB 3 on RK3588: usbdp_phyN (USB3 + DisplayPort combo) or a combo PHY (combphy2_psu) for the extra USB 3 host.
  • On RK3568/RK3566: combphy0/1 in USB 3 mode for the USB 3 ports.

Step 5: USB 3 port only runs at USB 2 speed

If lsusb -t shows 480M for a USB 3 device, the SuperSpeed part isn't working: the combo/USBDP PHY is disabled or in the wrong mode, the SS lanes are swapped or damaged, or on Type-C the orientation/mux handling isn't configured.

Step 6: Type-C specifics

Type-C ports with a CC controller (e.g. FUSB302) need the controller node, its interrupt GPIO, the usb-role-switch link and orientation switch connections in the device tree. Without them the port may work in one plug orientation only, or not at all.

오류를 발견했거나 추가할 내용이 있나요? 개선 제안하기.

Related guides

Rockchip 기반 제품을 개발 중이신가요?

하드웨어 설계부터 Linux, Android, AI 통합까지 Rockchip 프로젝트를 위한 엔지니어링 지원을 받으세요.