DCTL

         Device Control Register
      
Module Instance Base Address Register Address
i_usbotg_0_DWC_otg_intreg 0xFFB00000 0xFFB00804
i_usbotg_1_DWC_otg_intreg 0xFFB40000 0xFFB40804

Size: 32

Offset: 0x804

Access: RW

Important: The value of a reserved bit must be maintained in software. When you modify registers containing reserved bit fields, you must use a read-modify-write operation to preserve state and prevent indeterminate system behavior.
Bit Fields
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16

RESERVED

RO 0x0

Reserved

EnContOnBNA

RW 0x0

NakOnBble

RW 0x0

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

IgnrFrmNum

RW 0x0

GMC

RW 0x0

Reserved

PWROnPrgDone

RW 0x0

CGOUTNak

WO 0x0

SGOUTNak

WO 0x0

CGNPInNak

WO 0x0

SGNPInNak

WO 0x0

TstCtl

RW 0x0

GOUTNakSts

RO 0x0

GNPINNakSts

RO 0x0

SftDiscon

RW 0x1

RmtWkUpSig

RW 0x0

DCTL Fields

Bit Name Description Access Reset
31:19 RESERVED
RESERVED
RO 0x0
17 EnContOnBNA
Enable Continue on BNA (EnContOnBNA)
This bit enables the DWC_otg core to continue on BNA for Bulk OUT endpoints. 
With this feature enabled, when a Bulk OUT endpoint receives a BNA interrupt
the core starts processing the descriptor that caused the BNA interrupt after 
the endpoint re-enables the endpoint. 
1'b0: After receiving BNA interrupt,the core disables the endpoint. When the 
      endpoint is re-enabled by the application,the core starts processing from 
      the DOEPDMA descriptor.  
1'b1: After receiving BNA interrupt, the core disables the endpoint. When the 
      endpoint is re-enabled by the application, the core starts processing from 
      the descriptor that received the BNA interrupt. This bit is valid only when
      OTG_EN_DESC_DMA == 1'b1. It is a one-time programmable after reset bit like 
      any other DCTL register bits.
Value Description
0x0 Core disables the endpoint after receiving BNA interrupt. When application re-enables the endpoint, core starts processing from the DOEPDMA descriptor
0x1 Core disables the endpoint after receiving BNA interrupt. When application re-enables the endpoint, core starts processing from the descriptor that received the BNA interrupt.
RW 0x0
16 NakOnBble
NAK on Babble Error (NakOnBble)
Set NAK automatically on babble (NakOnBble). The core sets NAK automatically for the
endpoint on which babble is received.
Value Description
0x0 Disable NAK on Babble Error
0x1 NAK on Babble Error
RW 0x0
15 IgnrFrmNum
Ignore Frame number For Isochronous End points (IgnrFrmNum)
Do NOT program IgnrFrmNum bit to 1'b1 when the core is
operating in threshold mode.
Note:  When Scatter/Gather DMA mode is enabled this feature is not applicable to High Speed, High bandwidth transfers. When this bit is enabled, there must be only one packet per descriptor. 
 0: The core transmits the packets only in the frame number in which they are intended to be transmitted. 
 1: The core ignores the frame number, sending packets immediately as the packets are ready.
In Scatter/Gather DMA mode, if this bit is enabled, the packets are not flushed when a ISOC IN token is received for an elapsed frame.

When Scatter/Gather DMA mode is disabled, this field is used by the application to enable periodic transfer interrupt. The application can program periodic endpoint transfers for multiple (micro)frames.
 0: periodic transfer interrupt feature is disabled, application needs to program transfers for periodic endpoints every (micro)frame
 1: periodic transfer interrupt feature is enabled, application can program transfers for multiple (micro)frames for periodic endpoints.
In non Scatter/Gather DMA mode the application will receive transfer complete interrupt after transfers for multiple (micro)frames are completed.
Value Description
0x0 The core transmits the packets only in the frame number in which they are intended to be transmitted
0x1 The core ignores the frame number, sending packets immediately as the packets are ready
RW 0x0
14:13 GMC
Global Multi Count (GMC)
GMC must be programmed only once after initialization.
Applicable only For Scatter/Gather DMA mode. This indicates the
number of packets to be serviced For that end point before
moving to the next end point. It is only For non-periodic end
points.
 2'b00: Invalid.
 2'b01: 1 packet.
 2'b10: 2 packets.
 2'b11: 3 packets.
