USB device stack

Dependents:   mbed-mX-USB-TEST1 USBMSD_SD_HID_HelloWorld HidTest MIDI_usb_bridge ... more

Legacy Warning

This is an mbed 2 library. To learn more about mbed OS 5, visit the docs.

Pull requests against this repository are no longer supported. Please raise against mbed OS 5 as documented above.

Revision:
71:53949e6131f6
Parent:
70:2c525a50f1b6
--- a/USBDevice/TARGET_Silicon_Labs/inc/em_usbtypes.h	Thu Jul 20 10:14:36 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-/***************************************************************************//**
- * @file em_usbtypes.h
- * @brief USB protocol stack library, internal type definitions.
- * @version 3.20.14
- *******************************************************************************
- * @section License
- * <b>(C) Copyright 2014 Silicon Labs, http://www.silabs.com</b>
- *******************************************************************************
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************/
-
-#ifndef __EM_USBTYPES_H
-#define __EM_USBTYPES_H
-
-#include "em_device.h"
-#if defined( USB_PRESENT ) && ( USB_COUNT == 1 )
-#include "em_usb.h"
-#if defined( USB_DEVICE ) || defined( USB_HOST )
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */
-
-/* Limits imposed by the USB peripheral */
-#define NP_RX_QUE_DEPTH       8
-#define HP_RX_QUE_DEPTH       8
-#define MAX_XFER_LEN          524287L         /* 2^19 - 1 bytes             */
-#define MAX_PACKETS_PR_XFER   1023            /* 2^10 - 1 packets           */
-#if defined( _USB_DIEPTXF6_MASK )
-  #define MAX_NUM_TX_FIFOS      6             /* In addition to EP0 Tx FIFO */
-  #define MAX_NUM_IN_EPS        6             /* In addition to EP0         */
-  #define MAX_NUM_OUT_EPS       6             /* In addition to EP0         */
-  #define MAX_DEVICE_FIFO_SIZE_INWORDS 512U
-#else
-  #define MAX_NUM_TX_FIFOS      3             /* In addition to EP0 Tx FIFO */
-  #define MAX_NUM_IN_EPS        3             /* In addition to EP0         */
-  #define MAX_NUM_OUT_EPS       3             /* In addition to EP0         */
-  #define MAX_DEVICE_FIFO_SIZE_INWORDS 384U
-#endif
-#define MIN_EP_FIFO_SIZE_INWORDS  16U         /* Unit is words (32bit)      */
-#define MIN_EP_FIFO_SIZE_INBYTES  64U         /* Unit is bytes (8bit)       */
-
-/* For MCU's without USB host capability. */
-#if !defined( USB_ROUTE_VBUSENPEN )
-#define USB_VBUS_SWITCH_NOT_PRESENT
-#endif
-
-/* Limit imposed by the USB standard */
-#define MAX_USB_EP_NUM      15
-
-#if defined( USB_DEVICE )
-  /* Check power saving modes. */
-  #ifndef USB_PWRSAVE_MODE
-    /* Default powersave-mode is OFF. */
-    #define USB_PWRSAVE_MODE  USB_PWRSAVE_MODE_OFF
-  #else
-    #if ( USB_PWRSAVE_MODE                                               &  \
-          ~( USB_PWRSAVE_MODE_ONSUSPEND | USB_PWRSAVE_MODE_ONVBUSOFF |      \
-             USB_PWRSAVE_MODE_ENTEREM2                                 )    )
-      #error "Illegal USB powersave mode."
-    #endif
-  #endif /* ifndef USB_PWRSAVE_MODE */
-
-  /* Check power saving low frequency clock selection. */
-  #ifndef USB_USBC_32kHz_CLK
-    /* Default clock source is LFXO. */
-    #define USB_USBC_32kHz_CLK USB_USBC_32kHz_CLK_LFXO
-  #else
-    #if ( ( USB_USBC_32kHz_CLK != USB_USBC_32kHz_CLK_LFXO  ) &&  \
-          ( USB_USBC_32kHz_CLK != USB_USBC_32kHz_CLK_LFRCO )     )
-      #error "Illegal USB 32kHz powersave clock selection."
-    #endif
-  #endif /* ifndef USB_USBC_32kHz_CLK */
-#endif /* defined( USB_DEVICE ) */
-
-#if defined( USB_HOST )
-  /* Check VBUS overcurrent definitions. */
-  #ifndef USB_VBUSOVRCUR_PORT
-    #define USB_VBUSOVRCUR_PORT       gpioPortE
-    #define USB_VBUSOVRCUR_PIN        2
-    #define USB_VBUSOVRCUR_POLARITY   USB_VBUSOVRCUR_POLARITY_LOW
-  #endif
-#endif
-
-/* Developer mode debugging macro's */
-#if defined( DEBUG_USB_INT_LO )
-  #define DEBUG_USB_INT_LO_PUTS( s )    USB_PUTS( s )
-  #define DEBUG_USB_INT_LO_PUTCHAR( c ) USB_PUTCHAR( c )
-#else
-  #define DEBUG_USB_INT_LO_PUTS( s )
-  #define DEBUG_USB_INT_LO_PUTCHAR( c )
-#endif /* defined( DEBUG_USB_INT_LO ) */
-
-#if defined( DEBUG_USB_INT_HI )
-  #define DEBUG_USB_INT_HI_PUTS( s )    USB_PUTS( s )
-  #define DEBUG_USB_INT_HI_PUTCHAR( c ) USB_PUTCHAR( c )
-#else
-  #define DEBUG_USB_INT_HI_PUTS( s )
-  #define DEBUG_USB_INT_HI_PUTCHAR( c )
-#endif /* defined( DEBUG_USB_INT_HI ) */
-
-#if defined( USB_HOST )
-  #if defined( NUM_APP_TIMERS )
-    #define HOSTPORT_TIMER_INDEX  (NUM_APP_TIMERS)
-  #else
-    #define HOSTPORT_TIMER_INDEX  (0)
-  #endif
-  #define HOSTCH_TIMER_INDEX      (HOSTPORT_TIMER_INDEX + 1 )
-#endif
-
-/* Macros for selecting a hardware timer. */
-#define USB_TIMER0 0
-#define USB_TIMER1 1
-#define USB_TIMER2 2
-#define USB_TIMER3 3
-
-#if defined( USB_HOST )
-#define HCS_NAK       0x01
-#define HCS_STALL     0x02
-#define HCS_XACT      0x04
-#define HCS_TGLERR    0x08
-#define HCS_BABBLE    0x10
-#define HCS_TIMEOUT   0x20
-#define HCS_COMPLETED 0x40
-#define HCS_RETRY     0x80
-#endif
-
-#if defined( USB_DEVICE )
-typedef enum
-{
-  D_EP_IDLE          = 0,
-  D_EP_TRANSMITTING  = 1,
-  D_EP_RECEIVING     = 2,
-  D_EP0_IN_STATUS    = 3,
-  D_EP0_OUT_STATUS   = 4
-} USBD_EpState_TypeDef;
-
-typedef struct
-{
-  bool                        in;
-  uint8_t                     zlp;
-  uint8_t                     num;
-  uint8_t                     addr;
-  uint8_t                     type;
-  uint8_t                     txFifoNum;
-  uint8_t                     *buf;
-  uint16_t                    packetSize;
-  uint16_t                    mask;
-  uint32_t                    remaining;
-  uint32_t                    xferred;
-  uint32_t                    hwXferSize;
-  uint32_t                    fifoSize;
-  USBD_EpState_TypeDef        state;
-  USB_XferCompleteCb_TypeDef  xferCompleteCb;
-} USBD_Ep_TypeDef;
-
-typedef struct
-{
-  USB_Setup_TypeDef                     *setup;
-  USB_Setup_TypeDef                     setupPkt[3];
-  uint8_t                               configurationValue; /* Must be DWORD aligned */
-  bool                                  remoteWakeupEnabled;
-  uint8_t                               numberOfStrings;
-  uint8_t                               numberOfInterfaces;
-  USBD_State_TypeDef                    state;
-  USBD_State_TypeDef                    savedState;
-  USBD_State_TypeDef                    lastState;
-  const USB_DeviceDescriptor_TypeDef    *deviceDescriptor;
-  const USB_ConfigurationDescriptor_TypeDef *configDescriptor;
-  const void * const                    *stringDescriptors;
-  const USBD_Callbacks_TypeDef          *callbacks;
-  USBD_Ep_TypeDef                       ep[ NUM_EP_USED + 1 ];
-  uint8_t                               inEpAddr2EpIndex[  MAX_USB_EP_NUM + 1 ];
-  uint8_t                               outEpAddr2EpIndex[ MAX_USB_EP_NUM + 1 ];
-  uint32_t                              ep0MpsCode;
-} USBD_Device_TypeDef;
-#endif /* defined( USB_DEVICE ) */
-
-#if defined( USB_HOST )
-typedef enum
-{
-  H_PORT_DISCONNECTED         = 0,
-  H_PORT_CONNECTED_DEBOUNCING = 1,
-  H_PORT_CONNECTED_RESETTING  = 2,
-  H_PORT_CONNECTED            = 3,
-  H_PORT_OVERCURRENT          = 4
-} USBH_PortState_TypeDef;
-
-typedef struct
-{
-  int   debounceTime;
-  int   resetTime;
-} USBH_AttachTiming_TypeDef;
-
-typedef struct
-{
-  uint8_t                 *buf;
-  int                     errorCnt;
-  uint32_t                remaining;
-  uint32_t                xferred;
-  uint32_t                hwXferSize;
-  uint8_t                 status;
-  bool                    idle;
-  USBH_Ep_TypeDef         *ep;
-} USBH_Hc_TypeDef;
-#endif /* defined( USB_HOST ) */
-
-/** @endcond */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* defined( USB_DEVICE ) || defined( USB_HOST ) */
-#endif /* defined( USB_PRESENT ) && ( USB_COUNT == 1 ) */
-#endif /* __EM_USBTYPES_H */