In a new design using i.MX8MP we use the USB1 (first instance) as USB 2.0 only interface. The USB 3.0 data lines are not connected. The port acts as a dual role port with cable detection (USB 2.0 Micro A/B). Device Role is working properly. Host Role initialisation fails with overcurrent events from Root Hub all the time.
To isolate the problem we tried to force Host Role by
- set Host Role in device tree
- remove cable detect logic (don't care for ID signal, muxed as GPIO)
- force the USB power enable to always on per GPIO and disable port power control in glue logic (clear PORTPWR_EN in register USB_CTRL0)
- Use the USB_OC# as GPIO pin
Everytime the port is initialized overcurrent event is signalled by Root Hub making Host Role unusable. In documentation there is no hint how to disable Overcurrent handling via register setting (this is possible in other i.MX CPU)
Is there anything we miss here? Thank you.