usbhid.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // usbhid.h - Definitions used by HID class devices and hosts.
4 //
5 // Copyright (c) 2008-2017 Texas Instruments Incorporated. All rights reserved.
6 // Software License Agreement
7 //
8 // Texas Instruments (TI) is supplying this software for use solely and
9 // exclusively on TI's microcontroller products. The software is owned by
10 // TI and/or its suppliers, and is protected under applicable copyright
11 // laws. You may not combine this software with "viral" open-source
12 // software in order to form a larger program.
13 //
14 // THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
15 // NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
16 // NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
17 // A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
18 // CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
19 // DAMAGES, FOR ANY REASON WHATSOEVER.
20 //
21 //*****************************************************************************
22 
23 #ifndef __USBHID_H__
24 #define __USBHID_H__
25 
26 //*****************************************************************************
27 //
28 // If building with a C++ compiler, make all of the definitions in this header
29 // have a C binding.
30 //
31 //*****************************************************************************
32 #ifdef __cplusplus
33 extern "C"
34 {
35 #endif
36 
37 //*****************************************************************************
38 //
41 //
42 //*****************************************************************************
43 
44 //*****************************************************************************
45 //
46 // HID Interface descriptor Subclasses.
47 //
48 //*****************************************************************************
49 #define USB_HID_SCLASS_NONE 0x00
50 #define USB_HID_SCLASS_BOOT 0x01
51 
52 //*****************************************************************************
53 //
54 // USB Interface descriptor HID protocols.
55 //
56 //*****************************************************************************
57 #define USB_HID_PROTOCOL_NONE 0
58 #define USB_HID_PROTOCOL_KEYB 1
59 #define USB_HID_PROTOCOL_MOUSE 2
60 
61 //*****************************************************************************
62 //
63 // HID Class descriptor types.
64 //
65 //*****************************************************************************
66 #define USB_HID_DTYPE_HID 0x21
67 #define USB_HID_DTYPE_REPORT 0x22
68 #define USB_HID_DTYPE_PHYSICAL 0x23
69 
70 //*****************************************************************************
71 //
72 // HID USB requests.
73 //
74 //*****************************************************************************
75 #define USBREQ_GET_REPORT 0x01
76 #define USBREQ_GET_IDLE 0x02
77 #define USBREQ_GET_PROTOCOL 0x03
78 #define USBREQ_SET_REPORT 0x09
79 #define USBREQ_SET_IDLE 0x0a
80 #define USBREQ_SET_PROTOCOL 0x0b
81 
82 //*****************************************************************************
83 //
84 // GET_REPORT or SET_REPORT Definitions.
85 //
86 //*****************************************************************************
87 #define USB_HID_REPORT_IN 0x01
88 #define USB_HID_REPORT_OUTPUT 0x02
89 #define USB_HID_REPORT_FEATURE 0x03
90 
91 //*****************************************************************************
92 //
93 // GET_PROTOCOL or SET_PROTOCOL Definitions.
94 //
95 //*****************************************************************************
96 #define USB_HID_PROTOCOL_BOOT 0
97 #define USB_HID_PROTOCOL_REPORT 1
98 
99 //*****************************************************************************
100 //
101 // Report Values used with the Report macros.
102 //
103 //*****************************************************************************
104 #define USB_HID_GENERIC_DESKTOP 0x01
105 #define USB_HID_BUTTONS 0x09
106 #define USB_HID_X 0x30
107 #define USB_HID_Y 0x31
108 #define USB_HID_Z 0x32
109 #define USB_HID_RX 0x33
110 #define USB_HID_RY 0x34
111 #define USB_HID_RZ 0x35
112 
113 #define USB_HID_POINTER 0x01
114 #define USB_HID_MOUSE 0x02
115 #define USB_HID_JOYSTICK 0x04
116 #define USB_HID_GAME_PAD 0x05
117 #define USB_HID_KEYBOARD 0x06
118 
119 #define USB_HID_PHYSICAL 0x00
120 #define USB_HID_APPLICATION 0x01
121 #define USB_HID_LOGICAL 0x02
122 
123 #define USB_HID_USAGE_POINTER 0x0109
124 #define USB_HID_USAGE_BUTTONS 0x0509
125 #define USB_HID_USAGE_LEDS 0x0508
126 #define USB_HID_USAGE_KEYCODES 0x0507
127 
128 //*****************************************************************************
129 //
130 // HID mouse button definitions as used in the first byte of the output report
131 // used in the BIOS mouse protocol.
132 //
133 //*****************************************************************************
134 #define HID_MOUSE_BUTTON_1 0x01
135 #define HID_MOUSE_BUTTON_2 0x02
136 #define HID_MOUSE_BUTTON_3 0x04
137 
138 //*****************************************************************************
139 //
140 // HID Keyboard LED definitions as used in the first byte of the output report
141 // used in the BIOS keyboard protocol.
142 //
143 //*****************************************************************************
144 #define HID_KEYB_NUM_LOCK 0x01
145 #define HID_KEYB_CAPS_LOCK 0x02
146 #define HID_KEYB_SCROLL_LOCK 0x04
147 #define HID_KEYB_COMPOSE 0x08
148 #define HID_KEYB_KANA 0x10
149 
150 //*****************************************************************************
151 //
152 // HID Keyboard key modifiers as provided in the first byte of the input report
153 // used in the BIOS keyboard protocol.
154 //
155 //*****************************************************************************
156 #define HID_KEYB_LEFT_CTRL 0x01
157 #define HID_KEYB_LEFT_SHIFT 0x02
158 #define HID_KEYB_LEFT_ALT 0x04
159 #define HID_KEYB_LEFT_GUI 0x08
160 #define HID_KEYB_RIGHT_CTRL 0x10
161 #define HID_KEYB_RIGHT_SHIFT 0x20
162 #define HID_KEYB_RIGHT_ALT 0x40
163 #define HID_KEYB_RIGHT_GUI 0x80
164 
165 //*****************************************************************************
166 //
167 // A subset of the HID keyboard usage IDs.
168 //
169 //*****************************************************************************
170 #define HID_KEYB_USAGE_RESERVED 0x00
171 #define HID_KEYB_USAGE_ROLLOVER 0x01
172 #define HID_KEYB_USAGE_A 0x04
173 #define HID_KEYB_USAGE_B 0x05
174 #define HID_KEYB_USAGE_C 0x06
175 #define HID_KEYB_USAGE_D 0x07
176 #define HID_KEYB_USAGE_E 0x08
177 #define HID_KEYB_USAGE_F 0x09
178 #define HID_KEYB_USAGE_G 0x0A
179 #define HID_KEYB_USAGE_H 0x0B
180 #define HID_KEYB_USAGE_I 0x0C
181 #define HID_KEYB_USAGE_J 0x0D
182 #define HID_KEYB_USAGE_K 0x0E
183 #define HID_KEYB_USAGE_L 0x0F
184 #define HID_KEYB_USAGE_M 0x10
185 #define HID_KEYB_USAGE_N 0x11
186 #define HID_KEYB_USAGE_O 0x12
187 #define HID_KEYB_USAGE_P 0x13
188 #define HID_KEYB_USAGE_Q 0x14
189 #define HID_KEYB_USAGE_R 0x15
190 #define HID_KEYB_USAGE_S 0x16
191 #define HID_KEYB_USAGE_T 0x17
192 #define HID_KEYB_USAGE_U 0x18
193 #define HID_KEYB_USAGE_V 0x19
194 #define HID_KEYB_USAGE_W 0x1A
195 #define HID_KEYB_USAGE_X 0x1B
196 #define HID_KEYB_USAGE_Y 0x1C
197 #define HID_KEYB_USAGE_Z 0x1D
198 #define HID_KEYB_USAGE_1 0x1E
199 #define HID_KEYB_USAGE_2 0x1F
200 #define HID_KEYB_USAGE_3 0x20
201 #define HID_KEYB_USAGE_4 0x21
202 #define HID_KEYB_USAGE_5 0x22
203 #define HID_KEYB_USAGE_6 0x23
204 #define HID_KEYB_USAGE_7 0x24
205 #define HID_KEYB_USAGE_8 0x25
206 #define HID_KEYB_USAGE_9 0x26
207 #define HID_KEYB_USAGE_0 0x27
208 #define HID_KEYB_USAGE_ENTER 0x28
209 #define HID_KEYB_USAGE_ESCAPE 0x29
210 #define HID_KEYB_USAGE_BACKSPACE \
211  0x2A
212 #define HID_KEYB_USAGE_TAB 0x2B
213 #define HID_KEYB_USAGE_SPACE 0x2C
214 #define HID_KEYB_USAGE_MINUS 0x2D
215 #define HID_KEYB_USAGE_EQUAL 0x2E
216 #define HID_KEYB_USAGE_LBRACKET 0x2F
217 #define HID_KEYB_USAGE_RBRACKET 0x30
218 #define HID_KEYB_USAGE_BSLASH 0x31
219 #define HID_KEYB_USAGE_SEMICOLON \
220  0x33
221 #define HID_KEYB_USAGE_FQUOTE 0x34
222 #define HID_KEYB_USAGE_BQUOTE 0x35
223 #define HID_KEYB_USAGE_COMMA 0x36
224 #define HID_KEYB_USAGE_PERIOD 0x37
225 #define HID_KEYB_USAGE_FSLASH 0x38
226 #define HID_KEYB_USAGE_CAPSLOCK 0x39
227 #define HID_KEYB_USAGE_F1 0x3A
228 #define HID_KEYB_USAGE_F2 0x3B
229 #define HID_KEYB_USAGE_F3 0x3C
230 #define HID_KEYB_USAGE_F4 0x3D
231 #define HID_KEYB_USAGE_F5 0x3E
232 #define HID_KEYB_USAGE_F6 0x3F
233 #define HID_KEYB_USAGE_F7 0x40
234 #define HID_KEYB_USAGE_F8 0x41
235 #define HID_KEYB_USAGE_F9 0x42
236 #define HID_KEYB_USAGE_F10 0x43
237 #define HID_KEYB_USAGE_F11 0x44
238 #define HID_KEYB_USAGE_F12 0x45
239 #define HID_KEYB_USAGE_SCROLLOCK \
240  0x47
241 #define HID_KEYB_USAGE_PAGE_UP 0x4B
242 #define HID_KEYB_USAGE_PAGE_DOWN \
243  0x4E
244 #define HID_KEYB_USAGE_RIGHT_ARROW \
245  0x4F
246 #define HID_KEYB_USAGE_LEFT_ARROW \
247  0x50
248 #define HID_KEYB_USAGE_DOWN_ARROW \
249  0x51
250 #define HID_KEYB_USAGE_UP_ARROW 0x52
251 #define HID_KEYB_USAGE_NUMLOCK 0x53
252 #define HID_KEYB_USAGE_KEYPAD_SLASH \
253  0x54
254 #define HID_KEYB_USAGE_KEYPAD_STAR \
255  0x55
256 #define HID_KEYB_USAGE_KEYPAD_MINUS \
257  0x56
258 #define HID_KEYB_USAGE_KEYPAD_PLUS \
259  0x57
260 #define HID_KEYB_USAGE_KEPAD_ENTER \
261  0x58
262 #define HID_KEYB_USAGE_KEYPAD_1 0x59
263 #define HID_KEYB_USAGE_KEYPAD_2 0x5A
264 #define HID_KEYB_USAGE_KEYPAD_3 0x5B
265 #define HID_KEYB_USAGE_KEYPAD_4 0x5C
266 #define HID_KEYB_USAGE_KEYPAD_5 0x5D
267 #define HID_KEYB_USAGE_KEYPAD_6 0x5E
268 #define HID_KEYB_USAGE_KEYPAD_7 0x5F
269 #define HID_KEYB_USAGE_KEYPAD_8 0x60
270 #define HID_KEYB_USAGE_KEYPAD_9 0x61
271 #define HID_KEYB_USAGE_KEYPAD_0 0x62
272 #define HID_KEYB_USAGE_KEPAD_PERIOD \
273  0x63
274 
275 //*****************************************************************************
276 //
277 // HID descriptor country codes (most of these are described as "countries" in
278 // the HID specification even though they are really languages).
279 //
280 //*****************************************************************************
281 #define USB_HID_COUNTRY_NONE 0x00
282 #define USB_HID_COUNTRY_ARABIC 0x01
283 #define USB_HID_COUNTRY_BELGIAN 0x02
284 #define USB_HID_COUNTRY_CANADA_BI \
285  0x03
286 #define USB_HID_COUNTRY_CANADA_FR \
287  0x04
288 #define USB_HID_COUNTRY_CZECH_REPUBLIC \
289  0x05
290 #define USB_HID_COUNTRY_DANISH 0x06
291 #define USB_HID_COUNTRY_FINNISH 0x07
292 #define USB_HID_COUNTRY_FRENCH 0x08
293 #define USB_HID_COUNTRY_GERMAN 0x09
294 #define USB_HID_COUNTRY_GREEK 0x0A
295 #define USB_HID_COUNTRY_HEBREW 0x0B
296 #define USB_HID_COUNTRY_HUNGARY 0x0C
297 #define USB_HID_COUNTRY_INTERNATIONAL_ISO \
298  0x0D
299 #define USB_HID_COUNTRY_ITALIAN 0x0E
300 #define USB_HID_COUNTRY_JAPAN_KATAKANA \
301  0x0F
302 #define USB_HID_COUNTRY_KOREAN 0x10
303 #define USB_HID_COUNTRY_LATIN_AMERICAN \
304  0x11
305 #define USB_HID_COUNTRY_NETHERLANDS \
306  0x12
307 #define USB_HID_COUNTRY_NORWEGIAN \
308  0x13
309 #define USB_HID_COUNTRY_PERSIAN 0x14
310 #define USB_HID_COUNTRY_POLAND 0x15
311 #define USB_HID_COUNTRY_PORTUGUESE \
312  0x16
313 #define USB_HID_COUNTRY_RUSSIA 0x17
314 #define USB_HID_COUNTRY_SLOVAKIA \
315  0x18
316 #define USB_HID_COUNTRY_SPANISH 0x19
317 #define USB_HID_COUNTRY_SWEDISH 0x1A
318 #define USB_HID_COUNTRY_SWISS_FRENCH \
319  0x1B
320 #define USB_HID_COUNTRY_SWISS_GERMAN \
321  0x1C
322 #define USB_HID_COUNTRY_SWITZERLAND \
323  0x1D
324 #define USB_HID_COUNTRY_TAIWAN 0x1E
325 #define USB_HID_COUNTRY_TURKISH_Q \
326  0x1F
327 #define USB_HID_COUNTRY_UK 0x20
328 #define USB_HID_COUNTRY_US 0x21
329 #define USB_HID_COUNTRY_YUGOSLAVIA \
330  0x22
331 #define USB_HID_COUNTRY_TURKISH_F \
332  0x23
333 
334 //*****************************************************************************
335 //
336 // Data flags used in Input item tags within report descriptors.
337 //
338 //*****************************************************************************
339 #define USB_HID_INPUT_DATA 0x0000
340 #define USB_HID_INPUT_CONSTANT 0x0001
341 #define USB_HID_INPUT_ARRAY 0x0000
342 #define USB_HID_INPUT_VARIABLE 0x0002
343 #define USB_HID_INPUT_ABS 0x0000
344 #define USB_HID_INPUT_RELATIVE 0x0004
345 #define USB_HID_INPUT_NOWRAP 0x0000
346 #define USB_HID_INPUT_WRAP 0x0008
347 #define USB_HID_INPUT_LINEAR 0x0000
348 #define USB_HID_INPUT_NONLINEAR 0x0010
349 #define USB_HID_INPUT_PREFER 0x0000
350 #define USB_HID_INPUT_NONPREFER 0x0020
351 #define USB_HID_INPUT_NONULL 0x0000
352 #define USB_HID_INPUT_NULL 0x0040
353 #define USB_HID_INPUT_BITF 0x0100
354 #define USB_HID_INPUT_BYTES 0x0000
355 
356 //*****************************************************************************
357 //
358 // Data flags used in Feature item tags within report descriptors.
359 //
360 //*****************************************************************************
361 #define USB_HID_FEATURE_DATA 0x0000
362 #define USB_HID_FEATURE_CONSTANT \
363  0x0001
364 #define USB_HID_FEATURE_ARRAY 0x0000
365 #define USB_HID_FEATURE_VARIABLE \
366  0x0002
367 #define USB_HID_FEATURE_ABS 0x0000
368 #define USB_HID_FEATURE_RELATIVE \
369  0x0004
370 #define USB_HID_FEATURE_NOWRAP 0x0000
371 #define USB_HID_FEATURE_WRAP 0x0008
372 #define USB_HID_FEATURE_LINEAR 0x0000
373 #define USB_HID_FEATURE_NONLINEAR \
374  0x0010
375 #define USB_HID_FEATURE_PREFER 0x0000
376 #define USB_HID_FEATURE_NONPREFER \
377  0x0020
378 #define USB_HID_FEATURE_NONULL 0x0000
379 #define USB_HID_FEATURE_NULL 0x0040
380 #define USB_HID_FEATURE_BITF 0x0100
381 #define USB_HID_FEATURE_BYTES 0x0000
382 
383 //*****************************************************************************
384 //
385 // Data flags used in Output item tags within report descriptors.
386 //
387 //*****************************************************************************
388 #define USB_HID_OUTPUT_DATA 0x0000
389 #define USB_HID_OUTPUT_CONSTANT 0x0001
390 #define USB_HID_OUTPUT_ARRAY 0x0000
391 #define USB_HID_OUTPUT_VARIABLE 0x0002
392 #define USB_HID_OUTPUT_ABS 0x0000
393 #define USB_HID_OUTPUT_RELATIVE 0x0004
394 #define USB_HID_OUTPUT_NOWRAP 0x0000
395 #define USB_HID_OUTPUT_WRAP 0x0008
396 #define USB_HID_OUTPUT_LINEAR 0x0000
397 #define USB_HID_OUTPUT_NONLINEAR \
398  0x0010
399 #define USB_HID_OUTPUT_PREFER 0x0000
400 #define USB_HID_OUTPUT_NONPREFER \
401  0x0020
402 #define USB_HID_OUTPUT_NONULL 0x0000
403 #define USB_HID_OUTPUT_NULL 0x0040
404 #define USB_HID_OUTPUT_BITF 0x0100
405 #define USB_HID_OUTPUT_BYTES 0x0000
406 
407 //*****************************************************************************
408 //
409 // Physical descriptor bias values.
410 //
411 //*****************************************************************************
412 #define USB_HID_BIAS_NOT_APPLICABLE \
413  0x00
414 #define USB_HID_BIAS_RIGHT_HAND 0x01
415 #define USB_HID_BIAS_LEFT_HAND 0x02
416 #define USB_HID_BIAS_BOTH_HANDS 0x03
417 #define USB_HID_BIAS_EITHER_HAND \
418  0x04
419 
420 //*****************************************************************************
421 //
422 // Physical descriptor designator values.
423 //
424 //*****************************************************************************
425 #define USB_HID_DESIGNATOR_NONE 0x00
426 #define USB_HID_DESIGNATOR_HAND 0x01
427 #define USB_HID_DESIGNATOR_EYEBALL \
428  0x02
429 #define USB_HID_DESIGNATOR_EYEBROW \
430  0x03
431 #define USB_HID_DESIGNATOR_EYELID \
432  0x04
433 #define USB_HID_DESIGNATOR_EAR 0x05
434 #define USB_HID_DESIGNATOR_NOSE 0x06
435 #define USB_HID_DESIGNATOR_MOUTH \
436  0x07
437 #define USB_HID_DESIGNATOR_UPPER_LIP \
438  0x08
439 #define USB_HID_DESIGNATOR_LOWER_LIP \
440  0x09
441 #define USB_HID_DESIGNATOR_JAW 0x0A
442 #define USB_HID_DESIGNATOR_NECK 0x0B
443 #define USB_HID_DESIGNATOR_UPPER_ARM \
444  0x0C
445 #define USB_HID_DESIGNATOR_ELBOW \
446  0x0D
447 #define USB_HID_DESIGNATOR_FOREARM \
448  0x0E
449 #define USB_HID_DESIGNATOR_WRIST \
450  0x0F
451 #define USB_HID_DESIGNATOR_PALM 0x10
452 #define USB_HID_DESIGNATOR_THUMB \
453  0x11
454 #define USB_HID_DESIGNATOR_INDEX_FINGER \
455  0x12
456 #define USB_HID_DESIGNATOR_MIDDLE_FINGER \
457  0x13
458 #define USB_HID_DESIGNATOR_RING_FINGER \
459  0x14
460 #define USB_HID_DESIGNATOR_LITTLE_FINGER \
461  0x15
462 #define USB_HID_DESIGNATOR_HEAD 0x16
463 #define USB_HID_DESIGNATOR_SHOULDER \
464  0x17
465 #define USB_HID_DESIGNATOR_HIP 0x18
466 #define USB_HID_DESIGNATOR_WAIST \
467  0x19
468 #define USB_HID_DESIGNATOR_THIGH \
469  0x1A
470 #define USB_HID_DESIGNATOR_KNEE 0x1B
471 #define USB_HID_DESIGNATOR_CALF 0x1C
472 #define USB_HID_DESIGNATOR_ANKLE \
473  0x1D
474 #define USB_HID_DESIGNATOR_FOOT 0x1E
475 #define USB_HID_DESIGNATOR_HEEL 0x1F
476 #define USB_HID_DESIGNATOR_BALL_OF_FOOT \
477  0x20
478 #define USB_HID_DESIGNATOR_BIG_TOE \
479  0x21
480 #define USB_HID_DESIGNATOR_SECOND_TOE \
481  0x22
482 #define USB_HID_DESIGNATOR_THIRD_TOE \
483  0x23
484 #define USB_HID_DESIGNATOR_FOURTH_TOE \
485  0x24
486 #define USB_HID_DESIGNATOR_LITTLE_TOE \
487  0x25
488 #define USB_HID_DESIGNATOR_BROW 0x26
489 #define USB_HID_DESIGNATOR_CHEEK \
490  0x27
491 
492 //*****************************************************************************
493 //
494 // Physical descriptor qualifier values.
495 //
496 //*****************************************************************************
497 #define USB_HID_QUALIFIER_NOT_APPLICABLE \
498  (0x00 << 5)
499 #define USB_HID_QUALIFIER_RIGHT (0x01 << 5)
500 #define USB_HID_QUALIFIER_LEFT (0x02 << 5)
501 #define USB_HID_QUALIFIER_BOTH (0x03 << 5)
502 #define USB_HID_QUALIFIER_EITHER \
503  (0x04 << 5)
504 #define USB_HID_QUALIFIER_CENTER \
505  (0x05 << 5)
506 
507 //*****************************************************************************
508 //
509 // This is the maximum value for a usage code.
510 //
511 //*****************************************************************************
512 #define USBH_HID_MAX_USAGE 256
513 #define USBH_HID_CAPS_ARRAY_SZ (USBH_HID_MAX_USAGE/sizeof(uint32_t))
514 
515 //*****************************************************************************
516 //
517 // All structures defined in this section of the header require byte packing of
518 // fields. This is usually accomplished using the PACKED macro but, for IAR
519 // Embedded Workbench, this requires a pragma.
520 //
521 //*****************************************************************************
522 #ifdef __ICCARM__
523 #pragma pack(1)
524 #endif
525 
526 //*****************************************************************************
527 //
530 //
531 //*****************************************************************************
532 typedef struct
533 {
534  //
537  //
538  uint8_t bDescriptorType;
539 
540  //
542  //
544 }
545 PACKED tHIDClassDescriptorInfo;
546 
547 //*****************************************************************************
548 //
551 //
552 //*****************************************************************************
553 typedef struct
554 {
555  //
557  //
558  uint8_t bLength;
559 
560  //
563  //
564  uint8_t bDescriptorType;
565 
566  //
570  //
571  uint16_t bcdHID;
572 
573  //
577  uint8_t bCountryCode;
578 
579  //
584  //
586 
587  //
591  //
592  tHIDClassDescriptorInfo sClassDescriptor[1];
593 }
594 PACKED tHIDDescriptor;
595 
596 //*****************************************************************************
597 //
598 // Return to default packing when using the IAR Embedded Workbench compiler.
599 //
600 //*****************************************************************************
601 #ifdef __ICCARM__
602 #pragma pack()
603 #endif
604 
605 //*****************************************************************************
606 //
616 //
617 //*****************************************************************************
618 typedef struct
619 {
620  //
623  //
625 
626  //
630  //
631  uint32_t pui32CapsLock[USBH_HID_CAPS_ARRAY_SZ];
632 
633  //
637  //
639 }
641 
642 //*****************************************************************************
643 //
644 // The US Keyboard mapping used by USB keyboard usage ID to character mapping.
645 //
646 //*****************************************************************************
648 
649 //*****************************************************************************
650 //
651 // Close the Doxygen group.
653 //
654 //*****************************************************************************
655 
656 //*****************************************************************************
657 //
658 // Mark the end of the C bindings section for C++ compilers.
659 //
660 //*****************************************************************************
661 #ifdef __cplusplus
662 }
663 #endif
664 
665 #endif // __USBHID_H__
const tHIDKeyboardUsageTable g_sUSKeyboardMap
Definition: usbkeyboardmap.c:120
uint16_t bcdHID
Definition: usbhid.h:571
uint8_t bNumDescriptors
Definition: usbhid.h:585
uint8_t bCountryCode
Definition: usbhid.h:577
uint16_t wDescriptorLength
The total length of the HID class descriptor.
Definition: usbhid.h:543
void * pvCharMapping
Definition: usbhid.h:638
Definition: usbhid.h:618
uint8_t ui8BytesPerChar
Definition: usbhid.h:624
#define USBH_HID_CAPS_ARRAY_SZ
Definition: usbhid.h:513
USB_CDC_GET/SET_LINE_CODING request-specific data.
Definition: usbaudio.h:288
Copyright 2017, Texas Instruments Incorporated