| /****************************************************************************** |
| * |
| * Copyright (C) 2001-2012 Broadcom Corporation |
| * |
| * 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. |
| * |
| ******************************************************************************/ |
| |
| /****************************************************************************** |
| * |
| * This file contains usb definitions from Widcomm's Universal Embedded |
| * Drivers API. |
| * |
| ******************************************************************************/ |
| |
| #ifndef UUSB_H |
| #define UUSB_H |
| |
| #include "bt_target.h" |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| |
| /******************************************************************************* |
| ** Codec APIs |
| *******************************************************************************/ |
| |
| |
| /**** Status ****/ |
| #define UUSB_SUCCESS 0 |
| #define UUSB_DRV_INVALID_PARM 1 // Invalid parameter(s) passed to Driver |
| #define UUSB_DRV_INVALID_STATE 2 // Driver is not in correct state to accept |
| #define UUSB_DRV_UNSUPPORTED_SETUP_REQ 3 // Unsupported SETUP request (use with tUSER_EP0_SETUP_CB) |
| #define UUSB_DRV_NO_BUFFER_AVAILABLE 4 // User cannot provide a Buffer (use with CB functions) |
| |
| typedef UINT8 tUUSB_STATUS; |
| |
| |
| #define UUSB_EP1 0 |
| #define UUSB_EP2 1 |
| #define UUSB_EP3 2 |
| #define UUSB_EP4 3 |
| #define UUSB_EP5 4 |
| #define UUSB_EP6 5 |
| #define UUSB_EP7 6 |
| |
| typedef UINT8 tUUSB_EP_ID; |
| |
| typedef enum { |
| UUSB_EP_TYPE_CONTROL = 0, |
| UUSB_EP_TYPE_ISOCHRONOUS, |
| UUSB_EP_TYPE_BULK, |
| UUSB_EP_TYPE_INTERRUPT |
| } tUUSB_EP_TYPE; |
| |
| typedef enum { |
| UUSB_DIR_OUT = 0, |
| UUSB_DIR_IN |
| } tUUSB_EP_DIRECTION; |
| |
| typedef struct tUUSB_SETUP_PKTTag |
| { |
| /* Definition of "USBbmRequestType" */ |
| #define UUSB_DATA_PHASE_DIR 0x80 /* Mask to get data phase transfer direction */ |
| #define UUSB_HOST_TO_DEVICE 0x00 /* Data transfer directions */ |
| #define UUSB_DEVICE_TO_HOST 0x80 /* Data transfer directions */ |
| /* Types of requests */ |
| #define UUSB_REQUEST_TYPE 0x60 /* Mask to get request type */ |
| #define UUSB_STANDARD_REQUEST 0x00 /* Standard request */ |
| #define UUSB_CLASS_REQUEST 0x20 /* Class request */ |
| #define UUSB_VENDOR_REQUEST 0x40 /* Vendor request */ |
| UINT8 bmRequestType; |
| UINT8 bRequest; |
| UINT16 wValue; |
| UINT16 wIndex; |
| UINT16 wLength; |
| } tUUSB_SETUP_PKT; |
| |
| typedef union |
| { |
| #define UUSB_HEAD_SIZE (8) |
| UINT8 HeadBytes[UUSB_HEAD_SIZE]; |
| tUUSB_SETUP_PKT Setup; |
| } tSETUP_OR_HEAD; |
| |
| typedef struct |
| { |
| UINT8 BufSize; |
| UINT8 NumBytesInBuf; |
| tSETUP_OR_HEAD Buf; |
| } tUUSB_RX_HEAD; |
| |
| typedef enum |
| { |
| UUSB_EP_DISABLE, |
| UUSB_EP_ENABLE, |
| UUSB_EP_STALL |
| } tUUSB_EP_STATE; |
| |
| typedef UINT8 tEndPoint; |
| |
| #if 0 |
| #define UUSB_ATTACHED 0 |
| #define UUSB_POWERED 1 |
| #define UUSB_DEFAULT 2 |
| #define UUSB_ADDRESS 3 |
| #define UUSB_CONFIGURED 4 |
| #define UUSB_SUSPENDED 5 |
| |
| typedef UINT8 tUUSB_BUS_STATE; |
| #else |
| typedef enum |
| { |
| UUSB_ATTACHED, |
| UUSB_POWERED, |
| UUSB_DEFAULT, |
| UUSB_ADDRESS, |
| UUSB_CONFIGURED, |
| UUSB_SUSPENDED |
| } tUUSB_BUS_STATE; |
| #endif |
| |
| typedef enum _tUUSB_STANDART_REQ |
| { |
| UUSB_GET_STATUS = 0, |
| UUSB_CLEAR_FEATURE, |
| UUSB_RESERVED1, |
| UUSB_SET_FEATURE, |
| UUSB_RESERVED2, |
| UUSB_SET_ADDRESS, |
| UUSB_GET_DESCRIPTOR, |
| UUSB_SET_DESCRIPTOR, |
| UUSB_GET_CONFIGURATION, |
| UUSB_SET_CONFIGURATION, |
| UUSB_GET_INTERFACE, |
| UUSB_SET_INTERFACE, |
| UUSB_TOTAL_sREQUEST, /* Total number of Standard request */ |
| UUSB_SYNCH_FRAME = 12 |
| } tUUSB_STANDART_REQ; |
| |
| |
| typedef void (*tUUSB_STATE_CB) (tUUSB_BUS_STATE State); |
| typedef void (*tUUSB_PROT_COMPLETE_CB ) (UINT8 *pBuf,UINT16 NumBytesInBuf); |
| |
| typedef tUUSB_STATUS (*tUUSB_PROT_SETUP_CB ) (UINT8 **ppBuf,UINT16 *pBufSize); |
| |
| typedef void (*tUUSB_RX_START_CB ) (tUUSB_EP_ID EndPoint, |
| UINT8 **ppBuf, |
| UINT16 *pBufSize); |
| |
| typedef void (*tUUSB_RX_COMPLETE_CB ) (tUUSB_EP_ID EndPoint, |
| UINT8 *pRxBuf, |
| UINT16 NumBytesInBuf); |
| |
| typedef void (*tUUSB_TX_COMPLETE_CB ) (tUUSB_EP_ID EndPoint, |
| UINT8 *pRxBuf); |
| /******************************************************************************* |
| ** Function Prototypes |
| *******************************************************************************/ |
| |
| /****************************************************************************** |
| ** |
| ** Function UCODEC_Init |
| ** |
| ** Description Startup initialisation function. This function is called |
| ** before any orther function of UUSB it initialize UUSB |
| ** internal structure an the external hw. |
| ** |
| ** Input : |
| ** |
| ** Output Parameters : |
| ** |
| ** Returns UUSB_SUCCESS if The action was performed with sucess. |
| ** Error code else. |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_Init (tUUSB_PROT_SETUP_CB userProtSetupCallBack, |
| tUUSB_PROT_COMPLETE_CB userProtCompleteCallBack, |
| tUUSB_RX_START_CB userRxStartCallBack, |
| tUUSB_STATE_CB userStateCallBack, |
| tUUSB_TX_COMPLETE_CB userTxCompleteCallBack, |
| tUUSB_RX_COMPLETE_CB userRxCompleteCallBack); |
| |
| |
| |
| |
| /****************************************************************************** |
| ** |
| ** Function UUSB_Start |
| ** |
| ** Description |
| ** |
| ** |
| ** |
| ** |
| ** |
| ** Returns UUSB_SUCCESS if The action was performed with sucess. |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_Start (void); |
| |
| /****************************************************************************** |
| ** |
| ** Function UUSB_Stop |
| ** |
| ** Description |
| ** |
| ** |
| ** |
| ** |
| ** Returns UUSB_SUCCESS if The action was performed with sucess. |
| ** Error code else. |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_Stop (void); |
| |
| /****************************************************************************** |
| ** |
| ** Function UUSB_SetEndPointCnf |
| ** |
| ** Description |
| ** |
| ** |
| ** Returns |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_SetEndPointCnf ( BOOLEAN IsIN_EndPoint, |
| tUUSB_EP_ID EndPoint, |
| UINT8 MaxPacketSize, |
| tUUSB_EP_TYPE EndPointType, |
| tUUSB_RX_HEAD *pRxHead, |
| UINT16 RxTimeOut); |
| |
| |
| /****************************************************************************** |
| ** |
| ** Function UUSB_SetEndPointState |
| ** |
| ** Description |
| ** |
| ** |
| ** Returns |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_SetEndPointState (tUUSB_EP_ID EndPoint, |
| tUUSB_EP_STATE EndPointState); |
| |
| /****************************************************************************** |
| ** |
| ** Function UUSB_WriteEndPoint |
| ** |
| ** Description |
| ** |
| ** |
| ** Returns |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_WriteEndPoint (tUUSB_EP_ID EndPoint, |
| UINT16 Length, |
| UINT8* pBuf); |
| |
| /****************************************************************************** |
| ** |
| ** Function UUSB_GenerateRemoteWakeUp |
| ** |
| ** Description |
| ** |
| ** |
| ** Returns |
| ** |
| ******************************************************************************/ |
| BT_API extern tUUSB_STATUS UUSB_GenerateRemoteWakeUp (void); |
| |
| #ifdef __cplusplus |
| }; |
| #endif |
| |
| |
| #endif /* UUSB_H */ |