This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3359 USB1 Host Power?

I'm developing on the Beaglebone and building my system with Buildroot.  I know that my USB Host (USB1) port is not getting supplied with power and that the USB1_DRVVBUS signal is low.  How do I dynamically affect this?  I want to turn on the 5V0 supply for the port.

Inside of linux-menuconfig, what device drivers do I need to have installed as part of my system to support USB host? EHCI? OHCI?

Do I need to have USB Gadget Support?  (If so, why?)

--> Do I need to have USB Gadget Support + Inventra Highspeed + TI81XX onward selected.  (Again, why would I need this?)

I have not found any information on the regarding this.  It seems like it should be really straightforward to turn on USB Host power.

  • Evidently, in trying to get my particular USB device to work, I messed up the default USB driver configuration.  

    The USB1_DRVVBUS pin (and USB0_DRVVBUS pin) are direct outputs from the TI PHY that is in the USB module.  USB0 and USB1 are identical, so there is nothing special here...  Anyway, the PHY is directly controlled by the Mentor USB OTG block that is in each USB subsystem module.  The OTG block talks to the TI PHY and the PHY controls the USBx_DRVVBUS pin.  I was under the (completely wrong) assumption that the pin could be controlled just like any other GPIO pin.

    In order to affect the state of the USBx_DRVVBUS pin, one has to interact with the Mentor USB OTG block, and this is done via a driver and also implicitly by the state of the USB id pin, which in the case of USB1 on the Beaglebone, is tied to ground with a resistor.  By default, if the USB id pin is tied to ground, the USB port (USB1 here) will act as a USB host.  Else it will be a peripheral.  There is a set of registers you can configure to bypass this default behavior and command the module to be host or peripheral, but that is not done here, it is left with its default behavior.

    The conclusion is that the USB1's DRVVBUS pin behaves as expected when using the out-of-the-box buildroot config settings available from fhunleth's github page (which is where I got started.) 

    P.S. - I have noticed that if you plug in a USB device into the USB1 port (like a thumbdrive) and then unplug it, the USBx_DRVVBUS pin goes low.  I don't know why this is, or how to bring it back up except to restart the board.  Oh well, at least I'm slowing making progress...

    https://github.com/fhunleth/buildroot-beaglebone

  • Refer http://processors.wiki.ti.com/index.php/AM335X_USB_Driver_User_Guide_04.06.00