Table of Contents
Table of Contents
Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Revision Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 General Purpose Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Function Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 USB Chapter 9 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4 USB Buffer and Ring Buffer APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3 Device Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.2 API choices for USB devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3 Audio Device Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4 Audio Device Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.5 Bulk Device Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.6 Bulk Device Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.7 CDC Device Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.8 CDC Device Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.9 Composite Device Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.10 Composite Device Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.11 Device Firmware Upgrade Device Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.12 Device Firmware Upgrade Device Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . 119
3.13 HID Device Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
3.14 HID Device Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.15 HID Mouse Device Class API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.16 HID Mouse Device Class API Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
3.17 HID Keyboard Device Class API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
3.18 HID Keyboard Device Class API Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
3.19 Mass Storage Device Class API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
3.20 Mass Storage Device Class API Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
3.21 Using the USB Device API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
3.22 USB Device API Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
4 Host Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
4.2 Host Controller Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
4.3 Host Controller Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
4.4 Host Class Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
4.5 Host Class Driver Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
4.6 Host Device Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
4.7 Host Device Interface Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
4.8 Host Programming Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
IMPORTANT NOTICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
September 05, 2012 3