1
+ // usb_def.h
2
+ // Copyright (c) 2017 Sugioka Y.
3
+ // This file is released under the MIT License.
4
+ // http://opensource.org/licenses/mit-license.php
5
+
6
+ #ifndef __USB_DEF_H
7
+ #define __USB_DEF_H
8
+
9
+ #ifndef NULL
10
+ #define NULL 0
11
+ #endif
12
+
13
+ #ifndef LOBYTE
14
+ #define LOBYTE (x ) (x & 0xFF)
15
+ #endif
16
+
17
+ #ifndef HIBYTE
18
+ #define HIBYTE (x ) ((x >> 8) & 0xFF)
19
+ #endif
20
+
21
+ #ifndef MIN
22
+ #define MIN (x ,y ) (x <= y ? x : y)
23
+ #endif
24
+
25
+ #define DEVICE_DSCR 0x01
26
+ #define CONFIGURATION_DSCR 0x02
27
+ #define STRING_DSCR 0x03
28
+ #define INTERFACE_DSCR 0x04
29
+ #define ENDPOINT_DSCR 0x05
30
+ #define DEVICE_QUALIFIER_DSCR 0x06
31
+ #define OTHER_SPEED_CONFIGURATION_DSCR 0x07
32
+
33
+ #define EP_TYPE_CONTROL 0
34
+ #define EP_TYPE_ISOCHRONOUS 1
35
+ #define EP_TYPE_BULK 2
36
+ #define EP_TYPE_INTERRUPT 3
37
+
38
+ #define USB_REQ_TYPE_STANDARD (0<<5)
39
+ #define USB_REQ_TYPE_CLASS (1<<5)
40
+ #define USB_REQ_TYPE_VENDOR (2<<5)
41
+ #define USB_REQ_TYPE_DEVICE 0
42
+ #define USB_REQ_TYPE_INTERFACE 1
43
+ #define USB_REQ_TYPE_ENDPOINT 2
44
+ #define USB_REQ_STD_SET_ADDRESS 0x05
45
+ #define USB_REQ_STD_GET_DESCRIPTOR 0x06
46
+ #define USB_REQ_STD_SET_DESCRIPTOR 0x07
47
+ #define USB_REQ_STD_CLEAR_FEATURE 0x01
48
+ #define USB_REQ_STD_SET_FEATURE 0x03
49
+ #define USB_REQ_STD_GET_CONFIGURATION 0x08
50
+ #define USB_REQ_STD_SET_CONFIGURATION 0x09
51
+ #define USB_REQ_STD_GET_INTERFACE 0x0A
52
+ #define USB_REQ_STD_SET_INTERFACE 0x0B
53
+ #define USB_REQ_STD_GET_STATUS 0x00
54
+ #define USB_REQ_STD_SYNCH_FRAME 0x0C
55
+
56
+ #define USB_REQ_STD_GD_DEVICE 0x01
57
+ #define USB_REQ_STD_GD_CONFIGURATION 0x02
58
+ #define USB_REQ_STD_GD_STRING 0x03
59
+ #define USB_REQ_STD_GD_DEVICE_QUALIFIER 0x06
60
+ #define USB_REQ_STD_GD_OTHER_SPEED_CONFIGURATION 0x07
61
+
62
+ #define USB_REQ_STD_FT_REMOTEWAKEUP 0x02
63
+
64
+ //Class request
65
+ #define USB_REQ_CLASS_SET_CUR 0x01
66
+ #define USB_REQ_CLASS_GET_CUR 0x81
67
+
68
+ #endif
0 commit comments