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.

¿Encontraste un error o quieres añadir algo? Sugerir una mejora.

Related guides

¿Desarrollas un producto basado en Rockchip?

Del diseño de hardware a la integración de Linux, Android e IA: consigue soporte de ingeniería para tu proyecto Rockchip.