We are developing a product based on i.MX6 Dual lite running linux on it. It has a USB port supporting both HOST and DEVICE modes (using i.MX6 OTG USB port).
We are failing to detect the "USB disconnections" randomly. This is seen in both host mode and device mode.
Could somebody help me to understand how USB disconnection detection works, specifically in device mode?
I understand how it works when i.MX6 is in HOST mode. If USB device is removed from bus, as the device side termination is gone, host side voltage will go ~800mV. Disconnection Envelope Detector would detect this during the EOP of a SOF and USB controller/PHY would understand that device is no longer attached to the bus.
But how is the disconnect detection mechanism working when i.MX6 is in device mode? Could somebody help me to understand it? Linux divers are relying on USB interrupt and checking the port status registers. But I am trying to understand the HW detection mechanism.
Thanks in advance!