Linux 6.13-rc3
[linux.git] / Documentation / usb / functionfs-desc.rst
blob39649774da5472d1a3c0b9640e9caf893e2ef06b
1 ======================
2 FunctionFS Descriptors
3 ======================
5 Some of the descriptors that can be written to the FFS gadget are
6 described below. Device and configuration descriptors are handled
7 by the composite gadget and are not written by the user to the
8 FFS gadget.
10 Descriptors are written to the "ep0" file in the FFS gadget
11 following the descriptor header.
13 .. kernel-doc:: include/uapi/linux/usb/functionfs.h
14    :doc: descriptors
16 Interface Descriptors
17 ---------------------
19 Standard USB interface descriptors may be written. The class/subclass of the
20 most recent interface descriptor determines what type of class-specific
21 descriptors are accepted.
23 Class-Specific Descriptors
24 --------------------------
26 Class-specific descriptors are accepted only for the class/subclass of the
27 most recent interface descriptor. The following are some of the
28 class-specific descriptors that are supported.
30 DFU Functional Descriptor
31 ~~~~~~~~~~~~~~~~~~~~~~~~~
33 When the interface class is USB_CLASS_APP_SPEC and the interface subclass
34 is USB_SUBCLASS_DFU, a DFU functional descriptor can be provided.
35 The DFU functional descriptor is a described in the USB specification for
36 Device Firmware Upgrade (DFU), version 1.1 as of this writing.
38 .. kernel-doc:: include/uapi/linux/usb/functionfs.h
39    :doc: usb_dfu_functional_descriptor