29 #ifndef __USB_CORE_H__ 30 #define __USB_CORE_H__ 52 #define USB_OTG_EP0_IDLE 0 53 #define USB_OTG_EP0_SETUP 1 54 #define USB_OTG_EP0_DATA_IN 2 55 #define USB_OTG_EP0_DATA_OUT 3 56 #define USB_OTG_EP0_STATUS_IN 4 57 #define USB_OTG_EP0_STATUS_OUT 5 58 #define USB_OTG_EP0_STALL 6 60 #define USB_OTG_EP_TX_DIS 0x0000 61 #define USB_OTG_EP_TX_STALL 0x0010 62 #define USB_OTG_EP_TX_NAK 0x0020 63 #define USB_OTG_EP_TX_VALID 0x0030 65 #define USB_OTG_EP_RX_DIS 0x0000 66 #define USB_OTG_EP_RX_STALL 0x1000 67 #define USB_OTG_EP_RX_NAK 0x2000 68 #define USB_OTG_EP_RX_VALID 0x3000 72 #define MAX_DATA_LENGTH 0x200 191 uint8_t *(*GetDeviceDescriptor)( uint8_t
speed , uint16_t *length);
192 uint8_t *(*GetLangIDStrDescriptor)( uint8_t
speed , uint16_t *length);
193 uint8_t *(*GetManufacturerStrDescriptor)( uint8_t
speed , uint16_t *length);
194 uint8_t *(*GetProductStrDescriptor)( uint8_t
speed , uint16_t *length);
195 uint8_t *(*GetSerialStrDescriptor)( uint8_t
speed , uint16_t *length);
196 uint8_t *(*GetConfigurationStrDescriptor)( uint8_t
speed , uint16_t *length);
197 uint8_t *(*GetInterfaceStrDescriptor)( uint8_t
speed , uint16_t *length);
212 uint8_t (*Init) (
void *pdev , uint8_t cfgidx);
213 uint8_t (*DeInit) (
void *pdev , uint8_t cfgidx);
216 uint8_t (*EP0_TxSent) (
void *pdev );
217 uint8_t (*EP0_RxReady) (
void *pdev );
219 uint8_t (*DataIn) (
void *pdev , uint8_t epnum);
220 uint8_t (*DataOut) (
void *pdev , uint8_t epnum);
221 uint8_t (*SOF) (
void *pdev);
222 uint8_t (*IsoINIncomplete) (
void *pdev);
223 uint8_t (*IsoOUTIncomplete) (
void *pdev);
225 uint8_t *(*GetConfigDescriptor)( uint8_t
speed , uint16_t *length);
226 #ifdef USB_OTG_HS_CORE 227 uint8_t *(*GetOtherConfigDescriptor)( uint8_t
speed , uint16_t *length);
230 #ifdef USB_SUPPORT_USER_STRING_DESC 231 uint8_t *(*GetUsrStrDescriptor)( uint8_t
speed ,uint8_t index, uint16_t *length);
242 void (*DeviceConfigured)(void);
243 void (*DeviceSuspended)(void);
244 void (*DeviceResumed)(void);
246 void (*DeviceConnected)(void);
247 void (*DeviceDisconnected)(void);
264 uint8_t setup_packet [8*3];
300 #ifdef USE_DEVICE_MODE 378 #ifdef USE_DEVICE_MODE struct _Device_TypeDef * pUSBD_DEVICE
uint8_t * pConfig_descriptor
struct USB_OTG_hc USB_OTG_HC
USB_OTG_STS USB_OTG_PhyInit(USB_OTG_CORE_HANDLE *pdev)
void USB_OTG_InitDevSpeed(USB_OTG_CORE_HANDLE *pdev, uint8_t speed)
USB_OTG_InitDevSpeed :Initializes the DevSpd field of DCFG register depending the PHY type and the en...
struct USB_OTG_ep USB_OTG_EP
USB_OTG_STS USB_OTG_SetCurrentMode(USB_OTG_CORE_HANDLE *pdev, uint8_t mode)
USB_OTG_SetCurrentMode : Set ID line.
void USB_OTG_SetEPStatus(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep, uint32_t Status)
Set the EP Status.
USB_OTG_STS USB_OTG_CoreInitDev(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_CoreInitDev : Initializes the USB_OTG controller registers for device mode.
uint32_t USB_OTG_ReadDevAllInEPItr(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_ReadDevAllInEPItr : Get int status register.
enum USB_OTG_SPEED USB_OTG_GetDeviceSpeed(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_GetDeviceSpeed Get the device speed from the device status register.
uint32_t USB_OTG_GetEPStatus(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
returns the EP Status
#define USB_OTG_MAX_TX_FIFOS
USB_OTG_STS USB_OTG_DisableGlobalInt(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_DisableGlobalInt Enables the controller's Global Int in the AHB Config reg.
USB_OTG_STS USB_OTG_EnableDevInt(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_EnableDevInt : Enables the Device mode interrupts.
void USB_OTG_ActiveRemoteWakeup(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_RemoteWakeup : active remote wakeup signalling.
struct USB_OTG_hc * PUSB_OTG_HC
struct _HCD * USB_OTG_USBH_PDEV
USB_OTG_STS USB_OTG_FlushRxFifo(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_FlushRxFifo : Flush a Rx FIFO.
USB_OTG_STS USB_OTG_SelectCore(USB_OTG_CORE_HANDLE *pdev, const USB_OTG_CORE_ID_TypeDef coreID)
USB_OTG_SelectCore Initialize core registers address.
uint32_t USB_OTG_ReadDevOutEP_itr(USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
USB_OTG_ReadDevOutEP_itr : returns Device OUT EP Interrupt register.
USB_OTG_STS USB_OTG_EP0Activate(USB_OTG_CORE_HANDLE *pdev)
enables EP0 OUT to receive SETUP packets and configures EP0 for transmitting packets ...
uint8_t USBH_IsEvenFrame(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_STS USB_OTG_WritePacket(USB_OTG_CORE_HANDLE *pdev, const uint8_t *src, uint8_t ch_ep_num, uint16_t len)
USB_OTG_WritePacket : Writes a packet into the Tx FIFO associated with the EP.
uint8_t device_old_status
USB_OTG_STS USB_OTG_EPClearStall(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
Clear the EP STALL.
USB_OTG_STS USB_OTG_FlushTxFifo(USB_OTG_CORE_HANDLE *pdev, uint32_t num)
USB_OTG_FlushTxFifo : Flush a Tx FIFO.
void USB_OTG_UngateClock(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_UngateClock : active USB Core clock.
struct USB_OTG_core_cfg * PUSB_OTG_CORE_CFGS
USB_OTG_STS USB_OTG_EPStartXfer(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
USB_OTG_EPStartXfer : Handle the setup for data xfer for an EP and starts the xfer.
void * USB_OTG_ReadPacket(USB_OTG_CORE_HANDLE *pdev, uint8_t *dest, uint16_t len)
USB_OTG_ReadPacket : Reads a packet from the Rx FIFO.
uint32_t USB_OTG_GetMode(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_GetMode : Get current mode.
uint8_t connection_status
const USBD_DEVICE * usr_device
uint32_t USB_OTG_ReadOtgItr(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_ReadOtgItr : returns the USB_OTG Interrupt register.
struct _USBD_USR_PROP USBD_Usr_cb_TypeDef
uint32_t USB_OTG_ReadCoreItr(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_ReadCoreItr : returns the Core Interrupt register.
struct USB_OTG_handle USB_OTG_CORE_HANDLE
struct _Device_TypeDef USBD_DEVICE
USB_OTG_STS USB_OTG_EnableGlobalInt(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_EnableGlobalInt Enables the controller's Global Int in the AHB Config reg.
Header of the Core Layer.
struct USB_OTG_core_cfg USB_OTG_CORE_CFGS
USB_OTG_STS USB_OTG_EPDeactivate(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
USB_OTG_EPDeactivate : Deactivates an EP.
USB_OTG_STS USB_OTG_EP0StartXfer(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
USB_OTG_EP0StartXfer : Handle the setup for a data xfer for EP0 and starts the xfer.
USB_OTG_STS USB_OTG_EPSetStall(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
USB_OTG_EPSetStall : Set the EP STALL.
const USBD_Class_cb_TypeDef * class_cb
General low level driver configuration.
struct _Device_cb USBD_Class_cb_TypeDef
const USBD_Usr_cb_TypeDef * usr_cb
void USB_OTG_StopDevice(USB_OTG_CORE_HANDLE *pdev)
Stop the device and clean up fifo's.
uint8_t USB_OTG_IsDeviceMode(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_IsDeviceMode : Check if it is device mode.
uint32_t USB_OTG_ReadDevAllOutEp_itr(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_ReadDevAllOutEp_itr : returns OUT endpoint interrupt bits.
uint8_t USB_OTG_IsHostMode(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_IsHostMode : Check if it is host mode.
struct USB_OTG_ep * PUSB_OTG_EP
struct usb_setup_req USB_SETUP_REQ
struct USB_OTG_handle * PUSB_OTG_CORE_HANDLE
struct _OTG * USB_OTG_USBO_PDEV
USB_OTG_STS USB_OTG_CoreInit(USB_OTG_CORE_HANDLE *pdev)
USB_OTG_CoreInit Initializes the USB_OTG controller registers and prepares the core device mode or ho...
USB_OTG_STS USB_OTG_EPActivate(USB_OTG_CORE_HANDLE *pdev, USB_OTG_EP *ep)
USB_OTG_EPActivate : Activates an EP.
void USB_OTG_EP0_OutStart(USB_OTG_CORE_HANDLE *pdev)
configures EPO to receive SETUP packets