| ====================== |
| FunctionFS Descriptors |
| ====================== |
| |
| Some of the descriptors that can be written to the FFS gadget are |
| described below. Device and configuration descriptors are handled |
| by the composite gadget and are not written by the user to the |
| FFS gadget. |
| |
| Descriptors are written to the "ep0" file in the FFS gadget |
| following the descriptor header. |
| |
| .. kernel-doc:: include/uapi/linux/usb/functionfs.h |
| :doc: descriptors |
| |
| Interface Descriptors |
| --------------------- |
| |
| Standard USB interface descriptors may be written. The class/subclass of the |
| most recent interface descriptor determines what type of class-specific |
| descriptors are accepted. |
| |
| Class-Specific Descriptors |
| -------------------------- |
| |
| Class-specific descriptors are accepted only for the class/subclass of the |
| most recent interface descriptor. The following are some of the |
| class-specific descriptors that are supported. |
| |
| DFU Functional Descriptor |
| ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| When the interface class is USB_CLASS_APP_SPEC and the interface subclass |
| is USB_SUBCLASS_DFU, a DFU functional descriptor can be provided. |
| The DFU functional descriptor is a described in the USB specification for |
| Device Firmware Upgrade (DFU), version 1.1 as of this writing. |
| |
| .. kernel-doc:: include/uapi/linux/usb/functionfs.h |
| :doc: usb_dfu_functional_descriptor |