em_usbxpress_callback.c File Reference

Contains call-back functions from the EFM32 USB Library.

Version
5.6.0

License

Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com

This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file em_usbxpress_callback.c.

#include <stddef.h>
#include "em_usbxpress_internal.h"
#include "em_usbxpress_descriptors.h"
#include "em_usbxpress.h"

Functions

static uint8_t usbxpressPartNumber SL_ATTRIBUTE_ALIGN (4)
 USBXpress Part Number.
 
void USBX_DeviceStateChangeCb (USBD_State_TypeDef oldState, USBD_State_TypeDef newState)
 USB device state change call-back.
 
int USBX_inXferCompleteCb (USB_Status_TypeDef status, uint16_t xferred, uint16_t remaining)
 USBXpress IN Endpoint Transfer Complete Callback.
 
int USBX_outXferCompleteCb (USB_Status_TypeDef status, uint16_t xferred, uint16_t remaining)
 USBXpress OUT Endpoint Transfer Complete Callback.
 
void USBX_ResetCb (void)
 USB Reset call-back.
 
int USBX_SetupCmdCb (const USB_Setup_TypeDef *setup)
 USB setup command call-back.
 

Variables

uint8_t USBXCORE_overflowBuffer []
 
bool USBXCORE_rxOverflowPacketAvailable
 Boolean indicating if data was received while expecting a ZLP.
 
uint32_t USBXCORE_rxOverflowPacketSize
 Size of Rx Overflow Packet.
 
bool USBXCORE_zlpActive
 Boolean indicating whether a ZLP read is active.
 

Function Documentation

static uint8_t usbxpressPartNumber SL_ATTRIBUTE_ALIGN ( )
static

USBXpress Part Number.

USBXpress Library Version.

void USBX_DeviceStateChangeCb ( USBD_State_TypeDef  oldState,
USBD_State_TypeDef  newState 
)

USB device state change call-back.

Set new state and jump to user API call-back.

Definition at line 71 of file em_usbxpress_callback.c.

References APIEA_GIE, USBD_STATE_CONFIGURED, USBD_STATE_SUSPENDED, USBX_DEV_CONFIGURED, USBX_DEV_SUSPEND, USBX_jumpCallback(), USBXCORE_apiEa, USBXCORE_apiIntValue, and USBXCORE_resetState().

Referenced by USBX_init().

int USBX_inXferCompleteCb ( USB_Status_TypeDef  status,
uint16_t  xferred,
uint16_t  remaining 
)

USBXpress IN Endpoint Transfer Complete Callback.

Gets the number of IN bytes transferred and passes them to the user API call-back.

Definition at line 242 of file em_usbxpress_callback.c.

References APIEA_GIE, USB_FS_BULK_EP_MAXSIZE, USB_STATUS_OK, USBD_Write(), USBX_jumpCallback(), USBX_TX_COMPLETE, USBXCORE_apiEa, USBXCORE_apiIntValue, USBXCORE_byteCountInPtr, and USBXCORE_writeSize.

Referenced by USBX_blockWrite().

int USBX_outXferCompleteCb ( USB_Status_TypeDef  status,
uint16_t  xferred,
uint16_t  remaining 
)

USBXpress OUT Endpoint Transfer Complete Callback.

Gets the number of OUT bytes transferred and passes them to the user API call-back.

Definition at line 282 of file em_usbxpress_callback.c.

References APIEA_GIE, USB_STATUS_OK, USBD_Read(), USBX_jumpCallback(), USBX_RX_COMPLETE, USBX_RX_OVERRUN, USBXCORE_apiEa, USBXCORE_apiIntValue, USBXCORE_byteCountOutPtr, and USBXCORE_readSize.

Referenced by USBX_blockRead().

void USBX_ResetCb ( void  )

USB Reset call-back.

Jump to user API RESET call-back.

Definition at line 54 of file em_usbxpress_callback.c.

References APIEA_GIE, USBX_jumpCallback(), USBX_RESET, USBXCORE_apiEa, USBXCORE_apiIntValue, and USBXCORE_resetState().

Referenced by USBX_init().

int USBX_SetupCmdCb ( const USB_Setup_TypeDef setup)

USB setup command call-back.

If the setup command is a vendor request, pass to the USB command request parsing routine and acknowledge. Otherwise ignore the request.

Definition at line 101 of file em_usbxpress_callback.c.

References APIEA_GIE, APIEA_GIE_TEMP, USB_Setup_TypeDef::bmRequestType, USB_Setup_TypeDef::bRequest, EXT_COMP_DESC_SIZE, EXT_COMP_VENDOR_CODE, FEATURE_EXTENDED_COMPATIBILITY_ID, FEATURE_EXTENDED_PROPERTIES_ID, GET_DESCRIPTOR, PROPERTIES_DESCRIPTOR_SIZE, SI_CP210X_GET_PART_NUMBER, SI_CP210X_REQUEST, SI_USBXPRESS_CLEAR_TO_SEND, SI_USBXPRESS_FLUSH_BUFFERS, SI_USBXPRESS_GET_VERSION, SI_USBXPRESS_NOT_CLEAR_TO_SEND, SI_USBXPRESS_REQUEST, USB_Setup_TypeDef::Type, USB_SETUP_DIR_D2H, USB_SETUP_RECIPIENT_DEVICE, USB_SETUP_RECIPIENT_INTERFACE, USB_SETUP_TYPE_STANDARD, USB_SETUP_TYPE_VENDOR, USB_SETUP_TYPE_VENDOR_MASK, USB_STATUS_OK, USB_STATUS_REQ_UNHANDLED, USB_STRING_DESCRIPTOR, USBD_AbortTransfer(), USBD_Write(), USBX_DEV_CLOSE, USBX_DEV_OPEN, USBX_FIFO_PURGE, USBX_jumpCallback(), USBXCORE_apiEa, USBXCORE_apiIntValue, USBXCORE_resetState(), USB_Setup_TypeDef::wIndex, USB_Setup_TypeDef::wLength, and USB_Setup_TypeDef::wValue.

Referenced by USBX_init().