1b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/****************************************************************************** 2b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 3b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Copyright (C) 2001-2012 Broadcom Corporation 4b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 5b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Licensed under the Apache License, Version 2.0 (the "License"); 6b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * you may not use this file except in compliance with the License. 7b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * You may obtain a copy of the License at: 8b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 9b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * http://www.apache.org/licenses/LICENSE-2.0 10b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 11b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Unless required by applicable law or agreed to in writing, software 12b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * distributed under the License is distributed on an "AS IS" BASIS, 13b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * See the License for the specific language governing permissions and 15b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * limitations under the License. 16b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 17b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/ 18b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu 19b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu/****************************************************************************** 20b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 21b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * This file contains serial definitions from WIDCOMM's Universal Embedded 22b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * Drivers API. 23b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu * 24b58ba0e89a3767e6174c42d3e90540d1eae10f81Evan Chu ******************************************************************************/ 2545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 2645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef USB_H 2745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_H 2845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 2945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/******************************************************************************* 3045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Serial APIs 3145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*******************************************************************************/ 3245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 3345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** port IDs ****/ 3445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_1 0 3545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_2 1 3645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_3 2 3745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_4 3 3845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 3945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_PORT; 4045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 4145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** baud rates ****/ 4245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_300 0 4345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_600 1 4445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_1200 2 4545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_2400 3 4645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_9600 4 4745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_19200 5 4845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_57600 6 4945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_115200 7 5045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_230400 8 5145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_460800 9 5245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_921600 10 5345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_AUTO 11 5445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 5545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Data Format ****/ 5645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 5745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Stop Bits */ 5845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_STOPBITS_1 1 5945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_STOPBITS_1_5 (1<<1) 6045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_STOPBITS_2 (1<<2) 6145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 6245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Parity Bits */ 6345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PARITY_NONE (1<<3) 6445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PARITY_EVEN (1<<4) 6545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PARITY_ODD (1<<5) 6645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 6745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Data Bits */ 6845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_5 (1<<6) 6945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_6 (1<<7) 7045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_7 (1<<8) 7145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_8 (1<<9) 7245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 7345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 7445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Flow Control ****/ 7545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FC_NONE 0 7645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FC_HW 1 7745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FC_SW 2 7845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 7945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Data Buffering Mechanism ****/ 8045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BUF_BYTE 0 8145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BUF_GKI 1 8245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 8345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Signals ****/ 8445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_RTSCTS 1 8545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_DSRDTR (1<<1) 8645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_RI (1<<2) 8745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_CD (1<<3) 8845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_DTE_DEVICE (1<<4) 8945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 9045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Errors *****/ 91e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_OVERRUN 1 92e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_PARITY (1<<1) 93e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_FRAMING (1<<2) 94e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_BREAK (1<<3) 9545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 9645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Serial Operations ****/ 9745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FLUSH 0 9845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FLUSH_RX 1 9945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FLUSH_TX 2 10045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BREAK_OFF 3 10145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BREAK_ON 4 10245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BAUD_RD 5 10345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BAUD_WR 6 10445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FMT_RD 7 10545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FMT_WR 8 10645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_SIG_RD 9 10745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_SIG_WR 10 10845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FC_RD 11 10945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FC_WR 12 11045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 11145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_OP; 11245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 11345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 11445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Serial feature types ****/ 11545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_1 0 11645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_2 1 11745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_3 2 11845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_4 3 11945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_AUTO 4 12045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_300 5 12145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_600 6 12245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_1200 7 12345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_2400 8 12445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_9600 9 12545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_19200 10 12645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_57600 11 12745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_115200 12 12845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_230400 13 12945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_460800 14 13045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_921600 15 13145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_STOPBITS_1 16 13245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_STOPBITS_1_5 17 13345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_STOPBITS_2 18 13445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PARITY_NONE 19 13545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PARITY_EVEN 20 13645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PARITY_ODD 21 13745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_5 22 13845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_6 23 13945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_7 24 14045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_8 25 14145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_FC_NONE 26 14245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_FC_HW 27 14345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_FC_SW 28 14445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BUF_BYTE 29 14545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BUF_GKI 30 14645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_RTS 31 14745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_CTS 32 14845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_DSR 33 14945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_DTR 34 15045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_RI 35 15145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_CD 36 15245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FLUSH 37 15345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FLUSH_RX 38 15445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FLUSH_TX 39 15545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_BREAK 40 15645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_BAUD_RD 41 15745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_BAUD_WR 42 15845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FMT_RD 43 15945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FMT_WR 44 16045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_SIG_RD 45 16145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_SIG_WR 46 16245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FC_RD 47 16345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FC_WR 48 16445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 16545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_FEATURE; 16645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 16745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 16845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Event types ****/ 16945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_RX_READY_EVT 0 17045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_TX_DONE_EVT 1 17145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_EVT 2 17245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_ERR_EVT 3 17345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 17445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_EVT; 17545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 17645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 17745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Structure used to configure serial port during open */ 178e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chutypedef struct 17945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{ 18045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 fmt; /* Data format */ 18145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 baud; /* Baud rate */ 18245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 fc; /* Flow control */ 18345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 buf; /* Data buffering mechanism */ 18445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 pool; /* GKI buffer pool for received data */ 18545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 size; /* Size of GKI buffer pool */ 18645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 offset; /* Offset in GKI buffer pool */ 18745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tUSB_OPEN_CFG; 18845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 18945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Union used to pass ioctl arguments */ 190e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chutypedef union 19145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{ 19245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 fmt; 19345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 baud; 19445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 fc; 19545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 sigs; 19645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tUSB_IOCTL_DATA; 19745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 19845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 19945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Union to pass event data */ 200e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chutypedef union 20145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{ 20245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 sigs; 20345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 error; 20445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tUSB_EVT_DATA; 20545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 20645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* callback for events */ 20745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef void (tUSB_CBACK)(tUSB_PORT, tUSB_EVT, tUSB_EVT_DATA *); 20845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 20945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 21045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/******************************************************************************* 21145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Function Prototypes 21245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*******************************************************************************/ 21345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 21445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifdef __cplusplus 21545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chuextern "C" { 21645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif 21745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 21845faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Init(void *); 21945faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Open(tUSB_PORT, tUSB_OPEN_CFG *, tUSB_CBACK *); 22045faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_ReadBuf(tUSB_PORT, BT_HDR **); 22145faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern UINT16 USB_Read(tUSB_PORT, UINT8 *, UINT16); 22245faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern BOOLEAN USB_WriteBuf(tUSB_PORT, BT_HDR *); 22345faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern UINT16 USB_Write(tUSB_PORT, UINT8 *, UINT16); 22445faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Ioctl(tUSB_PORT, tUSB_OP, tUSB_IOCTL_DATA *); 22545faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Close(tUSB_PORT); 22645faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern BOOLEAN USB_Feature(tUSB_FEATURE); 22745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 22845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifdef __cplusplus 22945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} 23045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif 23145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 23245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif /* USB_H */ 233