version 4.1.0 from http://fpga4u.epfl.ch/wiki/FX2
[fx2fw-sdcc] / fx2 / usb_requests.h
1 /* -*- c++ -*- */\r
2 \r
3 /*-----------------------------------------------------------------------------\r
4 \r
5  * USB request definitions\r
6 \r
7  *-----------------------------------------------------------------------------\r
8 \r
9  * Code taken from USRP2 firmware (GNU Radio Project), version 3.0.2,\r
10 \r
11  * Copyright 2003 Free Software Foundation, Inc.\r
12 \r
13  *-----------------------------------------------------------------------------\r
14 \r
15  * This code is part of usbjtag. usbjtag is free software; you can redistribute\r
16 \r
17  * it and/or modify it under the terms of the GNU General Public License as\r
18 \r
19  * published by the Free Software Foundation; either version 2 of the License,\r
20 \r
21  * or (at your option) any later version. usbjtag is distributed in the hope\r
22 \r
23  * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied\r
24 \r
25  * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
26 \r
27  * GNU General Public License for more details.  You should have received a\r
28 \r
29  * copy of the GNU General Public License along with this program in the file\r
30 \r
31  * COPYING; if not, write to the Free Software Foundation, Inc., 51 Franklin\r
32 \r
33  * St, Fifth Floor, Boston, MA  02110-1301  USA\r
34 \r
35  *-----------------------------------------------------------------------------\r
36 \r
37  */\r
38 \r
39 \r
40 \r
41 // Standard USB requests.\r
42 \r
43 // These are contained in end point 0 setup packets\r
44 \r
45 \r
46 \r
47 \r
48 \r
49 #ifndef _USB_REQUESTS_H_\r
50 \r
51 #define _USB_REQUESTS_H_\r
52 \r
53 \r
54 \r
55 // format of bmRequestType byte\r
56 \r
57 \r
58 \r
59 #define bmRT_DIR_MASK           (0x1 << 7)\r
60 \r
61 #define bmRT_DIR_IN             (1 << 7)\r
62 \r
63 #define bmRT_DIR_OUT            (0 << 7)\r
64 \r
65 \r
66 \r
67 #define bmRT_TYPE_MASK          (0x3 << 5)\r
68 \r
69 #define bmRT_TYPE_STD           (0 << 5)\r
70 \r
71 #define bmRT_TYPE_CLASS         (1 << 5)\r
72 \r
73 #define bmRT_TYPE_VENDOR        (2 << 5)\r
74 \r
75 #define bmRT_TYPE_RESERVED      (3 << 5)\r
76 \r
77 \r
78 \r
79 #define bmRT_RECIP_MASK         (0x1f << 0)\r
80 \r
81 #define bmRT_RECIP_DEVICE       (0 << 0)\r
82 \r
83 #define bmRT_RECIP_INTERFACE    (1 << 0)\r
84 \r
85 #define bmRT_RECIP_ENDPOINT     (2 << 0)\r
86 \r
87 #define bmRT_RECIP_OTHER        (3 << 0)\r
88 \r
89 \r
90 \r
91 \r
92 \r
93 // standard request codes (bRequest)\r
94 \r
95 \r
96 \r
97 #define RQ_GET_STATUS           0\r
98 \r
99 #define RQ_CLEAR_FEATURE        1\r
100 \r
101 #define RQ_RESERVED_2           2\r
102 \r
103 #define RQ_SET_FEATURE          3\r
104 \r
105 #define RQ_RESERVED_4           4\r
106 \r
107 #define RQ_SET_ADDRESS          5\r
108 \r
109 #define RQ_GET_DESCR            6\r
110 \r
111 #define RQ_SET_DESCR            7\r
112 \r
113 #define RQ_GET_CONFIG           8\r
114 \r
115 #define RQ_SET_CONFIG           9\r
116 \r
117 #define RQ_GET_INTERFACE       10\r
118 \r
119 #define RQ_SET_INTERFACE       11\r
120 \r
121 #define RQ_SYNCH_FRAME         12\r
122 \r
123 \r
124 \r
125 // standard descriptor types\r
126 \r
127 \r
128 \r
129 #define DT_DEVICE               1\r
130 \r
131 #define DT_CONFIG               2\r
132 \r
133 #define DT_STRING               3\r
134 \r
135 #define DT_INTERFACE            4\r
136 \r
137 #define DT_ENDPOINT             5\r
138 \r
139 #define DT_DEVQUAL              6\r
140 \r
141 #define DT_OTHER_SPEED          7\r
142 \r
143 #define DT_INTERFACE_POWER      8\r
144 \r
145 \r
146 \r
147 // standard feature selectors\r
148 \r
149 \r
150 \r
151 #define FS_ENDPOINT_HALT        0       // recip: endpoint\r
152 \r
153 #define FS_DEV_REMOTE_WAKEUP    1       // recip: device\r
154 \r
155 #define FS_TEST_MODE            2       // recip: device\r
156 \r
157 \r
158 \r
159 // Get Status device attributes\r
160 \r
161 \r
162 \r
163 #define bmGSDA_SELF_POWERED     0x01\r
164 \r
165 #define bmGSDA_REM_WAKEUP       0x02\r
166 \r
167 \r
168 \r
169 \r
170 \r
171 #endif /* _USB_REQUESTS_H_ */\r
172 \r