How to permanently force OTG Host mode?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've been trying to get the OTG port on my headless embedded OMAP4460 Linux system into Host mode for months, with no success (dead port) until yesterday, when I learned that loading any gadget driver makes the Host mode accessible by pulling the ID line low.  Well, sort of, some of the time, with limited reliability under repeated connects/disconnects.

I don't need the Host port until after boot, but I do need it to be a reliable host for a single permanently attached slave device (on PCB, non-removable).  I don't (yet) need to support dynamic insertion or removal of slave devices, and I don't need OTG slave mode (gadgets) at all.  The soldered-on slave device is an SMSC LAN7500 USB-GigE chip (smsc75xx driver) used for eth1.  The same device is used on my OMAP4 CPU module's USB2 Host interface to provide eth0.  A single USB2 interface can't support two GigE interfaces under moderate full-duplex traffic conditions (~150 Mbps sustained, in each direction), and adding another USB2 host interface isn't practical (I'm using the GPMC pins for other purposes), so I really do need the OTG port in Host mode.

Some questions:
- Is the only way to get access to OTG Host mode to first bring it up as a gadget (slave port)?  
- Is there any reliable way to force (and lock) an OTG port into Host mode?
- What drivers must be loaded and how should they be initialized?  
- Can initialization be done in userland, or should it be done during boot?  
- Is the OTG Host port best used with a hub between it and a slave device, or should a single slave device always be directly connected?  
- Our board design has the OTG ID pin permanently tied to ground: Is this OK, or should it be on a GPIO?

I'm looking for a rock-solid recipe, if it exists.  Or is it the case that OTG port Host mode is unreliable, is not recommended for industrial use, and should best be avoided?  Is this an OMAP4 thing, or does it affect OTG ports in general? 

The one thing I can't do (yet) is leave the Linaro/TI Ubuntu 12.04 LTS environment that my processor module vendor supports, which means using a 3.4.0 kernel for now, though I'm willing to apply any patches that will improve OTG Host mode access or behavior.


TIA,

-BobC

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux