1# NXP Middleware USB stack 2The USB stack provides USB device and USB host APIs that are targeted to support the application based on NXP's micro-controller. 3## USB stack license 4This project is under BSD-3-Clause license, license copy please check [COPYING_BSD-3](COPYING-BSD-3). 5 6## Middleware USB subfolders description 7The middleware USB folder contains six subfolders totally. 8### device 9This subfolder includes the device controller driver and common device driver for the USB device. The device controller driver includes KHCI, EHCI, IP3511(FS/HS). 10> Note that the device class driver and the USB framework (chapter 9) to handle the standard enumeration and request defined by USB specification 2.0 are moved to 11the application layer, which are located in the folder **examples/${boards}/usb_examples/**. The aim is to implement two types of USB device examples (lite and non-lite). 12In this case, the lite version device examples have no device class driver and class-specific codes are processed in application directly so that lite version has less footprint. 13 14### host 15This subfolder includes the host controller driver, USB host class driver and common host driver for the USB host. The host controller driver includes KHCI, EHCI, IP3516(FS/HS). 16### include 17This subfolder includes the definitions and structures for the USB stack. The miscellaneous content is also here. 18### output 19This subfolder includes the files that are specially used by the New Project Wizard(NPW) of MCUXpresso IDE. 20### phy 21This subfolder includes the USB PHY driver. The USB PHY driver is only used for USB high speed port of some Socs that expose the PHY interface. 22### dcd 23This subfolder includes the files that are specially used by the device charger detect. 24> Note that only usb_device_hid_mouse demo and usb_host_hid_mouse demo supported device charger detect. 25 26## Supported USB classes 27- AUDIO 28- CCID 29- CDC 30- DFU 31- HID 32- MSC 33- MTP 34- PHDC 35- PTINTER 36- VIDEO 37 38## USB Examples 39The following USB examples are provided to meet different requirements. USB examples are located in **examples/${boards}/usb_examples/** folder. Different board may have different set of USB examples. 40- usb_device_audio_generator 41- usb_device_audio_speaker 42- usb_device_cdc_vcom 43- usb_device_cdc_vnic 44- usb_device_composite_audio_multi_ch_unified 45- usb_device_composite_cdc_audio_unified 46- usb_device_composite_cdc_hid_audio_unified 47- usb_device_composite_cdc_msc 48- usb_device_composite_cdc_msc_disk 49- usb_device_composite_cdc_vcom_cdc_vcom 50- usb_device_composite_hid_audio 51- usb_device_composite_hid_audio_unified 52- usb_device_composite_hid_mouse_hid_keyboard 53- usb_device_dfu 54- usb_device_hid_generic 55- usb_device_hid_mouse 56- usb_device_msc_disk 57- usb_device_msc_ramdisk 58- usb_device_mtp 59- usb_device_phdc_weighscale 60- usb_device_printer_virtual_plain_text 61- usb_device_video_virtual_camera 62- usb_host_audio_recorder 63- usb_host_audio_speaker 64- usb_host_cdc 65- usb_host_hid_generic 66- usb_host_hid_mouse 67- usb_host_hid_mouse_dual 68- usb_host_hid_mouse_keyboard 69- usb_host_msd_command 70- usb_host_msd_fatfs 71- usb_host_phdc_manager 72- usb_host_printer_plain_text 73- usb_host_video_camera 74- usb_keyboard2mouse 75- usb_lpm_device_hid_mouse 76- usb_lpm_host_hid_mouse 77- usb_otg_hid_mouse 78- usb_pin_detect_hid_mouse 79- usb_pin_detect_hid_msd 80- usb_suspend_resume_device_hid_mouse 81- usb_suspend_resume_host_hid_mouse 82 83## USB related guide 84Some documents are provided to introduce more details of the USB stack or guide users to implement some new requirements. 851. MCUXpresso SDK USB Stack User's Guide.pdf 862. MCUXpresso SDK USB Stack Device Reference Manual.pdf 873. MCUXpresso SDK USB Stack Host Reference Manual.pdf 884. Enable More USB Examples on M4 Core for RT1170.pdf 895. MCUXpresso SDK USB Stack Composite Device User's Guide.pdf 906. MCUXpresso SDK USB Stack Composite Host User's Guide.pdf