1/****************************************************************************** 2 * 3 * Copyright (C) 2001-2012 Broadcom Corporation 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at: 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 ******************************************************************************/ 18 19/****************************************************************************** 20 * 21 * This file contains serial definitions from WIDCOMM's Universal Embedded 22 * Drivers API. 23 * 24 ******************************************************************************/ 25 26#ifndef USB_H 27#define USB_H 28 29/******************************************************************************* 30** Serial APIs 31*******************************************************************************/ 32 33/**** port IDs ****/ 34#define USB_PORT_1 0 35#define USB_PORT_2 1 36#define USB_PORT_3 2 37#define USB_PORT_4 3 38 39typedef UINT8 tUSB_PORT; 40 41/**** baud rates ****/ 42#define USB_BAUD_300 0 43#define USB_BAUD_600 1 44#define USB_BAUD_1200 2 45#define USB_BAUD_2400 3 46#define USB_BAUD_9600 4 47#define USB_BAUD_19200 5 48#define USB_BAUD_57600 6 49#define USB_BAUD_115200 7 50#define USB_BAUD_230400 8 51#define USB_BAUD_460800 9 52#define USB_BAUD_921600 10 53#define USB_BAUD_AUTO 11 54 55/**** Data Format ****/ 56 57/* Stop Bits */ 58#define USB_STOPBITS_1 1 59#define USB_STOPBITS_1_5 (1<<1) 60#define USB_STOPBITS_2 (1<<2) 61 62/* Parity Bits */ 63#define USB_PARITY_NONE (1<<3) 64#define USB_PARITY_EVEN (1<<4) 65#define USB_PARITY_ODD (1<<5) 66 67/* Data Bits */ 68#define USB_DATABITS_5 (1<<6) 69#define USB_DATABITS_6 (1<<7) 70#define USB_DATABITS_7 (1<<8) 71#define USB_DATABITS_8 (1<<9) 72 73 74/**** Flow Control ****/ 75#define USB_FC_NONE 0 76#define USB_FC_HW 1 77#define USB_FC_SW 2 78 79/**** Data Buffering Mechanism ****/ 80#define USB_BUF_BYTE 0 81#define USB_BUF_GKI 1 82 83/**** Signals ****/ 84#define USB_SIG_RTSCTS 1 85#define USB_SIG_DSRDTR (1<<1) 86#define USB_SIG_RI (1<<2) 87#define USB_SIG_CD (1<<3) 88#define USB_SIG_DTE_DEVICE (1<<4) 89 90/**** Errors *****/ 91#define USB_ERR_OVERRUN 1 92#define USB_ERR_PARITY (1<<1) 93#define USB_ERR_FRAMING (1<<2) 94#define USB_ERR_BREAK (1<<3) 95 96/**** Serial Operations ****/ 97#define USB_OP_FLUSH 0 98#define USB_OP_FLUSH_RX 1 99#define USB_OP_FLUSH_TX 2 100#define USB_OP_BREAK_OFF 3 101#define USB_OP_BREAK_ON 4 102#define USB_OP_BAUD_RD 5 103#define USB_OP_BAUD_WR 6 104#define USB_OP_FMT_RD 7 105#define USB_OP_FMT_WR 8 106#define USB_OP_SIG_RD 9 107#define USB_OP_SIG_WR 10 108#define USB_OP_FC_RD 11 109#define USB_OP_FC_WR 12 110 111typedef UINT8 tUSB_OP; 112 113 114/**** Serial feature types ****/ 115#define USB_FEAT_PORT_1 0 116#define USB_FEAT_PORT_2 1 117#define USB_FEAT_PORT_3 2 118#define USB_FEAT_PORT_4 3 119#define USB_FEAT_BAUD_AUTO 4 120#define USB_FEAT_BAUD_300 5 121#define USB_FEAT_BAUD_600 6 122#define USB_FEAT_BAUD_1200 7 123#define USB_FEAT_BAUD_2400 8 124#define USB_FEAT_BAUD_9600 9 125#define USB_FEAT_BAUD_19200 10 126#define USB_FEAT_BAUD_57600 11 127#define USB_FEAT_BAUD_115200 12 128#define USB_FEAT_BAUD_230400 13 129#define USB_FEAT_BAUD_460800 14 130#define USB_FEAT_BAUD_921600 15 131#define USB_FEAT_STOPBITS_1 16 132#define USB_FEAT_STOPBITS_1_5 17 133#define USB_FEAT_STOPBITS_2 18 134#define USB_FEAT_PARITY_NONE 19 135#define USB_FEAT_PARITY_EVEN 20 136#define USB_FEAT_PARITY_ODD 21 137#define USB_FEAT_DATABITS_5 22 138#define USB_FEAT_DATABITS_6 23 139#define USB_FEAT_DATABITS_7 24 140#define USB_FEAT_DATABITS_8 25 141#define USB_FEAT_FC_NONE 26 142#define USB_FEAT_FC_HW 27 143#define USB_FEAT_FC_SW 28 144#define USB_FEAT_BUF_BYTE 29 145#define USB_FEAT_BUF_GKI 30 146#define USB_FEAT_SIG_RTS 31 147#define USB_FEAT_SIG_CTS 32 148#define USB_FEAT_SIG_DSR 33 149#define USB_FEAT_SIG_DTR 34 150#define USB_FEAT_SIG_RI 35 151#define USB_FEAT_SIG_CD 36 152#define USB_FEAT_OP_FLUSH 37 153#define USB_FEAT_OP_FLUSH_RX 38 154#define USB_FEAT_OP_FLUSH_TX 39 155#define USB_FEAT_OP_BREAK 40 156#define USB_FEAT_OP_BAUD_RD 41 157#define USB_FEAT_OP_BAUD_WR 42 158#define USB_FEAT_OP_FMT_RD 43 159#define USB_FEAT_OP_FMT_WR 44 160#define USB_FEAT_OP_SIG_RD 45 161#define USB_FEAT_OP_SIG_WR 46 162#define USB_FEAT_OP_FC_RD 47 163#define USB_FEAT_OP_FC_WR 48 164 165typedef UINT8 tUSB_FEATURE; 166 167 168/**** Event types ****/ 169#define USB_RX_READY_EVT 0 170#define USB_TX_DONE_EVT 1 171#define USB_SIG_EVT 2 172#define USB_ERR_EVT 3 173 174typedef UINT8 tUSB_EVT; 175 176 177/* Structure used to configure serial port during open */ 178typedef struct 179{ 180 UINT16 fmt; /* Data format */ 181 UINT8 baud; /* Baud rate */ 182 UINT8 fc; /* Flow control */ 183 UINT8 buf; /* Data buffering mechanism */ 184 UINT8 pool; /* GKI buffer pool for received data */ 185 UINT16 size; /* Size of GKI buffer pool */ 186 UINT16 offset; /* Offset in GKI buffer pool */ 187} tUSB_OPEN_CFG; 188 189/* Union used to pass ioctl arguments */ 190typedef union 191{ 192 UINT16 fmt; 193 UINT8 baud; 194 UINT8 fc; 195 UINT8 sigs; 196} tUSB_IOCTL_DATA; 197 198 199/* Union to pass event data */ 200typedef union 201{ 202 UINT8 sigs; 203 UINT8 error; 204} tUSB_EVT_DATA; 205 206/* callback for events */ 207typedef void (tUSB_CBACK)(tUSB_PORT, tUSB_EVT, tUSB_EVT_DATA *); 208 209 210/******************************************************************************* 211** Function Prototypes 212*******************************************************************************/ 213 214#ifdef __cplusplus 215extern "C" { 216#endif 217 218UDRV_API extern void USB_Init(void *); 219UDRV_API extern void USB_Open(tUSB_PORT, tUSB_OPEN_CFG *, tUSB_CBACK *); 220UDRV_API extern void USB_ReadBuf(tUSB_PORT, BT_HDR **); 221UDRV_API extern UINT16 USB_Read(tUSB_PORT, UINT8 *, UINT16); 222UDRV_API extern BOOLEAN USB_WriteBuf(tUSB_PORT, BT_HDR *); 223UDRV_API extern UINT16 USB_Write(tUSB_PORT, UINT8 *, UINT16); 224UDRV_API extern void USB_Ioctl(tUSB_PORT, tUSB_OP, tUSB_IOCTL_DATA *); 225UDRV_API extern void USB_Close(tUSB_PORT); 226UDRV_API extern BOOLEAN USB_Feature(tUSB_FEATURE); 227 228#ifdef __cplusplus 229} 230#endif 231 232#endif /* USB_H */ 233