our USB Device (mass storage application) is working fine as long as 5V is attached to VDD5V during linux booting. I can then disconnect and reconnect the USB cable and I see my mass storage device again on the PC. But if 5V is NOT attached to VCC5V during booting I can't see my mass storage when connecting the PC. The PC even has not any action when I have the PC's device manager open. It seems like the USB interface of the iMX28 is "off".
according to USB specification 5V should be provided to the USB connector's Vbus (MX28 VDD5V).
The PHY inside the MX28 will then detect Vbus and set VBUSVALID0 when the cable connects.
One can try forcing VBUSVALID to 1 (strictly speaking, forcing VBUSVALID to 1 violates
the USB specification) using attached patch developed internally by application team.
Attached is the i.MX28 USB device mode without VDD5V patch for
BSP L2.6.35_1.1.0_130130. To use this feature, please enable the
kernel option "CONFIG_MX28_PLUGINDETECT".
we apply 5V MX28 VDD5V. Our problem is, when booting our iMX28 device without USB connection (therefore no 5V at VDD5V) and later connect our iMX28 device - which is powered by a battery - to the PC's USB (which applies 5V to VDD5V) the USB connection do not work.
The USB connection does only work when the USB connection exists during iMX28 boot process. If I have a USB connection during booting USB works even when I disconnect and later reconnect USB. Therefore it looks like iMX28 Linux does not set up USB correctly when 5V is missing during booting and it cannot set up USB when the USB connection (and 5V) is connected later, when Linux is already running.
Connect USB and then Switch On iMX28: USB works
Switch On iMX28 -> Wait until Linux has booted -> Connect USB: USB does not work