Address offset: 0x054
LPM Config Register
Register to control the LPM functionality of the controller.
| Bit number | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | O | N | M | M | M | L | K | K | K | J | J | J | J | I | H | G | G | F | F | F | F | F | E | D | C | C | C | C | B | A | |||||
| Reset 0x00000000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||
| ID | R/W | Field | Value ID | Value | Description | ||||||||||||||||||||||||||||||
| A |
RW |
LPMCAP |
LPM-Capable (LPMCap) The application uses this bit to control the controller LPM capabilities. If the core operates as a non-LPM-capable host, it cannot request the connected device/hub to activate LPM mode. If the core operates as a non-LPM-capable device, it cannot respond to any LPM transactions. If GLPMCFG.LPMCap is 1'b0, the software must not set any of the remaining fields in the GLPMCFG register and these fields must hold their Reset values. |
||||||||||||||||||||||||||||||||
|
DISABLED |
0 |
LPM capability is not enabled |
|||||||||||||||||||||||||||||||||
|
ENABLED |
1 |
LPM capability is enabled |
|||||||||||||||||||||||||||||||||
| B |
RW |
APPL1RES |
Mode: Device only. LPM response programmed by application (AppL1Res) Handshake response to LPM token pre-programmed by device application software. The response depends on GLPMCFG.LPMCap. If GLPMCFG.LPMCap is 1'b0, the core operates as a non-LPM-capable Device and does not respond to any LPM transactions. If GLPMCFG.LPMCap is 1'b1, the core responds as follows: - 1: ACK Even though an ACK is pre-programmed, the core responds with an ACK only on a successful LPM transaction. The LPM transaction is successful if: -- There are no PID/CRC5 errors in both the EXT token and the LPM token (else ERROR) -- A valid bLinkState = 0001B (L1) is received in the LPM transaction (else STALL) -- No data is pending in the Transmit queue (else NYET) - 0: NYET The pre-programmed software bit is overridden for response to LPM token when: -- The received bLinkState is not L1 (STALL response) -- An error is detected in either of the LPM token packets due to corruption (ERROR response). |
||||||||||||||||||||||||||||||||
|
NYETRESP |
0 |
The core responds with a NYET when an error is detected in either of the LPM token packets due to corruption |
|||||||||||||||||||||||||||||||||
|
ACKRESP |
1 |
The core responds with an ACK only on a successful LPM transaction |
|||||||||||||||||||||||||||||||||
| C |
RW |
HIRD |
Host-Initiated Resume Duration (HIRD) EnBESL = 1'b0 Host Initiated Resume Duration. - Host Mode: The value of HIRD to be sent in an LPM transaction. This value is also used to initiate resume for a duration TL1HubDrvResume1 for host-initiated resume. - Device Mode: This field is read only and is updated with the Received LPM Token HIRD bmAttribute when an ACK/NYET/STALL response is sent to an LPM transaction. If HIRD[3:0], EnBESL = 1'b1 Best Effort Service Latency (BESL). - Host Mode: The value of BESL to be sent in an LPM transaction. This value is also used to initiate resume for a duration TL1HubDrvResume1 for host-initiated resume. - Device Mode: This field is updated with the Received LPM Token BESL bmAttribute when an ACK/NYET/STALL response is sent to an LPM transaction. If BESL[3:0], |
||||||||||||||||||||||||||||||||
| D |
RW |
BREMOTEWAKE |
RemoteWakeEnable (bRemoteWake) Mode: Host and Device Host Mode: The value of remote wake up to be sent in wIndex field of LPM transaction. Device Mode: This field is read only. It is updated with the Received LPM Token bRemoteWake bmAttribute when an ACK/NYET/STALL response is sent to an LPM transaction. |
||||||||||||||||||||||||||||||||
|
DISABLED |
0 |
Remote Wakeup is disabled |
|||||||||||||||||||||||||||||||||
|
ENABLED |
1 |
In Host or device mode, this field takes the value of remote wake up |
|||||||||||||||||||||||||||||||||
| E |
RW |
ENBLSLPM |
Enable utmi_sleep_n (EnblSlpM) Mode: Host and Device For ULPI interface: The application uses this bit to control the utmi_sleep_n assertion to the PHY when in L1 state. For the host, this bit is valid only in Local Device mode. Note: - When a ULPI interface is configured, enabling this bit results in a write to Bit 7 of the ULPI Function Control register. The Synopsys ULPI PHY supports writing to this bit, and in the L1 state asserts SleepM when utmi_l1_suspend_n cannot be asserted. - When a ULPI/UTMI PHY associated with the controller (Host or device) does not support the LPM sleep feature clock gating, it is recommended to keep the EnblSlpM bit in disabled state (= 1'b0). This ensures the ULPI wrapper is in enabled mode and detects any wakeup events. For all other interfaces: The application uses this bit to control utmi_sleep_n assertion to the PHY in the L1 state. For the host, this bit is valid only in Local Device mode. |
||||||||||||||||||||||||||||||||
|
DISABLED |
0 |
utmi_sleep_n assertion from the core is not transferred to the external PHY |
|||||||||||||||||||||||||||||||||
|
ENABLED |
1 |
utmi_sleep_n assertion from the core is transferred to the external PHY when utmi_l1_suspend_n cannot be asserted |
|||||||||||||||||||||||||||||||||
| F |
RW |
HIRDTHRES |
BESL/HIRD Threshold (HIRD_Thres) Device Mode: Note: When a ULPI/UTMI PHY associated with the controller (Host or device) does not support the LPM sleep feature clock gating, it is recommended to keep the HIRD_Thres[12] bit in disabled state (= 1'b0). This ensures the ULPI wrapper is in enabled mode and detects any wakeup events. - EnBESL = 1'b0: The core puts the PHY into deep low power mode in L1 (by core asserting L1SuspendM) when HIRD value is greater than or equal to the value defined in this field HIRD_Thres[3:0] and HIRD_Thres[4] is set to 1b1. - EnBESL = 1'b1: The core puts the PHY into deep low power mode in L1 (by core asserting L1SuspendM) when BESL value is greater than or equal to the value defined in this field BESL_Thres[3:0] and BESL_Thres [4] is set to 1'b1. - DCTL.DeepSleepBESLReject = 1'b1: In device initiated resume, the core expects the Host to resume service to the device within the BESL value corresponding to L1 exit time specified in HIRD_Thres[3:0]. The Device sends a NYET response when the received HIRD in LPM token is greater than HIRD threshold. Host Mode: The core puts the PHY into deep low power mode in L1 (by core asserting L1SuspendM) when HIRD_Thres[4] is set to 1'b1. HIRD_Thres[3:0] specifies the time for which resume signaling is to be reflected by host (TL1HubDrvResume2) on the USB bus when it detects device initiated resume. To differentiate between Deep Sleep and Shallow Sleep, HIRD greater than or equal to HIRD threshold comparison is done. For differentiating between NYET or ACK response for LPM token HIRD greater than HIRD Threshold comparison is used. - When EnBESL = 1'b0, HIRD_Thres must not be programmed with a value greater than 4'b1100 in host mode since this exceeds maximum TL1HubDrvResume2. - When EnBESL = 1'b1, HIRD_Thres must not be programmed with a value greater than 4'b0110 in host mode since this exceeds maximum TL1HubDrvResume2. For additional details, see the "Additional Details on GLPMCFG.HIRD_Thres Register Field" section in the databook. |
||||||||||||||||||||||||||||||||
| G |
R |
COREL1RES |
LPM Response (CoreL1Res) Device Mode: The response of the core to LPM transaction received is reflected in these two bits. Host Mode: Handshake response received from local device for LPM transaction |
||||||||||||||||||||||||||||||||
|
LPMRESP1 |
0 |
ERROR : No handshake response |
|||||||||||||||||||||||||||||||||
|
LPMRESP2 |
1 |
STALL response |
|||||||||||||||||||||||||||||||||
|
LPMRESP3 |
2 |
NYET response |
|||||||||||||||||||||||||||||||||
|
LPMRESP4 |
3 |
ACK response |
|||||||||||||||||||||||||||||||||
| H |
R |
SLPSTS |
Port Sleep Status (SlpSts) Device Mode: This bit is set as long as a Sleep condition is present on the USB bus. The core enters the Sleep state when an ACK response is sent to an LPM transaction and the TL1TokenRetry timer has expired. To stop the PHY clock, the application must set the Port Clock Stop bit, which asserts the PHY Suspend input signal. The application must rely on SlpSts and not ACK in CoreL1Res to confirm transition into sleep. The core comes out of sleep: - When there is any activity on the USB line_state - When the application writes to the Remote Wakeup Signaling bit in the Device Control register (DCTL.RmtWkUpSig) or when the application resets or soft-disconnects the device. Host Mode: The host transitions to Sleep (L1) state as a side-effect of a successful LPM transaction by the core to the local port with ACK response from the device. The read value of this bit reflects the current Sleep status of the port. The core clears this bit after: - The core detects a remote L1 Wakeup signal; - The application sets the Port Reset bit or the Port L1Resume bit in the HPRT register; or - The application sets the L1Resume/ Remote Wakeup Detected Interrupt bit or Disconnect Detected Interrupt bit in the Core Interrupt register (GINTSTS.L1WkUpInt or GINTSTS.DisconnInt, respectively). |
||||||||||||||||||||||||||||||||
|
CORENOTINL1 |
0 |
In Host or Device mode, this bit indicates core is not in L1 |
|||||||||||||||||||||||||||||||||
|
COREINL1 |
1 |
In Host mode, this bit indicates the core transitions to Sleep state as a successful LPM transaction. In Device mode, the core enters the Sleep state when an ACK response is sent to an LPM transaction |
|||||||||||||||||||||||||||||||||
| I |
R |
L1RESUMEOK |
Sleep State Resume OK (L1ResumeOK) Device and Host Mode: Indicates that the application or host can start resume from Sleep state. This bit is valid in LPM sleep (L1) state. It is set in sleep mode after a delay of 50 micro sec (TL1Residency). The bit is reset when SlpSts is 0. |
||||||||||||||||||||||||||||||||
|
NOTOK |
0 |
The application/core cannot start Resume from Sleep state |
|||||||||||||||||||||||||||||||||
|
OK |
1 |
The application/core can start Resume from Sleep state |
|||||||||||||||||||||||||||||||||
| J |
RW |
LPMCHNLINDX |
LPM Channel Index Host Mode: The channel number on which the LPM transaction has to be applied while sending an LPM transaction to the local device. Based on the LPM channel index, the core automatically inserts the device address and end point number programmed in the corresponding channel into the LPM transaction. Device Mode: LPM Accept Control (LPM_Accept_Ctrl) LPM_Accept_Ctrl[0] (LPM_Chnl_Indx[3]): The application can use this bit to accept an LPM token even if data is present in the INTR endpoint TxFIFO. This bit is applicable only for Dedicated TX FIFO configurations (OTG_EN_DED_TX_FIFO=1). |
||||||||||||||||||||||||||||||||
|
CH0 |
0 |
Channel 0 |
|||||||||||||||||||||||||||||||||
|
CH1 |
1 |
Channel 1 |
|||||||||||||||||||||||||||||||||
|
CH2 |
2 |
Channel 2 |
|||||||||||||||||||||||||||||||||
|
CH3 |
3 |
Channel 3 |
|||||||||||||||||||||||||||||||||
|
CH4 |
4 |
Channel 4 |
|||||||||||||||||||||||||||||||||
|
CH5 |
5 |
Channel 5 |
|||||||||||||||||||||||||||||||||
|
CH6 |
6 |
Channel 6 |
|||||||||||||||||||||||||||||||||
|
CH7 |
7 |
Channel 7 |
|||||||||||||||||||||||||||||||||
|
CH8 |
8 |
Channel 8 |
|||||||||||||||||||||||||||||||||
|
CH9 |
9 |
Channel 9 |
|||||||||||||||||||||||||||||||||
|
CH10 |
10 |
Channel 10 |
|||||||||||||||||||||||||||||||||
|
CH11 |
11 |
Channel 11 |
|||||||||||||||||||||||||||||||||
|
CH12 |
12 |
Channel 12 |
|||||||||||||||||||||||||||||||||
|
CH13 |
13 |
Channel 13 |
|||||||||||||||||||||||||||||||||
|
CH14 |
14 |
Channel 14 |
|||||||||||||||||||||||||||||||||
|
CH15 |
15 |
Channel15 |
|||||||||||||||||||||||||||||||||
| K |
RW |
LPMRETRYCNT |
LPM Retry Count (LPM_Retry_Cnt) Host Mode: Number of additional LPM retries that the HOST would perform if the Device Response was an ERROR until a valid device response is received (STALL/NYET/ACK). Device Mode: LPM Accept Control (LPM_Accept_Ctrl) LPM_Accept_Ctrl[1]: The application can use this bit to reject an LPM token (NYET) between multiple stages of a single control transfer LPM_Accept_Ctrl[2]: The application can use this bit to accept an LPM token even if data is present in the ISOC endpoint TxFIFO. This bit is applicable only for Dedicated TxFIFO configurations (OTG_EN_DED_TX_FIFO=1). LPM_Accept_Ctrl[3]: The application can use this bit to accept an LPM token even if data is present in the BULK endpoint TxFIFO. This bit is applicable only for Dedicated TxFIFO configurations (OTG_EN_DED_TX_FIFO=1). |
||||||||||||||||||||||||||||||||
|
RETRY0 |
0 |
Zero LPM retries |
|||||||||||||||||||||||||||||||||
|
RETRY1 |
1 |
One LPM retry |
|||||||||||||||||||||||||||||||||
|
RETRY2 |
2 |
Two LPM retries |
|||||||||||||||||||||||||||||||||
|
RETRY3 |
3 |
Three LPM retries |
|||||||||||||||||||||||||||||||||
|
RETRY4 |
4 |
Four LPM retries |
|||||||||||||||||||||||||||||||||
|
RETRY5 |
5 |
Five LPM retries |
|||||||||||||||||||||||||||||||||
|
RETRY6 |
6 |
Six LPM retries |
|||||||||||||||||||||||||||||||||
|
RETRY7 |
7 |
Seven LPM retries |
|||||||||||||||||||||||||||||||||
| L |
RW |
SNDLPM |
Send LPM Transaction (SndLPM) Host Mode: When set by application software, an LPM transaction containing two tokens, EXT & LPM is sent. Cleared by the hardware once a valid response (STALL./NYET/ACK) is received from the Device or the core had finished transmitting the programmed number of LPM retries. Note that this bit must be set only when the host is connected to local port. |
||||||||||||||||||||||||||||||||
|
DISABLED |
0 |
In host-only mode: Received the response from the device for the LPM transaction |
|||||||||||||||||||||||||||||||||
|
ENABLED |
1 |
In host-only mode: Sending LPM transaction containing EXT and LPM tokens |
|||||||||||||||||||||||||||||||||
| M |
R |
LPMRETRYCNTSTS |
LPM Retry Count Status (LPM_RetryCnt_Sts) Host Mode: Number of LPM Host Retries still remaining to be transmitted for the current LPM sequence. |
||||||||||||||||||||||||||||||||
|
RETRYREM0 |
0 |
Zero LPM retries remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM1 |
1 |
One LPM retry remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM2 |
2 |
Two LPM retries remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM3 |
3 |
Three LPM retries remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM4 |
4 |
Four LPM retries remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM5 |
5 |
Five LPM retries remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM6 |
6 |
Six LPM retries remaining |
|||||||||||||||||||||||||||||||||
|
RETRYREM7 |
7 |
Seven LPM retries remaining |
|||||||||||||||||||||||||||||||||
| N |
RW |
LPMENBESL |
LPM Enable BESL (LPM_EnBESL) This bit enables the BESL feature as defined in LPM Errata |
||||||||||||||||||||||||||||||||
|
DISABLED |
0 |
BESL is disabled |
|||||||||||||||||||||||||||||||||
|
ENABLED |
1 |
BESL is enabled as defined in LPM Errata |
|||||||||||||||||||||||||||||||||
| O |
RW |
LPMRESTORESLPSTS |
LPM Restore Sleep Status (LPM_RestoreSlpSts) When the application power gates the core (Partial Power Down / Hibernation) the application needs to program this bit to restore the LPM status in the core. The application needs to program this bit, during restore process, based on whether it decides to go into Shallow Sleep (Clock Gating Only) or Deep Sleep (Power Gating) based on the BESL value received from the Host |
||||||||||||||||||||||||||||||||
|
DISABLED |
0 |
Puts the core in Shallow Sleep mode based on the BESL value from the Host |
|||||||||||||||||||||||||||||||||
|
ENABLED |
1 |
Puts the core in Deep Sleep mode based on the BESL value from the Host |
|||||||||||||||||||||||||||||||||