Expand description
USB FS/LS controller device registers
Modules§
- Device address and endpoint control
- Which of the double buffers should be handled. Only valid if using an interrupt per buffer (i.e. not per 2 buffers). Not valid for host interrupt endpoint polling because they are only single buffered.
- Buffer status register. A bit set here indicates that a buffer has completed on the endpoint (if the buffer interrupt is enabled). It is possible for 2 buffers to be completed, so clearing the buffer status bit may instantly re set it on the next clock cycle.
- Device only: Can be set to ignore the buffer control register for this endpoint in case you would like to revoke a buffer. A NAK will be sent for every access to the endpoint until this bit is cleared. A corresponding bit in
EP_ABORT_DONE
is set when it is safe to modify the buffer control register. - Device only: Used in conjunction with
EP_ABORT
. Set once an endpoint is idle so the programmer knows it is safe to modify the buffer control register. - Device: this bit must be set in conjunction with the
STALL
bit in the buffer control register to send a STALL on EP0. The device controller clears these bits when a SETUP packet is received because the USB spec requires that a STALL condition is cleared when a SETUP packet is received. - Device: bits are set when the
IRQ_ON_NAK
orIRQ_ON_STALL
bits are set. For EP0 this comes fromSIE_CTRL
. For all other endpoints it comes from the endpoint control register. - Interrupt endpoints. Only valid in HOST mode.
- interrupt endpoint control register
- Interrupt Enable
- Interrupt Force
- Raw Interrupts
- Interrupt status after masking & forcing
- Main control register
- Used by the host controller. Sets the wait time in microseconds before trying again if the device replies with a NAK.
- SIE control register
- SIE status register
- Read the last SOF (Start of Frame) frame number seen. In device mode the last SOF received from the host. In host mode the last SOF sent by the host.
- Set the SOF (Start of Frame) frame number in the host controller. The SOF packet is sent every 1ms and the host will increment the frame number by 1 each time.
- Where to connect the USB controller. Should be to_phy by default.
- Overrides for the power signals in the event that the VBUS signals are not hooked up to GPIO. Set the value of the override and then the override enable to switch over to the override value.
- This register allows for direct control of the USB phy. Use in conjunction with usbphy_direct_override register to enable each override bit.
- Override enable for each control in usbphy_direct
- Used to adjust trim values of USB phy pull down resistors.
Structs§
- Register block
Type Aliases§
- ADDR_ENDP (rw) register accessor: Device address and endpoint control
- BUFF_CPU_SHOULD_HANDLE (r) register accessor: Which of the double buffers should be handled. Only valid if using an interrupt per buffer (i.e. not per 2 buffers). Not valid for host interrupt endpoint polling because they are only single buffered.
- BUFF_STATUS (rw) register accessor: Buffer status register. A bit set here indicates that a buffer has completed on the endpoint (if the buffer interrupt is enabled). It is possible for 2 buffers to be completed, so clearing the buffer status bit may instantly re set it on the next clock cycle.
- EP_ABORT (rw) register accessor: Device only: Can be set to ignore the buffer control register for this endpoint in case you would like to revoke a buffer. A NAK will be sent for every access to the endpoint until this bit is cleared. A corresponding bit in
EP_ABORT_DONE
is set when it is safe to modify the buffer control register. - EP_ABORT_DONE (rw) register accessor: Device only: Used in conjunction with
EP_ABORT
. Set once an endpoint is idle so the programmer knows it is safe to modify the buffer control register. - EP_STALL_ARM (rw) register accessor: Device: this bit must be set in conjunction with the
STALL
bit in the buffer control register to send a STALL on EP0. The device controller clears these bits when a SETUP packet is received because the USB spec requires that a STALL condition is cleared when a SETUP packet is received. - EP_STATUS_STALL_NAK (rw) register accessor: Device: bits are set when the
IRQ_ON_NAK
orIRQ_ON_STALL
bits are set. For EP0 this comes fromSIE_CTRL
. For all other endpoints it comes from the endpoint control register. - HOST_ADDR_ENDP (rw) register accessor: Interrupt endpoints. Only valid in HOST mode.
- INTE (rw) register accessor: Interrupt Enable
- INTF (rw) register accessor: Interrupt Force
- INTR (r) register accessor: Raw Interrupts
- INTS (r) register accessor: Interrupt status after masking & forcing
- INT_EP_CTRL (rw) register accessor: interrupt endpoint control register
- MAIN_CTRL (rw) register accessor: Main control register
- NAK_POLL (rw) register accessor: Used by the host controller. Sets the wait time in microseconds before trying again if the device replies with a NAK.
- SIE_CTRL (rw) register accessor: SIE control register
- SIE_STATUS (rw) register accessor: SIE status register
- SOF_RD (r) register accessor: Read the last SOF (Start of Frame) frame number seen. In device mode the last SOF received from the host. In host mode the last SOF sent by the host.
- SOF_WR (w) register accessor: Set the SOF (Start of Frame) frame number in the host controller. The SOF packet is sent every 1ms and the host will increment the frame number by 1 each time.
- USBPHY_DIRECT (rw) register accessor: This register allows for direct control of the USB phy. Use in conjunction with usbphy_direct_override register to enable each override bit.
- USBPHY_DIRECT_OVERRIDE (rw) register accessor: Override enable for each control in usbphy_direct
- USBPHY_TRIM (rw) register accessor: Used to adjust trim values of USB phy pull down resistors.
- USB_MUXING (rw) register accessor: Where to connect the USB controller. Should be to_phy by default.
- USB_PWR (rw) register accessor: Overrides for the power signals in the event that the VBUS signals are not hooked up to GPIO. Set the value of the override and then the override enable to switch over to the override value.