UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
608 of 1269
NXP Semiconductors
UM10503
Chapter 24: LPC43xx USB1 Host/Device controller
Remark:
Writes to the ULPI through the viewport can substantially harm standard USB
operations. Currently no usage model has been defined where software should need to
execute writes directly to the ULPI – see exception regarding optional features below.
Remark:
Executing read operations though the ULPI viewport should have no harmful
side effects to standard USB operations.
There are two operations that can be performed with the ULPI Viewport, wake-up and
read /write operations. The wakeup operation is used to put the ULPI interface into normal
operation mode and reenable the clock if necessary. A wakeup operation is required
before accessing the registers when the ULPI interface is operating in low power mode,
serial mode, or carkit mode. The ULPI state can be determined by reading the sync. state
bit (ULPISS). If this bit is a one, then ULPI interface is running in normal operation mode
and can accept read/write operations. If the ULPISS indicates a 0 then read/write
operations will not be able execute. Undefined behavior will result if ULPISS = 0 and a
read or write operation is performed. To execute a wakeup operation, write all 32 bits of
the ULPI Viewport where ULPIPORT is constructed appropriately and the ULPIWU bit is a
1 and ULPIRUN bit is a 0. Poll the ULPI Viewport until ULPIWU is zero for the operation to
complete.
To execute a read or write operation, write all 32-bits of the ULPI Viewport where
ULPIDATWR, ULPIADDR, ULPIPORT, ULPIRW are constructed appropriately and the
ULPIRUN bit is a 1. Poll the ULPI Viewport until ULPIRUN is zero for the operation to
complete. Once ULPIRUN is zero, the ULPIDATRD will be valid if the operation was a
read.
The polling method above could also be replaced and interrupt driven using the ULPI
interrupt defined in the USBSTS and USBINTR registers. When a wakeup or read/write
operation complete, the ULPI interrupt will be set.
Table 477. USB ULPI viewport register (ULPIVIEWPORT - address 0x4000 7170) bit description
Bit
Symbol
Value
Description
Access
Reset
value
7:0
ULPIDATWR
When a write operation is commanded, the data to be sent is written
to this field.
R/W
0
15:8
ULPIDATRD
After a read operation completes, the result is placed in this field.
R
0
23:16
ULPIADDR
When a read or write operation is commanded, the address of the
operation is written to this field.
R/W
0
26:24
ULPIPORT
For the wakeup or read/write operation to be executed, this value
must be written as 0.
R/W
000
27
ULPISS
ULPI sync state. This bit represents the state of the ULPI interface.
R
0
0
In another state (ie. carkit, serial, low power)
1
Normal Sync. State.
28
-
-
Reserved
-
-