rockchip: radxa_rock-3b has disabled USB controller fd880000
Describe the bug
On a Radxa ROCK 3B (RK3568), one of the USB controllers is disabled in the OpenWrt device tree.
The affected controller is:
usb@fd880000
Its device-tree node has:
compatible = "generic-ehci"; reg = <0x00 0xfd880000 0x00 0x40000>; phys = <0x18>; phy-names = "usb"; status = "disabled";
The corresponding USB2 PHY host port is also disabled:
usb2phy@fe8b0000 { ... host-port { ... phandle = <0x18>; status = "disabled"; }; };
As a result, OpenWrt does not create a platform device for fd880000.usb.
OpenWrt version
r33051-f5dae5ece4
OpenWrt release
25.12.5
OpenWrt target/subtarget
rockchip/armv8
Device
Radxa ROCK 3B
Image kind
Official downloaded image
Steps to reproduce
No response
Actual behaviour
The controller at fd880000 is not initialized by OpenWrt.
The other USB controllers are initialized normally. For example, the kernel reports working USB controllers including:
fcc00000.usb fd000000.usb fd800000.usb fd840000.usb
but there is no corresponding initialization of:
fd880000.usb
The SIM7600G-H modem connected to this controller is therefore not detected by OpenWrt.
The relevant USB modem drivers are present in the kernel, including:
cdc_wdm usbserial_generic cdc_ether cdc_ncm qmi_wwan rndis_host cdc_mbim option Comparison with Debian
The exact same hardware and USB modem are detected correctly when running Debian on the ROCK 3B.
This indicates that the problem is not related to the physical USB port, modem, cable, or modem drivers.
Device tree investigation
The live OpenWrt device tree contains:
usb@fd800000 usb@fd840000 usb@fd880000 usb@fd8c0000 usb@fd000000 usb@fcc00000
However:
/sys/firmware/devicetree/base/usb@fd880000/status
contains:
disabled
and:
/sys/firmware/devicetree/base/usb@fd000000/status
contains:
okay
The fd880000 controller therefore never becomes a platform device.
Possible workaround
The controller and its PHY host port appear to become usable when changing both device-tree nodes from:
status = "disabled";
to:
status = "okay";
Specifically:
usb@fd880000 { ... status = "okay"; };
and:
usb2phy@fe8b0000 { ... host-port { ... status = "okay"; }; };
This is currently being tested as a device-tree workaround.
Expected behaviour
All USB controllers that are physically available and usable on the Radxa ROCK 3B should be enabled in the device tree, unless there is a documented hardware/design reason for disabling fd880000.
Additional info
The board is officially supported by OpenWrt as radxa_rock-3b.
The issue is particularly relevant for devices connected to the USB controller at fd880000, such as the SIM7600G-H LTE modem described above.
Diffconfig
Terms
- I am reporting an issue for OpenWrt, not an unsupported fork.
Source: openwrt/openwrt