I was testing DFU and SPL DFU [1] on my rock 5c. To get it working, I had to set the usb_host0_xhci node to peripheral and maximum speed to high speed, as done for other rk3588 devices.
For DFU (and not SPL DFU), I had to set the "maximum-speed" property on the usbdp_phy0 node, otherwise it's failing: => dfu 0 ram 0 rockchip_udphy phy@fed80000: cmn ana lcpll lock timeout rockchip_udphy phy@fed80000: failed to init usbdp combophy rockchip_udphy phy@fed80000: PHY: Failed to init phy@fed80000: -110. rockchip_udphy phy@fed80000: cmn ana lcpll lock timeout rockchip_udphy phy@fed80000: failed to init usbdp combophy rockchip_udphy phy@fed80000: PHY: Failed to init phy@fed80000: -110. No USB device found udc_device_get_by_index failed The issue is that it's trying to configure the usb3 phy, which is not the one used for peripheral mode. I've not checked on other rk3588 devices if they would need a similar change. [1] for SPL DFU, I've used the serie https://patchwork.ozlabs.org/project/uboot/list/?series=443761 Signed-off-by: Arnaud Patard <arnaud.pat...@collabora.com> --- arch/arm/dts/rk3588s-rock-5c-u-boot.dtsi | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/arch/arm/dts/rk3588s-rock-5c-u-boot.dtsi b/arch/arm/dts/rk3588s-rock-5c-u-boot.dtsi index 1dc574c2f21..54b0f914010 100644 --- a/arch/arm/dts/rk3588s-rock-5c-u-boot.dtsi +++ b/arch/arm/dts/rk3588s-rock-5c-u-boot.dtsi @@ -9,3 +9,15 @@ cap-mmc-highspeed; mmc-hs200-1_8v; }; + +&usb_host0_xhci { + bootph-pre-ram; + bootph-some-ram; + dr_mode = "peripheral"; + maximum-speed = "high-speed"; +}; + +&usbdp_phy0 { + bootph-all; + maximum-speed = "high-speed"; +}; -- 2.39.5