I am using a custom i.MX6UL board running Linux 4.1.15 from NXP. When I configure the first USB (usbotg1) through the Linux device tree file as OTG (dr_mode = "otg";), I can switch between host and peripheral mode by grounding and floating the OTG ID pin.
The problem I am having is that if I ground the OTG ID pin to go into host mode and don't have a device connected within 10 seconds of grounding the OTG ID pin, I get the following message and then no matter what device I connect there is no detection of it:
ci_hdrc ci_hdrc.0: Device No Response
I traced this message down to the a_wait_bcon_tmout() function in the drivers/usb/chipidea/otg_fsm.c file, but I am not sure what BCON stands for or where this function is getting called from in other parts of the USB drivers.
If I connect a device within 10 seconds after I ground the OTG ID pin, the device is detected and works as expected.
Does anyone have any ideas why the USB detection stops working after 10 seconds and how to prevent this from happening when running in OTG mode as a host?