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.
Diff: USBDevice/TARGET_Silicon_Labs/inc/em_usbtypes.h
- 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 */