Embedded Xinu Operating System
An ongoing research project and educational operating system.
|
#include <usb_util.h>
Go to the source code of this file.
Macros | |
#define | DWC_NUM_CHANNELS 8 |
#define | DWC_AHB_INTERRUPT_ENABLE (1 << 0) |
#define | BCM_DWC_AHB_AXI_WAIT (1 << 4) |
#define | DWC_AHB_DMA_ENABLE (1 << 5) |
#define | DWC_AHB_MASTER_IDLE (1 << 31) |
#define | DWC_SOFT_RESET (1 << 0) |
Registers of the DesignWare Hi-Speed USB 2.0 On-The-Go Controller.
#define BCM_DWC_AHB_AXI_WAIT (1 << 4) |
Bits [4:1] of the AHB Configuration register were redefined by Broadcom for the BCM2835; hence this flag is only valid on the BCM2835.
This bit is documented as:
1 = Wait for all outstanding AXI writes to complete before signalling (internally) that DMA is done. 0 = don't wait.
We set this bit because the Linux driver does, although we did not observe a difference in behavior.
#define DWC_AHB_DMA_ENABLE (1 << 5) |
Writing 1 to this bit in the AHB Configuration Register allows the USB controller to perform DMA (Direct Memory Access). Disabled by default.
#define DWC_AHB_INTERRUPT_ENABLE (1 << 0) |
Enable interrupts from the USB controller. Disabled by default.
#define DWC_AHB_MASTER_IDLE (1 << 31) |
TODO
#define DWC_NUM_CHANNELS 8 |
Number of DWC host channels, each of which can be used for an independent USB transfer. On the BCM2835 (Raspberry Pi), 8 are available. This is documented on page 201 of the BCM2835 ARM Peripherals document.
#define DWC_SOFT_RESET (1 << 0) |
Write 1 to this location in the Core Reset Register to start a soft reset. This bit will then be cleared by the hardware when the reset is complete.