Our i.MX28-based design is powered using +3.3V (battery input) and we don't have +5V on our board. We are planning to use USB as a communication link between a pair of our boards (cross-connected between USB0 and USB1), and are having trouble getting USB to work in a 3.3V-only environment. We don't really care about OTG and are looking for a way to configure the USB0 controller to always operate as a device. We're running Linux with the standard Freescale drivers.
What we're observing is that when the VDD5V input is left floating, the USB0 controller never gets to the "attached" state. In other words, after setting the RUN_STOP bit in the USBCMD register, the CCS (Connect Status) bit is never set in the PORTSC1 register.
As an experiment, we also tried feeding +3.3V to VDD5V, and this made a big difference. After disabling a check for B_SESSION_VALID in the OTGSC register in the Linux OTG driver (arcotg_udc.c), USB communication started to work. The problem is that in this configuration, we are unable to successfully reboot the system -- it locks up after issuing a "reboot" command, and toggling the RESETN input leads to the same result. It looks like supplying +3.3V on the VDD5V input really confuses the PMU subsystem and it won't start up after a soft reset (i.e. control does not even reach imx-bootlets).
We would appreciate any information on whether it is possible to use device-mode USB in a 3.3V-only configuration, where the VDD5V input is left floating.
Thanks in advance,