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