66 #define USB_INTEP_RX_SHIFT 16
74 #define USB_RX_EPSTATUS_SHIFT 16
82 #define EP_OFFSET(Endpoint) (Endpoint - 0x10)
102 uint32_t ui32IndexedReg, uint32_t ui32Value, uint32_t ui32Size)
110 ASSERT((ui32Endpoint == 0) || (ui32Endpoint == 1) || (ui32Endpoint == 2) ||
111 (ui32Endpoint == 3));
112 ASSERT((ui32Size == 1) || (ui32Size == 2));
132 HWREGB(ui32Base + ui32IndexedReg) = ui32Value;
139 HWREGH(ui32Base + ui32IndexedReg) = ui32Value;
165 uint32_t ui32IndexedReg, uint32_t ui32Size)
174 ASSERT((ui32Endpoint == 0) || (ui32Endpoint == 1) || (ui32Endpoint == 2) ||
175 (ui32Endpoint == 3));
176 ASSERT((ui32Size == 1) || (ui32Size == 2));
196 ui8Value =
HWREGB(ui32Base + ui32IndexedReg);
203 ui8Value =
HWREGH(ui32Base + ui32IndexedReg);
1174 bool bDataToggle, uint32_t ui32Flags)
1176 uint32_t ui32DataToggle;
1681 uint32_t ui32MaxPayload, uint32_t ui32NAKPollInterval,
1682 uint32_t ui32TargetEndpoint, uint32_t ui32Flags)
1684 uint32_t ui32Register;
1731 ui32Register = ui32TargetEndpoint;
1806 ui32NAKPollInterval;
1844 (uint8_t)ui32Register;
1858 ui32NAKPollInterval;
1904 (uint8_t)ui32Register;
1985 ui32Reg |= ui32Speed;
1996 ui32Reg |= ui32Speed;
2054 uint32_t ui32MaxPacketSize, uint32_t ui32Flags)
2056 uint32_t ui32Register;
2116 (uint8_t)ui32Register;
2179 (uint8_t)ui32Register;
2214 uint32_t *pui32MaxPacketSize, uint32_t *pui32Flags)
2216 uint32_t ui32Register;
2222 ASSERT(pui32MaxPacketSize && pui32Flags);
2241 *pui32MaxPacketSize = (uint32_t)
HWREGH(ui32Base +
2306 *pui32MaxPacketSize = (uint32_t)
HWREGH(ui32Base +
2394 uint32_t ui32FIFOAddress, uint32_t ui32FIFOSize,
2417 ui32FIFOAddress >> 3, 2);
2427 ui32FIFOAddress >> 3, 2);
2457 uint32_t *pui32FIFOAddress, uint32_t *pui32FIFOSize,
2477 *pui32FIFOAddress = (
_USBIndexRead(ui32Base, ui32Endpoint >> 4,
2488 *pui32FIFOAddress = (
_USBIndexRead(ui32Base, ui32Endpoint >> 4,
2575 uint32_t ui32Config)
2577 uint32_t ui32NewConfig;
2732 uint32_t ui32Register;
2795 uint8_t *pui8Data, uint32_t *pui32Size)
2797 uint32_t ui32Register, ui32ByteCount, ui32FIFO;
2845 ui32ByteCount = (ui32ByteCount < *pui32Size) ? ui32ByteCount : *pui32Size;
2850 *pui32Size = ui32ByteCount;
2855 ui32FIFO = ui32Base +
USB_O_FIFO0 + (ui32Endpoint >> 2);
2860 for(; ui32ByteCount > 0; ui32ByteCount--)
2865 *pui8Data++ =
HWREGB(ui32FIFO);
2994 uint8_t *pui8Data, uint32_t ui32Size)
2997 uint8_t ui8TxPktRdy;
3031 ui32FIFO = ui32Base +
USB_O_FIFO0 + (ui32Endpoint >> 2);
3036 for(; ui32Size > 0; ui32Size--)
3038 HWREGB(ui32FIFO) = *pui8Data++;
3075 uint32_t ui32TransType)
3077 uint32_t ui32TxPktRdy;
3101 ui32TxPktRdy = ui32TransType & 0xff;
3113 ui32TxPktRdy = (ui32TransType >> 8) & 0xff;
3230 uint32_t ui32Register;
3280 uint32_t ui32Register;
3848 return(ui32Base +
USB_O_FIFO0 + (ui32Endpoint >> 2));
3945 uint32_t ui32Channel)
3963 ui32Mask = 0xf << (ui32Channel * 4);
3974 ui32Mask |= (
USBEPToIndex(ui32Endpoint)) << (ui32Channel * 4);
4630 uint32_t ui32Endpoint, uint32_t ui32Config)
4645 ui32Config | ui32Endpoint;
4723 uint32_t ui32Status)
4785 (uint32_t)pvAddress;
5229 ASSERT(ui32Address < 127);
5291 uint32_t ui32Config)
5294 ASSERT(ui32ResumeTime <= 1175);
5295 ASSERT(ui32ResumeTime >= 50);
5620 uint32_t ui32Endpoint;
#define USB_INTEP_RX_SHIFT
#define USB_DEV_EP0_SENT_STALL
#define USB_TXTYPE1_PROTO_CTRL
void USBDevEndpointStall(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
void USBModeConfig(uint32_t ui32Base, uint32_t ui32Mode)
int32_t USBEndpointDataPut(uint32_t ui32Base, uint32_t ui32Endpoint, uint8_t *pui8Data, uint32_t ui32Size)
#define USB_RXCSRH1_DMAEN
void USBIntEnableEndpoint(uint32_t ui32Base, uint32_t ui32Flags)
static uint32_t _USBIndexRead(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32IndexedReg, uint32_t ui32Size)
#define USB_TXCSRH1_DMAMOD
#define USB_INTCTRL_STATUS
void USBPHYPowerOn(uint32_t ui32Base)
void USBDevLPMEnable(uint32_t ui32Base)
void USBHostAddrSet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Addr, uint32_t ui32Flags)
void USBHostEndpointDataAck(uint32_t ui32Base, uint32_t ui32Endpoint)
#define USB_RX_EPSTATUS_SHIFT
static uint32_t _USBIntNumberGet(uint32_t ui32Base)
#define USB_EPC_PFLTSEN_HIGH
#define USB_TYPE0_SPEED_HIGH
uint32_t USBDMAChannelCountGet(uint32_t ui32Base, uint32_t ui32Channel)
void USBEndpointDMAEnable(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
#define USB_RXCSRH1_DMAMOD
void * USBDMAChannelAddressGet(uint32_t ui32Base, uint32_t ui32Channel)
uint32_t USBModeGet(uint32_t ui32Base)
void USBDMAChannelDisable(uint32_t ui32Base, uint32_t ui32Channel)
void USBIntDisableControl(uint32_t ui32Base, uint32_t ui32Flags)
#define USB_EP_DMA_MODE_1
#define USB_CSRL0_DATAEND
static void _USBIndexWrite(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32IndexedReg, uint32_t ui32Value, uint32_t ui32Size)
uint32_t USBDevSpeedGet(uint32_t ui32Base)
void USBEndpointDMAChannel(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Channel)
#define USB_LPMATTR_ENDPT_M
#define USB_INTCTRL_POWER_FAULT
void USBHostRequestStatus(uint32_t ui32Base)
#define USB_DEV_TX_UNDERRUN
#define USB_O_RQPKTCOUNT1
#define USB_RXCSRH1_DISNYET
void USBHostEndpointDataToggle(uint32_t ui32Base, uint32_t ui32Endpoint, bool bDataToggle, uint32_t ui32Flags)
void USBHostEndpointStatusClear(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
uint32_t USBEndpointDataAvail(uint32_t ui32Base, uint32_t ui32Endpoint)
#define USB_RXCSRL1_RXRDY
#define USB_LPMATTR_RMTWAK
void USBDMAChannelAddressSet(uint32_t ui32Base, uint32_t ui32Channel, void *pvAddress)
uint32_t USBFIFOAddrGet(uint32_t ui32Base, uint32_t ui32Endpoint)
void USBHostPwrEnable(uint32_t ui32Base)
#define USB_LPMATTR_HIRD_S
#define USB_RAMINFO_DMACHAN_S
#define USB_DEVCTL_VBUS_M
#define USB_O_RXINTERVAL1
uint32_t USBEndpointStatus(uint32_t ui32Base, uint32_t ui32Endpoint)
#define USB_ULPIREGCTL_RDWR
void USBDMAChannelIntEnable(uint32_t ui32Base, uint32_t ui32Channel)
#define USB_O_ULPIREGADDR
#define USB_GPCS_DEVMODOTG
void USBDMAChannelStatusClear(uint32_t ui32Base, uint32_t ui32Channel, uint32_t ui32Status)
void USBIntDisableEndpoint(uint32_t ui32Base, uint32_t ui32Flags)
#define USB_INTEP_HOST_OUT
#define USB_TXTYPE1_SPEED_FULL
void USBDevMode(uint32_t ui32Base)
void USBHostPwrFaultDisable(uint32_t ui32Base)
#define USB_INTEP_DEV_OUT
#define USB_INTCTRL_MODE_DETECT
void USBDevLPMConfig(uint32_t ui32Base, uint32_t ui32Config)
uint32_t USBDMAChannelStatus(uint32_t ui32Base, uint32_t ui32Channel)
#define USB_DEV_RX_SENT_STALL
void USBHostLPMSend(uint32_t ui32Base, uint32_t ui32Address, uint32_t ui32Endpoint)
uint32_t USBFrameNumberGet(uint32_t ui32Base)
void USBLPMIntEnable(uint32_t ui32Base, uint32_t ui32Ints)
#define USB_CSRH0_DISPING
void USBHostSuspend(uint32_t ui32Base)
void USBFIFOFlush(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
int32_t USBEndpointDataGet(uint32_t ui32Base, uint32_t ui32Endpoint, uint8_t *pui8Data, uint32_t *pui32Size)
#define USB_TXCSRL1_STALL
void USBEndpointPacketCountSet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Count)
#define USB_TXCSRL1_CLRDT
#define USB_DEV_EP0_SETUP_END
#define USB_EP_SPEED_FULL
#define USB_DEV_RX_DATA_ERROR
#define USB_HOST_PWREN_FILTER
void USBDevConnect(uint32_t ui32Base)
void USBULPIRegWrite(uint32_t ui32Base, uint8_t ui8Reg, uint8_t ui8Data)
#define USB_DEV_RX_OVERRUN
void USBClockEnable(uint32_t ui32Base, uint32_t ui32Div, uint32_t ui32Flags)
void USBHostMode(uint32_t ui32Base)
#define USB_EP_AUTO_REQUEST
#define USB_RXTYPE1_SPEED_M
#define USB_TXTYPE1_PROTO_ISOC
#define USB_DEV_TX_SENT_STALL
#define USB_RXCSRH1_AUTORQ
void USBHostPwrDisable(uint32_t ui32Base)
void USBDevLPMRemoteWake(uint32_t ui32Base)
void USBHostResume(uint32_t ui32Base, bool bStart)
void USBULPIEnable(uint32_t ui32Base)
void USBOTGMode(uint32_t ui32Base)
void USBEndpointDataToggleClear(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
#define USB_LPMATTR_ENDPT_S
void USBHostPwrConfig(uint32_t ui32Base, uint32_t ui32Flags)
#define USB_LPMCNTRL_TXLPM
uint32_t USBHostSpeedGet(uint32_t ui32Base)
void USBHostEndpointPing(uint32_t ui32Base, uint32_t ui32Endpoint, bool bEnable)
void USBHighSpeed(uint32_t ui32Base, bool bEnable)
#define USB_POWER_SOFTCONN
#define USB_O_ULPIREGDATA
#define USB_RXCSRL1_STALLED
uint32_t USBLPMIntStatus(uint32_t ui32Base)
#define USB_RXCSRH1_AUTOCL
void USBEndpointDMADisable(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
#define USB_ULPIREGCTL_REGCMPLT
#define USB_O_TXFUNCADDR0
void USBIntUnregister(uint32_t ui32Base)
#define USB_TXCSRL1_STALLED
bool USBLPMRemoteWakeEnabled(uint32_t ui32Base)
#define USB_POWER_SUSPEND
void USBDevEndpointDataAck(uint32_t ui32Base, uint32_t ui32Endpoint, bool bIsLastPacket)
#define USB_POWER_PWRDNPHY
#define USB_EPINFO_TXEP_M
void USBClockDisable(uint32_t ui32Base)
#define USB_TYPE0_SPEED_FULL
uint32_t USBNumEndpointsGet(uint32_t ui32Base)
#define USB_EP_DMA_MODE_0
void USBLPMIntDisable(uint32_t ui32Base, uint32_t ui32Ints)
void USBDevEndpointStatusClear(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
void USBULPIConfig(uint32_t ui32Base, uint32_t ui32Config)
#define USB_CSRL0_STALLED
#define USB_TXTYPE1_PROTO_INT
#define USB_RXCSRL1_CLRDT
void USBDMAChannelEnable(uint32_t ui32Base, uint32_t ui32Channel)
void IntUnregister(uint32_t ui32Interrupt)
#define USB_TXTYPE1_SPEED_LOW
void USBHostPwrFaultEnable(uint32_t ui32Base)
void USBHostEndpointSpeed(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
void USBDMAChannelCountSet(uint32_t ui32Base, uint32_t ui32Channel, uint32_t ui32Count)
uint32_t USBDMANumChannels(uint32_t ui32Base)
#define USB_RXCSRL1_STALL
uint8_t USBULPIRegRead(uint32_t ui32Base, uint8_t ui8Reg)
void USBFIFOConfigGet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t *pui32FIFOAddress, uint32_t *pui32FIFOSize, uint32_t ui32Flags)
uint32_t USBLPMEndpointGet(uint32_t ui32Base)
void USBDevEndpointConfigSet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32MaxPacketSize, uint32_t ui32Flags)
#define USB_CSRL0_SETENDC
void USBDevEndpointConfigGet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t *pui32MaxPacketSize, uint32_t *pui32Flags)
void USBIntEnableControl(uint32_t ui32Base, uint32_t ui32Flags)
uint32_t USBHostHubAddrGet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
void USBHostReset(uint32_t ui32Base, bool bStart)
#define USB_TXCSRH1_AUTOSET
uint32_t USBIntStatusEndpoint(uint32_t ui32Base)
#define USB_TXTYPE1_PROTO_BULK
void USBHostRequestIN(uint32_t ui32Base, uint32_t ui32Endpoint)
int32_t USBEndpointDataSend(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32TransType)
#define USB_TYPE0_SPEED_LOW
void USBOTGSessionRequest(uint32_t ui32Base, bool bStart)
#define USB_TXCSRH1_DMAEN
uint32_t USBLPMLinkStateGet(uint32_t ui32Base)
void USBDMAChannelIntDisable(uint32_t ui32Base, uint32_t ui32Channel)
#define UDMA_CHANNEL_USBEP3TX
#define USB_O_TXINTERVAL1
uint32_t USBHostAddrGet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
#define USB_LPMCNTRL_EN_LPMEXT
void USBHostLPMResume(uint32_t ui32Base)
#define USB_RXCSRL1_FLUSH
#define USB_INTEP_HOST_IN
void USBDevLPMDisable(uint32_t ui32Base)
void USBHostRequestINClear(uint32_t ui32Base, uint32_t ui32Endpoint)
void USBHostLPMConfig(uint32_t ui32Base, uint32_t ui32ResumeTime, uint32_t ui32Config)
#define USB_EPC_PFLTACT_M
#define USB_DMACTL0_ENABLE
#define USB_DEVCTL_SESSION
uint32_t USBDevAddrGet(uint32_t ui32Base)
void USBHostHubAddrSet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Addr, uint32_t ui32Flags)
#define USB_ULPIREGCTL_REGACC
void USBULPIDisable(uint32_t ui32Base)
uint32_t USBControllerVersion(uint32_t ui32Base)
void USBDMAChannelConfigSet(uint32_t ui32Base, uint32_t ui32Channel, uint32_t ui32Endpoint, uint32_t ui32Config)
#define USB_RXCSRL1_REQPKT
void USBIntRegister(uint32_t ui32Base, void(*pfnHandler)(void))
void USBDevEndpointStallClear(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Flags)
#define USB_DEV_EP0_OUT_PKTRDY
#define USB_TXCSRL1_FLUSH
#define USB_EP_AUTO_CLEAR
void USBDevDisconnect(uint32_t ui32Base)
#define USB_TXTYPE1_SPEED_HIGH
#define USB_TXTYPE1_SPEED_M
void USBFIFOConfigSet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32FIFOAddress, uint32_t ui32FIFOSize, uint32_t ui32Flags)
void USBDevAddrSet(uint32_t ui32Base, uint32_t ui32Address)
#define USB_EP_SPEED_HIGH
#define EP_OFFSET(Endpoint)
void IntDisable(uint32_t ui32Interrupt)
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
#define USB_O_ULPIVBUSCTL
uint32_t USBIntStatusControl(uint32_t ui32Base)
void IntEnable(uint32_t ui32Interrupt)
#define USB_TXCSRL1_TXRDY
void USBHostEndpointConfig(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32MaxPayload, uint32_t ui32NAKPollInterval, uint32_t ui32TargetEndpoint, uint32_t ui32Flags)
void USBEndpointDMAConfigSet(uint32_t ui32Base, uint32_t ui32Endpoint, uint32_t ui32Config)
void USBPHYPowerOff(uint32_t ui32Base)
uint32_t USBDMAChannelIntStatus(uint32_t ui32Base)