| .. | .. |
|---|
| 13 | 13 | # With help from a special transceiver and a "Mini-AB" jack, systems with |
|---|
| 14 | 14 | # both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). |
|---|
| 15 | 15 | # |
|---|
| 16 | +# A Linux "Gadget Driver" talks to the USB Peripheral Controller |
|---|
| 17 | +# driver through the abstract "gadget" API. Some other operating |
|---|
| 18 | +# systems call these "client" drivers, of which "class drivers" |
|---|
| 19 | +# are a subset (implementing a USB device class specification). |
|---|
| 20 | +# A gadget driver implements one or more USB functions using |
|---|
| 21 | +# the peripheral hardware. |
|---|
| 22 | +# |
|---|
| 23 | +# Gadget drivers are hardware-neutral, or "platform independent", |
|---|
| 24 | +# except that they sometimes must understand quirks or limitations |
|---|
| 25 | +# of the particular controllers they work with. For example, when |
|---|
| 26 | +# a controller doesn't support alternate configurations or provide |
|---|
| 27 | +# enough of the right types of endpoints, the gadget driver might |
|---|
| 28 | +# not be able work with that controller, or might need to implement |
|---|
| 29 | +# a less common variant of a device class protocol. |
|---|
| 30 | +# |
|---|
| 31 | +# The available choices each represent a single precomposed USB |
|---|
| 32 | +# gadget configuration. In the device model, each option contains |
|---|
| 33 | +# both the device instantiation as a child for a USB gadget |
|---|
| 34 | +# controller, and the relevant drivers for each function declared |
|---|
| 35 | +# by the device. |
|---|
| 16 | 36 | |
|---|
| 17 | | -choice |
|---|
| 18 | | - tristate "USB Gadget precomposed configurations" |
|---|
| 19 | | - default USB_ETH |
|---|
| 20 | | - optional |
|---|
| 21 | | - help |
|---|
| 22 | | - A Linux "Gadget Driver" talks to the USB Peripheral Controller |
|---|
| 23 | | - driver through the abstract "gadget" API. Some other operating |
|---|
| 24 | | - systems call these "client" drivers, of which "class drivers" |
|---|
| 25 | | - are a subset (implementing a USB device class specification). |
|---|
| 26 | | - A gadget driver implements one or more USB functions using |
|---|
| 27 | | - the peripheral hardware. |
|---|
| 28 | | - |
|---|
| 29 | | - Gadget drivers are hardware-neutral, or "platform independent", |
|---|
| 30 | | - except that they sometimes must understand quirks or limitations |
|---|
| 31 | | - of the particular controllers they work with. For example, when |
|---|
| 32 | | - a controller doesn't support alternate configurations or provide |
|---|
| 33 | | - enough of the right types of endpoints, the gadget driver might |
|---|
| 34 | | - not be able work with that controller, or might need to implement |
|---|
| 35 | | - a less common variant of a device class protocol. |
|---|
| 36 | | - |
|---|
| 37 | | - The available choices each represent a single precomposed USB |
|---|
| 38 | | - gadget configuration. In the device model, each option contains |
|---|
| 39 | | - both the device instantiation as a child for a USB gadget |
|---|
| 40 | | - controller, and the relevant drivers for each function declared |
|---|
| 41 | | - by the device. |
|---|
| 37 | +menu "USB Gadget precomposed configurations" |
|---|
| 42 | 38 | |
|---|
| 43 | 39 | config USB_ZERO |
|---|
| 44 | 40 | tristate "Gadget Zero (DEVELOPMENT)" |
|---|
| .. | .. |
|---|
| 175 | 171 | is given in comments found in that info file. |
|---|
| 176 | 172 | |
|---|
| 177 | 173 | config USB_ETH_EEM |
|---|
| 178 | | - bool "Ethernet Emulation Model (EEM) support" |
|---|
| 179 | | - depends on USB_ETH |
|---|
| 174 | + bool "Ethernet Emulation Model (EEM) support" |
|---|
| 175 | + depends on USB_ETH |
|---|
| 180 | 176 | select USB_LIBCOMPOSITE |
|---|
| 181 | 177 | select USB_F_EEM |
|---|
| 182 | | - default n |
|---|
| 183 | | - help |
|---|
| 184 | | - CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM |
|---|
| 185 | | - and therefore can be supported by more hardware. Technically ECM and |
|---|
| 186 | | - EEM are designed for different applications. The ECM model extends |
|---|
| 187 | | - the network interface to the target (e.g. a USB cable modem), and the |
|---|
| 188 | | - EEM model is for mobile devices to communicate with hosts using |
|---|
| 189 | | - ethernet over USB. For Linux gadgets, however, the interface with |
|---|
| 190 | | - the host is the same (a usbX device), so the differences are minimal. |
|---|
| 178 | + help |
|---|
| 179 | + CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM |
|---|
| 180 | + and therefore can be supported by more hardware. Technically ECM and |
|---|
| 181 | + EEM are designed for different applications. The ECM model extends |
|---|
| 182 | + the network interface to the target (e.g. a USB cable modem), and the |
|---|
| 183 | + EEM model is for mobile devices to communicate with hosts using |
|---|
| 184 | + ethernet over USB. For Linux gadgets, however, the interface with |
|---|
| 185 | + the host is the same (a usbX device), so the differences are minimal. |
|---|
| 191 | 186 | |
|---|
| 192 | | - If you say "y" here, the Ethernet gadget driver will use the EEM |
|---|
| 193 | | - protocol rather than ECM. If unsure, say "n". |
|---|
| 187 | + If you say "y" here, the Ethernet gadget driver will use the EEM |
|---|
| 188 | + protocol rather than ECM. If unsure, say "n". |
|---|
| 194 | 189 | |
|---|
| 195 | 190 | config USB_G_NCM |
|---|
| 196 | 191 | tristate "Network Control Model (NCM) support" |
|---|
| .. | .. |
|---|
| 314 | 309 | Say "y" to link the driver statically, or "m" to build a |
|---|
| 315 | 310 | dynamically linked module called "g_serial". |
|---|
| 316 | 311 | |
|---|
| 317 | | - For more information, see Documentation/usb/gadget_serial.txt |
|---|
| 312 | + For more information, see Documentation/usb/gadget_serial.rst |
|---|
| 318 | 313 | which includes instructions and a "driver info file" needed to |
|---|
| 319 | 314 | make MS-Windows work with CDC ACM. |
|---|
| 320 | 315 | |
|---|
| .. | .. |
|---|
| 348 | 343 | Say "y" to link the driver statically, or "m" to build a |
|---|
| 349 | 344 | dynamically linked module called "g_printer". |
|---|
| 350 | 345 | |
|---|
| 351 | | - For more information, see Documentation/usb/gadget_printer.txt |
|---|
| 346 | + For more information, see Documentation/usb/gadget_printer.rst |
|---|
| 352 | 347 | which includes sample code for accessing the device file. |
|---|
| 353 | 348 | |
|---|
| 354 | 349 | if TTY |
|---|
| .. | .. |
|---|
| 445 | 440 | config USB_G_MULTI_CDC |
|---|
| 446 | 441 | bool "CDC Ethernet + CDC Serial + Storage configuration" |
|---|
| 447 | 442 | depends on USB_G_MULTI |
|---|
| 448 | | - default n |
|---|
| 449 | 443 | select USB_F_ECM |
|---|
| 450 | 444 | help |
|---|
| 451 | 445 | This option enables a configuration with CDC Ethernet (ECM), CDC |
|---|
| .. | .. |
|---|
| 464 | 458 | The HID gadget driver provides generic emulation of USB |
|---|
| 465 | 459 | Human Interface Devices (HID). |
|---|
| 466 | 460 | |
|---|
| 467 | | - For more information, see Documentation/usb/gadget_hid.txt which |
|---|
| 461 | + For more information, see Documentation/usb/gadget_hid.rst which |
|---|
| 468 | 462 | includes sample code for accessing the device files. |
|---|
| 469 | 463 | |
|---|
| 470 | 464 | Say "y" to link the driver statically, or "m" to build a |
|---|
| .. | .. |
|---|
| 529 | 523 | Say "y" to link the driver statically, or "m" to build a |
|---|
| 530 | 524 | dynamically linked module called "raw_gadget". |
|---|
| 531 | 525 | |
|---|
| 532 | | -endchoice |
|---|
| 526 | +endmenu |
|---|