When Scatter/Gather DMA mode is disabled, this field is
reserved. and reads 2'b00.
Value Description
0x0 Invalid
0x1 1 packet
0x2 2 packets
0x3 3 packets
RW 0x0
11 PWROnPrgDone
Power-On Programming Done (PWROnPrgDone)
The application uses this bit to indicate that register
programming is completed after a wake-up from Power Down
mode.
Value Description
0x0 Power-On Programming not done
0x1 Power-On Programming Done
RW 0x0
10 CGOUTNak
Clear Global OUT NAK (CGOUTNak)
A write to this field clears the Global OUT NAK.
Value Description
0x0 Disable Clear Global OUT NAK
0x1 Clear Global OUT NAK
WO 0x0
9 SGOUTNak
Set Global OUT NAK (SGOUTNak)
A write to this field sets the Global OUT NAK.
The application uses this bit to send a NAK handshake on all
OUT endpoints.
The application must set the this bit only after making sure that
the Global OUT NAK Effective bit in the Core Interrupt Register
(GINTSTS.GOUTNakEff) is cleared.
Value Description
0x0 Disable Global OUT NAK
0x1 Set Global OUT NAK
WO 0x0
8 CGNPInNak
Clear Global Non-periodic IN NAK (CGNPInNak)
A write to this field clears the Global Non-periodic IN NAK.
Value Description
0x0 Disable Global Non-periodic IN NAK
0x1 Clear Global Non-periodic IN NAK
WO 0x0
7 SGNPInNak
Set Global Non-periodic IN NAK (SGNPInNak)
A write to this field sets the Global Non-periodic IN NAK.The
application uses this bit to send a NAK handshake on all nonperiodic
IN endpoints. The core can also Set this bit when a
timeout condition is detected on a non-periodic endpoint in
shared FIFO operation.
The application must Set this bit only after making sure that the
Global IN NAK Effective bit in the Core Interrupt Register
(GINTSTS.GINNakEff) is cleared
Value Description
0x0 Disable Global Non-periodic IN NAK
0x1 Set Global Non-periodic IN NAK
WO 0x0
6:4 TstCtl
Test Control (TstCtl)
 3'b000: Test mode disabled
 3'b001: Test_J mode
 3'b010: Test_K mode
 3'b011: Test_SE0_NAK mode
 3'b100: Test_Packet mode
 3'b101: Test_Force_Enable
 Others: Reserved
Value Description
0x0 Test mode disabled
0x1 Test_J mode
0x2 Test_K mode
0x3 Test_SE0_NAK mode
0x4 Test_Packet mode
0x5 Test_force_Enable
RW 0x0
3 GOUTNakSts
Global OUT NAK Status (GOUTNakSts)
 1'b0: A handshake is sent based on the FIFO Status and the
NAK and STALL bit settings.
 1'b1: No data is written to the RxFIFO, irrespective of space
availability. Sends a NAK handshake on all packets, except
on SETUP transactions. All isochronous OUT packets are
dropped.
Value Description
0x0 A handshake is sent based on the FIFO Status and the NAK and STALL bit settings.
0x1 No data is written to the RxFIFO, irrespective of space availability. Sends a NAK handshake on all packets, except on SETUP transactions. All isochronous OUT packets are dropped.
RO 0x0
2 GNPINNakSts
Global Non-periodic IN NAK Status (GNPINNakSts)
 1'b0: A handshake is sent out based on the data availability
in the transmit FIFO.
 1'b1: A NAK handshake is sent out on all non-periodic IN
endpoints, irrespective of the data availability in the transmit
FIFO.
Value Description
0x0 A handshake is sent out based on the data availability in the transmit FIFO
0x1 A NAK handshake is sent out on all non-periodic IN endpoints, irrespective of the data availability in the transmit FIFO.
RO 0x0
1 SftDiscon
Soft Disconnect (SftDiscon)
The application uses this bit to signal the DWC_otg core to do a
soft disconnect. As long as this bit is Set, the host does not see
that the device is connected, and the device does not receive
signals on the USB. The core stays in the disconnected state
until the application clears this bit.
The minimum duration For which the core must keep this bit Set
is specified in Table 5-46.
 1'b0: Normal operation. When this bit is cleared after a soft
disconnect, the core drives the phy_opmode_o signal on the
UTMI+ to 2'b00, which generates a device connect event to
the USB host. When the device is reconnected, the USB host
restarts device enumeration.
 1'b1: The core drives the phy_opmode_o signal on the
UTMI+ to 2'b01, which generates a device disconnect event
to the USB host.
Note: This bit can be also used for ULPI/FS Serial interfaces.
Note: This bit is not impacted by a soft reset.
Value Description
0x0 The core drives the phy_opmode_o signal on the UTMI+ to 2'b00, which generates a device connect event to the USB host
0x1 The core drives the phy_opmode_o signal on the UTMI+ to 2'b01, which generates a device disconnect event to the USB host
RW 0x1
0 RmtWkUpSig
Remote Wakeup Signaling (RmtWkUpSig)
When the application sets this bit, the core initiates remote
signaling to wake up the USB host. The application must Set this
bit to instruct the core to exit the Suspend state. As specified in
the USB 2.0 specification, the application must clear this bit 
1-15 ms after setting it.
Remote Wakeup Signaling (RmtWkUpSig) When LPM is enabled, 
In L1 state the behavior of this bit is as follows:
When the application sets this bit, the core initiates L1 remote signaling to
wake up the USB host. The application must set this bit to instruct the core
to exit the Sleep state. As specified in the LPM specification,
the hardware will automatically clear this bit after a time of 50 micro sec (TL1DevDrvResume)
after set by application. Application should not set this bit when GLPMCFG bRemoteWake
from the previous LPM transaction was zero.
Value Description
0x0 Core does not send Remote Wakeup Signaling
0x1 Core sends Remote Wakeup Signaling
RW 0x0