USB Host Controller Reset and Clock Control
14-115
Universal Serial Bus Host
before the local bus time-out counter completes its count, the unrecoverable
error OHCI interrupt is signaled and the USB host controller stops performing
USB packet transactions. It is possible to disable the USB host controller local
bus time-out counter, but then there is no protection against the local bus lock-
up that occurs if the USB host controller attempts to access a local bus virtual
address that is outside of the valid local bus virtual address range of
3000:0000h to 3FFF:FFFFh.
14.9 USB Host Controller Reset and Clock Control
14.9.1 USB Host Controller Clock Control
The OMAP5910 clock generation and system reset management module
(ULPD) provides a 48-MHz clock to the USB host controller. This clock can be
stopped by software to reduce USB host controller power consumption when
USB host controller operation is not needed.
Clocking for the local bus is controlled by a different mechanism. When the
USB host controller needs to access system memory, the local bus must be
operating.
14.9.2 Initializing ULPD to Generate the 48-MHz Clock
The ULPD module generates 48 MHz for the USB host controller using either
a digital PLL (DPLL) or an analog PLL (APLL). The USB host controller
receives a clock from the ULPD module when the CONF_MOD_USB_HOST_
HHC_UHOST_EN_R bit is set. This register bit provides the clock request
from the USB host controller to the ULPD.
The ULPD resets to a mode where the 48-MHz clock is generated by the
DPLL. This sequence can be used to disable the DPLL and enable the APLL:
1) Clear the ULPD DPLL enable bit.
2) Wait until the DPLL lock bit goes to 0 to indicate that the DPLL is no longer
locked (ULPDs DPLL_CTRL_REG register LOCK bit).
3) Set the APLL enable bit (ULPDs APLL_CTRL_REG register,
APLL_NDPLL_SWITCH bit). (When this bit is 0, the DPLL output is
selected rather than the APLL output).
4) Wait until the APLL global lock bit is 1 (ULPDs register, GLOBAL_LOCK
bit).
When the ULPD module selects the APLL, the DPLL is shut off and all
OMAP5910 modules that use 48 MHz receive 48 MHz from the APLL. When
the ULPD module selects the DPLL, the APLL is shut off and all OMAP5910
modules that use 48 MHz receive 48 MHz from the DPLL.
OMAP5910 Local Bus MMU / USB Host Controller Reset and Clock Control