USB Host Controller
14-2
14.1 USB Host Controller
The OMAP5910 USB host controller (HC) is a three-port controller that com-
municates with USB devices at the USB low-speed (1.5M bit/s maximum) and
full-speed (12M bit/s maximum) data rates. It is compatible with the Universal
Serial Bus Specification Revision 1.1 and the Open HCI—Open Host Control-
ler Interface Specification for USB, Release 1.0a, available through the Com-
paq Computer Corporation web site, and hereafter called the OHCI Specifica-
tion for USB. It is assumed that users of the OMAP5910 USB host controller
are already familiar with the USB Specification and OHCI Specification for
USB.
The OMAP5910 USB host controller implements the register set and makes
use of the memory data structures defined in the OHCI Specification for USB.
These registers and data structures are the mechanism by which a USB host
controller driver software package can control the OMAP5910 USB host con-
troller. The OHCI Specification for USB also defines how the USB host control-
ler implementation must interact with those registers and data structures in
system memory.
To reduce processor software and interrupt overhead, the USB host controller
generates USB traffic based on data structures and data buffers stored in
system memory. The OMAP5910 USB host controller accesses these data
structures without direct intervention by the processor using the OMAP5910’s
local bus. These data structures and data buffers can be located in internal or
external system RAM. The local bus MMU allows the USB host controller to
access the full address range of internal and external memories.
The OMAP5910 USB host controller is connected to the OMAP5910 MPU
public peripheral bus for MPU access to registers. The USB host controller
gains access to the data structures in OMAP5910 system memory via the
internal OMAP5910 local bus (LB) interface. The USB host controller provides
an interrupt to the MPU level 2 interrupt handler to signal certain hardware
events to the host controller driver software.
Flexible multiplexing of signals from the OMAP5910 USB host controller, the
OMAP5910 USB function controller, and other OMAP5910 peripherals allows
a wide variety of system-level USB functions. Notice in Figure 14–2 that many
of the pins can be used for USB-related signals or for signals from other
OMAP5910 peripherals. The OMAP5910 top-level pin multiplexing controls
each pin individually to select one of several possible internal pin signal inter-
connections. When these shared pins are programmed for use as USB
signals, the OMAP5910 USB signal multiplexing selects how the signals
associated with the three OMAP5910 USB host ports and the OMAP5910
USB function controller can be brought out to OMAP5910 pins. Notice that the