This adds the isp1301_omap driver, supporting USB OTG on OMAP systems.
The driver tightly couples two different chunks of hardware, which are
used to implement the OTG protocols:
- The Philips ISP1301 OTG transceiver (an I2C device) senses voltage
levels and sources VBUS current in the A-Device roles.
- OMAP's OTG controller handles lots of OTG transitions, and
tells the transceiver what to do.
The driver implements the abstract "otg_transceiver" API, since it's got to
talk to both the host controller (OHCI on current OMAPs) and the peripheral
controller (omap_udc) while hiding a variety of implementation details. It
should be easy to tweak to work on other OMAP boards using the isp1301 chip;
OMAP boards with other transceivers, or non-OMAP boards using isp1301, will
probably find things to learn from.
Note that this also supports two non-OTG modes, with the OTG controller
disabled; very handy for debugging just the host side USB stack, or just the
peripheral side USB stack.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>