As a status update for this, I have spent quite a while working on this driver. In the end, it appears the available documentation is insufficient. The original driver calls a few registers that are not documented in the TRM. What I have found is the following: The 2.0 functionality works as documented in the original rockchip driver. The 3.0 functionality does not. A 3.0 device does not trigger the interrupt like a 2.0 device does. A 3.0 device causes 0x34 bit 6 to toggle, which is usb3otg_pipe3_phystatus I've enabled all usb3phy interrupts, and cannot get a 3.0 device to trigger any of them. Did the original driver ever work correctly?