usb.h revision e29968cf3e053557a9c2efc5a7a42d0767c51d9d
145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/******************************************************************************* 245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Name: usb.h 345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** 445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Description: 545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** 6e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu** This file contains serial definitions from WIDCOMM's Universal Embedded 745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Drivers API. 845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** 945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Copyright (c) 2001-2004, WIDCOMM Inc., All Rights Reserved. 1045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** WIDCOMM Bluetooth Core. Proprietary and confidential. 1145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*******************************************************************************/ 1245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 1345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifndef USB_H 1445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_H 1545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 1645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/******************************************************************************* 1745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Serial APIs 1845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*******************************************************************************/ 1945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 2045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** port IDs ****/ 2145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_1 0 2245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_2 1 2345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_3 2 2445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PORT_4 3 2545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 2645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_PORT; 2745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 2845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** baud rates ****/ 2945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_300 0 3045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_600 1 3145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_1200 2 3245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_2400 3 3345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_9600 4 3445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_19200 5 3545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_57600 6 3645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_115200 7 3745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_230400 8 3845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_460800 9 3945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_921600 10 4045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BAUD_AUTO 11 4145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 4245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Data Format ****/ 4345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 4445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Stop Bits */ 4545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_STOPBITS_1 1 4645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_STOPBITS_1_5 (1<<1) 4745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_STOPBITS_2 (1<<2) 4845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 4945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Parity Bits */ 5045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PARITY_NONE (1<<3) 5145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PARITY_EVEN (1<<4) 5245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_PARITY_ODD (1<<5) 5345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 5445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Data Bits */ 5545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_5 (1<<6) 5645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_6 (1<<7) 5745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_7 (1<<8) 5845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_DATABITS_8 (1<<9) 5945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 6045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 6145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Flow Control ****/ 6245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FC_NONE 0 6345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FC_HW 1 6445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FC_SW 2 6545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 6645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Data Buffering Mechanism ****/ 6745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BUF_BYTE 0 6845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_BUF_GKI 1 6945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 7045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Signals ****/ 7145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_RTSCTS 1 7245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_DSRDTR (1<<1) 7345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_RI (1<<2) 7445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_CD (1<<3) 7545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_DTE_DEVICE (1<<4) 7645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 7745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Errors *****/ 78e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_OVERRUN 1 79e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_PARITY (1<<1) 80e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_FRAMING (1<<2) 81e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chu#define USB_ERR_BREAK (1<<3) 8245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 8345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Serial Operations ****/ 8445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FLUSH 0 8545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FLUSH_RX 1 8645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FLUSH_TX 2 8745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BREAK_OFF 3 8845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BREAK_ON 4 8945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BAUD_RD 5 9045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_BAUD_WR 6 9145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FMT_RD 7 9245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FMT_WR 8 9345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_SIG_RD 9 9445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_SIG_WR 10 9545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FC_RD 11 9645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_OP_FC_WR 12 9745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 9845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_OP; 9945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 10045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 10145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Serial feature types ****/ 10245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_1 0 10345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_2 1 10445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_3 2 10545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PORT_4 3 10645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_AUTO 4 10745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_300 5 10845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_600 6 10945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_1200 7 11045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_2400 8 11145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_9600 9 11245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_19200 10 11345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_57600 11 11445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_115200 12 11545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_230400 13 11645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_460800 14 11745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BAUD_921600 15 11845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_STOPBITS_1 16 11945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_STOPBITS_1_5 17 12045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_STOPBITS_2 18 12145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PARITY_NONE 19 12245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PARITY_EVEN 20 12345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_PARITY_ODD 21 12445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_5 22 12545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_6 23 12645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_7 24 12745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_DATABITS_8 25 12845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_FC_NONE 26 12945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_FC_HW 27 13045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_FC_SW 28 13145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BUF_BYTE 29 13245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_BUF_GKI 30 13345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_RTS 31 13445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_CTS 32 13545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_DSR 33 13645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_DTR 34 13745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_RI 35 13845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_SIG_CD 36 13945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FLUSH 37 14045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FLUSH_RX 38 14145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FLUSH_TX 39 14245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_BREAK 40 14345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_BAUD_RD 41 14445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_BAUD_WR 42 14545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FMT_RD 43 14645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FMT_WR 44 14745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_SIG_RD 45 14845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_SIG_WR 46 14945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FC_RD 47 15045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_FEAT_OP_FC_WR 48 15145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 15245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_FEATURE; 15345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 15445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 15545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/**** Event types ****/ 15645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_RX_READY_EVT 0 15745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_TX_DONE_EVT 1 15845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_SIG_EVT 2 15945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#define USB_ERR_EVT 3 16045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 16145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef UINT8 tUSB_EVT; 16245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 16345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 16445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Structure used to configure serial port during open */ 165e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chutypedef struct 16645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{ 16745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 fmt; /* Data format */ 16845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 baud; /* Baud rate */ 16945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 fc; /* Flow control */ 17045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 buf; /* Data buffering mechanism */ 17145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 pool; /* GKI buffer pool for received data */ 17245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 size; /* Size of GKI buffer pool */ 17345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 offset; /* Offset in GKI buffer pool */ 17445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tUSB_OPEN_CFG; 17545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 17645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Union used to pass ioctl arguments */ 177e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chutypedef union 17845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{ 17945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT16 fmt; 18045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 baud; 18145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 fc; 18245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 sigs; 18345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tUSB_IOCTL_DATA; 18445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 18545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 18645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* Union to pass event data */ 187e29968cf3e053557a9c2efc5a7a42d0767c51d9dEvan Chutypedef union 18845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu{ 18945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 sigs; 19045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu UINT8 error; 19145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} tUSB_EVT_DATA; 19245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 19345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/* callback for events */ 19445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chutypedef void (tUSB_CBACK)(tUSB_PORT, tUSB_EVT, tUSB_EVT_DATA *); 19545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 19645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 19745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu/******************************************************************************* 19845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu** Function Prototypes 19945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu*******************************************************************************/ 20045faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 20145faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifdef __cplusplus 20245faad0ff5deeb0c676356345d99398cc4ab695aEvan Chuextern "C" { 20345faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif 20445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 20545faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Init(void *); 20645faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Open(tUSB_PORT, tUSB_OPEN_CFG *, tUSB_CBACK *); 20745faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_ReadBuf(tUSB_PORT, BT_HDR **); 20845faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern UINT16 USB_Read(tUSB_PORT, UINT8 *, UINT16); 20945faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern BOOLEAN USB_WriteBuf(tUSB_PORT, BT_HDR *); 21045faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern UINT16 USB_Write(tUSB_PORT, UINT8 *, UINT16); 21145faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Ioctl(tUSB_PORT, tUSB_OP, tUSB_IOCTL_DATA *); 21245faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern void USB_Close(tUSB_PORT); 21345faad0ff5deeb0c676356345d99398cc4ab695aEvan ChuUDRV_API extern BOOLEAN USB_Feature(tUSB_FEATURE); 21445faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 21545faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#ifdef __cplusplus 21645faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu} 21745faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif 21845faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu 21945faad0ff5deeb0c676356345d99398cc4ab695aEvan Chu#endif /* USB_H */ 220