em_usbxpress_internal.h File Reference
Primary header file. Contains internal global declarations and definitions.
- Version
 - 5.4.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_internal.h
       
       .
      
       #include <stdint.h>
      
      
       #include <stdbool.h>
      
      
       #include "
       
        em_usb.h
       
       "
      
      
         Macros | 
       |
| #define | APIEA_GIE 0x01 | 
| #define | APIEA_GIE_TEMP 0x02 | 
| #define | SI_CP210X_GET_PART_NUMBER 0x370B | 
| 
         Value.
          | 
       |
| #define | SI_CP210X_REQUEST 0xFF | 
| 
         Request.
          | 
       |
| #define | SI_USBXPRESS_CLEAR_TO_SEND 0x0002 | 
| 
         Value.
          | 
       |
| #define | SI_USBXPRESS_FLUSH_BUFFERS 0x0001 | 
| 
         Value.
          | 
       |
| #define | SI_USBXPRESS_GET_VERSION 0x0008 | 
| 
         Value.
          | 
       |
| #define | SI_USBXPRESS_NOT_CLEAR_TO_SEND 0x0004 | 
| 
         Value.
          | 
       |
| #define | SI_USBXPRESS_PART_NUMBER_EFM32 0x81 | 
| 
         EFM32 USBXpress Part Number.
          | 
       |
| #define | SI_USBXPRESS_PART_NUMBER_EFM8 0x80 | 
| 
         EFM8 USBXpress Part Number.
          | 
       |
| #define | SI_USBXPRESS_REQUEST 0x02 | 
| 
         Request.
          | 
       |
| #define | USBXCORE_MAXLEN 19 | 
| #define | USBXPRESS_LIBRARY_VERSION 0x0500 | 
         Functions | 
       |
| void | USBX_DeviceStateChangeCb ( USBD_State_TypeDef oldState, USBD_State_TypeDef newState) | 
| 
         USB device state change call-back.
          | 
       |
| int | USBX_inXferCompleteCb ( USB_Status_TypeDef , uint16_t, uint16_t remaining) | 
| 
         USBXpress IN Endpoint Transfer Complete Callback.
          | 
       |
| void | USBX_jumpCallback (void) | 
| 
         Conditionally jumps to the user call-back routine.
          | 
       |
| int | USBX_outXferCompleteCb ( USB_Status_TypeDef , uint16_t, 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.
          | 
       |
| void | USBXCORE_Read (uint8_t *, uint8_t *, uint8_t) | 
| void | USBXCORE_resetState (void) | 
| 
         Resets internal USBXpress variables.
          | 
       |
| void | USBXCORE_Write (uint8_t *, uint8_t *, uint8_t) | 
         Variables | 
       |
| uint32_t | USBXCORE_apiEa | 
| 
         Enable or disable status of USB_API interrupts.
          | 
       |
| uint32_t | USBXCORE_apiIntValue | 
| 
         Byte holding the current USB_API interrupts.
          | 
       |
| uint32_t * | USBXCORE_byteCountInPtr | 
| 
         Pointer to variable holding number of bytes written.
          | 
       |
| uint32_t * | USBXCORE_byteCountOutPtr | 
| 
         Pointer to variable holding number of bytes read.
          | 
       |
| uint8_t | USBXCORE_configDesc [32] | 
| 
         Copy of configuration descriptor.
          | 
       |
| uint32_t | USBXCORE_readSize | 
| 
         Number of bytes sent to
         
          USBX_blockRead()
         
         as numBytes.
          | 
       |
| uint32_t | USBXCORE_writeSize | 
| 
         Number of bytes sent to
         
          USBX_blockWrite()
         
         as numBytes.
          | 
       |
Macro Definition Documentation
| #define APIEA_GIE 0x01 | 
API Global Interrupt Enable
        Definition at line
        
         38
        
        of file
        
         em_usbxpress_internal.h
        
        .
       
Referenced by USBX_apiCallbackDisable() , USBX_apiCallbackEnable() , USBX_DeviceStateChangeCb() , USBX_inXferCompleteCb() , USBX_outXferCompleteCb() , USBX_ResetCb() , and USBX_SetupCmdCb() .
| #define APIEA_GIE_TEMP 0x02 | 
Temporary storage of API GIE bit when internally disabled
        Definition at line
        
         41
        
        of file
        
         em_usbxpress_internal.h
        
        .
       
Referenced by USBX_SetupCmdCb() .
| #define USBXCORE_MAXLEN 19 | 
Maximum length of array passed by USBXCORE_Read/Write
        Definition at line
        
         47
        
        of file
        
         em_usbxpress_internal.h
        
        .
       
| #define USBXPRESS_LIBRARY_VERSION 0x0500 | 
USBXpress firmware library version Example: 0x0241 => v2.41
        Definition at line
        
         31
        
        of file
        
         em_usbxpress_internal.h
        
        .
       
Referenced by USBX_getLibraryVersion() .
Function Documentation
| 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() .
| void USBX_jumpCallback | ( | void | 
           
           
           | 
          ) | 
Conditionally jumps to the user call-back routine.
If the user call-back routine is already in progress, this function does nothing. Otherwise, this function jumps to the call-back defined via USBX_callbackEnable().
        Definition at line
        
         254
        
        of file
        
         em_usbxpress.c
        
        .
       
Referenced by USBX_DeviceStateChangeCb() , USBX_inXferCompleteCb() , USBX_outXferCompleteCb() , USBX_ResetCb() , and USBX_SetupCmdCb() .
| 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() .
| void USBXCORE_resetState | ( | void | 
           
           
           | 
          ) | 
Resets internal USBXpress variables.
This function resets the internal USBXpress variables. It should be called after a cancel-type event (USBXpress Close, USB de-configure, FIFO flush, etc.).
        Definition at line
        
         266
        
        of file
        
         em_usbxpress.c
        
        .
       
References USBXCORE_rxOverflowPacketAvailable , and USBXCORE_zlpActive .
Referenced by USBX_DeviceStateChangeCb() , USBX_ResetCb() , and USBX_SetupCmdCb() .