Kconfig (593d0a3e9f813db910dc50574532914db21d09ff) Kconfig (a84d9e5361bcfbff1c84481bd9c04fc58a56d83b)
1#
2# USB Gadget support on a system involves
3# (a) a peripheral controller, and
4# (b) the gadget driver using it.
5#
6# NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
7#
8# - Host systems (like PCs) need CONFIG_USB (with "A" jacks).

--- 140 unchanged lines hidden (view full) ---

149 This option selects the USB device controller in the LPC32xx SoC.
150
151 Say "y" to link the driver statically, or "m" to build a
152 dynamically linked module called "lpc32xx_udc" and force all
153 gadget drivers to also be dynamically linked.
154
155config USB_ATMEL_USBA
156 tristate "Atmel USBA"
1#
2# USB Gadget support on a system involves
3# (a) a peripheral controller, and
4# (b) the gadget driver using it.
5#
6# NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
7#
8# - Host systems (like PCs) need CONFIG_USB (with "A" jacks).

--- 140 unchanged lines hidden (view full) ---

149 This option selects the USB device controller in the LPC32xx SoC.
150
151 Say "y" to link the driver statically, or "m" to build a
152 dynamically linked module called "lpc32xx_udc" and force all
153 gadget drivers to also be dynamically linked.
154
155config USB_ATMEL_USBA
156 tristate "Atmel USBA"
157 select USB_GADGET_DUALSPEED
158 depends on AVR32 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
159 help
160 USBA is the integrated high-speed USB Device controller on
161 the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
162
157 depends on AVR32 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
158 help
159 USBA is the integrated high-speed USB Device controller on
160 the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
161
162config USB_BCM63XX_UDC
163 tristate "Broadcom BCM63xx Peripheral Controller"
164 depends on BCM63XX
165 help
166 Many Broadcom BCM63xx chipsets (such as the BCM6328) have a
167 high speed USB Device Port with support for four fixed endpoints
168 (plus endpoint zero).
169
170 Say "y" to link the driver statically, or "m" to build a
171 dynamically linked module called "bcm63xx_udc".
172
163config USB_FSL_USB2
164 tristate "Freescale Highspeed USB DR Peripheral Controller"
165 depends on FSL_SOC || ARCH_MXC
173config USB_FSL_USB2
174 tristate "Freescale Highspeed USB DR Peripheral Controller"
175 depends on FSL_SOC || ARCH_MXC
166 select USB_GADGET_DUALSPEED
167 select USB_FSL_MPH_DR_OF if OF
168 help
169 Some of Freescale PowerPC and i.MX processors have a High Speed
170 Dual-Role(DR) USB controller, which supports device mode.
171
172 The number of programmable endpoints is different through
173 SOC revisions.
174
175 Say "y" to link the driver statically, or "m" to build a
176 dynamically linked module called "fsl_usb2_udc" and force
177 all gadget drivers to also be dynamically linked.
178
179config USB_FUSB300
180 tristate "Faraday FUSB300 USB Peripheral Controller"
181 depends on !PHYS_ADDR_T_64BIT
176 select USB_FSL_MPH_DR_OF if OF
177 help
178 Some of Freescale PowerPC and i.MX processors have a High Speed
179 Dual-Role(DR) USB controller, which supports device mode.
180
181 The number of programmable endpoints is different through
182 SOC revisions.
183
184 Say "y" to link the driver statically, or "m" to build a
185 dynamically linked module called "fsl_usb2_udc" and force
186 all gadget drivers to also be dynamically linked.
187
188config USB_FUSB300
189 tristate "Faraday FUSB300 USB Peripheral Controller"
190 depends on !PHYS_ADDR_T_64BIT
182 select USB_GADGET_DUALSPEED
183 help
184 Faraday usb device controller FUSB300 driver
185
186config USB_OMAP
187 tristate "OMAP USB Device Controller"
188 depends on ARCH_OMAP1
189 select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG
190 select USB_OTG_UTILS if ARCH_OMAP

--- 31 unchanged lines hidden (view full) ---

222 bool
223 default n if USB_ETH_RNDIS
224 default y if USB_ZERO
225 default y if USB_ETH
226 default y if USB_G_SERIAL
227
228config USB_R8A66597
229 tristate "Renesas R8A66597 USB Peripheral Controller"
191 help
192 Faraday usb device controller FUSB300 driver
193
194config USB_OMAP
195 tristate "OMAP USB Device Controller"
196 depends on ARCH_OMAP1
197 select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG
198 select USB_OTG_UTILS if ARCH_OMAP

--- 31 unchanged lines hidden (view full) ---

230 bool
231 default n if USB_ETH_RNDIS
232 default y if USB_ZERO
233 default y if USB_ETH
234 default y if USB_G_SERIAL
235
236config USB_R8A66597
237 tristate "Renesas R8A66597 USB Peripheral Controller"
230 select USB_GADGET_DUALSPEED
231 help
232 R8A66597 is a discrete USB host and peripheral controller chip that
233 supports both full and high speed USB 2.0 data transfers.
234 It has nine configurable endpoints, and endpoint zero.
235
236 Say "y" to link the driver statically, or "m" to build a
237 dynamically linked module called "r8a66597_udc" and force all
238 gadget drivers to also be dynamically linked.
239
240config USB_RENESAS_USBHS_UDC
241 tristate 'Renesas USBHS controller'
242 depends on USB_RENESAS_USBHS
238 help
239 R8A66597 is a discrete USB host and peripheral controller chip that
240 supports both full and high speed USB 2.0 data transfers.
241 It has nine configurable endpoints, and endpoint zero.
242
243 Say "y" to link the driver statically, or "m" to build a
244 dynamically linked module called "r8a66597_udc" and force all
245 gadget drivers to also be dynamically linked.
246
247config USB_RENESAS_USBHS_UDC
248 tristate 'Renesas USBHS controller'
249 depends on USB_RENESAS_USBHS
243 select USB_GADGET_DUALSPEED
244 help
245 Renesas USBHS is a discrete USB host and peripheral controller chip
246 that supports both full and high speed USB 2.0 data transfers.
247 It has nine or more configurable endpoints, and endpoint zero.
248
249 Say "y" to link the driver statically, or "m" to build a
250 dynamically linked module called "renesas_usbhs" and force all
251 gadget drivers to also be dynamically linked.

--- 11 unchanged lines hidden (view full) ---

263
264 Say "y" to link the driver statically, or "m" to build a
265 dynamically linked module called "pxa27x_udc" and force all
266 gadget drivers to also be dynamically linked.
267
268config USB_S3C_HSOTG
269 tristate "S3C HS/OtG USB Device controller"
270 depends on S3C_DEV_USB_HSOTG
250 help
251 Renesas USBHS is a discrete USB host and peripheral controller chip
252 that supports both full and high speed USB 2.0 data transfers.
253 It has nine or more configurable endpoints, and endpoint zero.
254
255 Say "y" to link the driver statically, or "m" to build a
256 dynamically linked module called "renesas_usbhs" and force all
257 gadget drivers to also be dynamically linked.

--- 11 unchanged lines hidden (view full) ---

269
270 Say "y" to link the driver statically, or "m" to build a
271 dynamically linked module called "pxa27x_udc" and force all
272 gadget drivers to also be dynamically linked.
273
274config USB_S3C_HSOTG
275 tristate "S3C HS/OtG USB Device controller"
276 depends on S3C_DEV_USB_HSOTG
271 select USB_GADGET_DUALSPEED
272 help
273 The Samsung S3C64XX USB2.0 high-speed gadget controller
274 integrated into the S3C64XX series SoC.
275
276config USB_IMX
277 tristate "Freescale i.MX1 USB Peripheral Controller"
278 depends on ARCH_MXC
279 help

--- 20 unchanged lines hidden (view full) ---

300
301config USB_S3C2410_DEBUG
302 boolean "S3C2410 udc debug messages"
303 depends on USB_S3C2410
304
305config USB_S3C_HSUDC
306 tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller"
307 depends on ARCH_S3C24XX
277 help
278 The Samsung S3C64XX USB2.0 high-speed gadget controller
279 integrated into the S3C64XX series SoC.
280
281config USB_IMX
282 tristate "Freescale i.MX1 USB Peripheral Controller"
283 depends on ARCH_MXC
284 help

--- 20 unchanged lines hidden (view full) ---

305
306config USB_S3C2410_DEBUG
307 boolean "S3C2410 udc debug messages"
308 depends on USB_S3C2410
309
310config USB_S3C_HSUDC
311 tristate "S3C2416, S3C2443 and S3C2450 USB Device Controller"
312 depends on ARCH_S3C24XX
308 select USB_GADGET_DUALSPEED
309 help
310 Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC
311 integrated with dual speed USB 2.0 device controller. It has
312 8 endpoints, as well as endpoint zero.
313
314 This driver has been tested on S3C2416 and S3C2450 processors.
315
316config USB_MV_UDC
317 tristate "Marvell USB2.0 Device Controller"
313 help
314 Samsung's S3C2416, S3C2443 and S3C2450 is an ARM9 based SoC
315 integrated with dual speed USB 2.0 device controller. It has
316 8 endpoints, as well as endpoint zero.
317
318 This driver has been tested on S3C2416 and S3C2450 processors.
319
320config USB_MV_UDC
321 tristate "Marvell USB2.0 Device Controller"
318 select USB_GADGET_DUALSPEED
319 help
320 Marvell Socs (including PXA and MMP series) include a high speed
321 USB2.0 OTG controller, which can be configured as high speed or
322 full speed USB peripheral.
323
324config USB_MV_U3D
325 tristate "MARVELL PXA2128 USB 3.0 controller"
326 depends on CPU_MMP3

--- 6 unchanged lines hidden (view full) ---

333#
334# Controllers available in both integrated and discrete versions
335#
336
337# musb builds in ../musb along with host support
338config USB_GADGET_MUSB_HDRC
339 tristate "Inventra HDRC USB Peripheral (TI, ADI, ...)"
340 depends on USB_MUSB_HDRC
322 help
323 Marvell Socs (including PXA and MMP series) include a high speed
324 USB2.0 OTG controller, which can be configured as high speed or
325 full speed USB peripheral.
326
327config USB_MV_U3D
328 tristate "MARVELL PXA2128 USB 3.0 controller"
329 depends on CPU_MMP3

--- 6 unchanged lines hidden (view full) ---

336#
337# Controllers available in both integrated and discrete versions
338#
339
340# musb builds in ../musb along with host support
341config USB_GADGET_MUSB_HDRC
342 tristate "Inventra HDRC USB Peripheral (TI, ADI, ...)"
343 depends on USB_MUSB_HDRC
341 select USB_GADGET_DUALSPEED
342 help
343 This OTG-capable silicon IP is used in dual designs including
344 the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin
345
346config USB_M66592
347 tristate "Renesas M66592 USB Peripheral Controller"
344 help
345 This OTG-capable silicon IP is used in dual designs including
346 the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin
347
348config USB_M66592
349 tristate "Renesas M66592 USB Peripheral Controller"
348 select USB_GADGET_DUALSPEED
349 help
350 M66592 is a discrete USB peripheral controller chip that
351 supports both full and high speed USB 2.0 data transfers.
352 It has seven configurable endpoints, and endpoint zero.
353
354 Say "y" to link the driver statically, or "m" to build a
355 dynamically linked module called "m66592_udc" and force all
356 gadget drivers to also be dynamically linked.
357
358#
359# Controllers available only in discrete form (and all PCI controllers)
360#
361
362config USB_AMD5536UDC
363 tristate "AMD5536 UDC"
364 depends on PCI
350 help
351 M66592 is a discrete USB peripheral controller chip that
352 supports both full and high speed USB 2.0 data transfers.
353 It has seven configurable endpoints, and endpoint zero.
354
355 Say "y" to link the driver statically, or "m" to build a
356 dynamically linked module called "m66592_udc" and force all
357 gadget drivers to also be dynamically linked.
358
359#
360# Controllers available only in discrete form (and all PCI controllers)
361#
362
363config USB_AMD5536UDC
364 tristate "AMD5536 UDC"
365 depends on PCI
365 select USB_GADGET_DUALSPEED
366 help
367 The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
368 It is a USB Highspeed DMA capable USB device controller. Beside ep0
369 it provides 4 IN and 4 OUT endpoints (bulk or interrupt type).
370 The UDC port supports OTG operation, and may be used as a host port
371 if it's not being used to implement peripheral or OTG roles.
372
373 Say "y" to link the driver statically, or "m" to build a

--- 10 unchanged lines hidden (view full) ---

384 controller in the MPC8360 and MPC8272, and should work with
385 controllers having QE or CPM2, given minor tweaks.
386
387 Set CONFIG_USB_GADGET to "m" to build this driver as a
388 dynamically linked module called "fsl_qe_udc".
389
390config USB_NET2272
391 tristate "PLX NET2272"
366 help
367 The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
368 It is a USB Highspeed DMA capable USB device controller. Beside ep0
369 it provides 4 IN and 4 OUT endpoints (bulk or interrupt type).
370 The UDC port supports OTG operation, and may be used as a host port
371 if it's not being used to implement peripheral or OTG roles.
372
373 Say "y" to link the driver statically, or "m" to build a

--- 10 unchanged lines hidden (view full) ---

384 controller in the MPC8360 and MPC8272, and should work with
385 controllers having QE or CPM2, given minor tweaks.
386
387 Set CONFIG_USB_GADGET to "m" to build this driver as a
388 dynamically linked module called "fsl_qe_udc".
389
390config USB_NET2272
391 tristate "PLX NET2272"
392 select USB_GADGET_DUALSPEED
393 help
394 PLX NET2272 is a USB peripheral controller which supports
395 both full and high speed USB 2.0 data transfers.
396
397 It has three configurable endpoints, as well as endpoint zero
398 (for control transfer).
399 Say "y" to link the driver statically, or "m" to build a
400 dynamically linked module called "net2272" and force all

--- 7 unchanged lines hidden (view full) ---

408 controller, but your board has to have support in the
409 driver itself.
410
411 If unsure, say "N" here. The driver works fine in PIO mode.
412
413config USB_NET2280
414 tristate "NetChip 228x"
415 depends on PCI
392 help
393 PLX NET2272 is a USB peripheral controller which supports
394 both full and high speed USB 2.0 data transfers.
395
396 It has three configurable endpoints, as well as endpoint zero
397 (for control transfer).
398 Say "y" to link the driver statically, or "m" to build a
399 dynamically linked module called "net2272" and force all

--- 7 unchanged lines hidden (view full) ---

407 controller, but your board has to have support in the
408 driver itself.
409
410 If unsure, say "N" here. The driver works fine in PIO mode.
411
412config USB_NET2280
413 tristate "NetChip 228x"
414 depends on PCI
416 select USB_GADGET_DUALSPEED
417 help
418 NetChip 2280 / 2282 is a PCI based USB peripheral controller which
419 supports both full and high speed USB 2.0 data transfers.
420
421 It has six configurable endpoints, as well as endpoint zero
422 (for control transfers) and several endpoints with dedicated
423 functions.
424

--- 13 unchanged lines hidden (view full) ---

438
439 Say "y" to link the driver statically, or "m" to build a
440 dynamically linked module called "goku_udc" and to force all
441 gadget drivers to also be dynamically linked.
442
443config USB_EG20T
444 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
445 depends on PCI
415 help
416 NetChip 2280 / 2282 is a PCI based USB peripheral controller which
417 supports both full and high speed USB 2.0 data transfers.
418
419 It has six configurable endpoints, as well as endpoint zero
420 (for control transfers) and several endpoints with dedicated
421 functions.
422

--- 13 unchanged lines hidden (view full) ---

436
437 Say "y" to link the driver statically, or "m" to build a
438 dynamically linked module called "goku_udc" and to force all
439 gadget drivers to also be dynamically linked.
440
441config USB_EG20T
442 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
443 depends on PCI
446 select USB_GADGET_DUALSPEED
447 help
448 This is a USB device driver for EG20T PCH.
449 EG20T PCH is the platform controller hub that is used in Intel's
450 general embedded platform. EG20T PCH has USB device interface.
451 Using this interface, it is able to access system devices connected
452 to USB device.
453 This driver enables USB device function.
454 USB device is a USB peripheral controller which

--- 10 unchanged lines hidden (view full) ---

465
466#
467# LAST -- dummy/emulated controller
468#
469
470config USB_DUMMY_HCD
471 tristate "Dummy HCD (DEVELOPMENT)"
472 depends on USB=y || (USB=m && USB_GADGET=m)
444 help
445 This is a USB device driver for EG20T PCH.
446 EG20T PCH is the platform controller hub that is used in Intel's
447 general embedded platform. EG20T PCH has USB device interface.
448 Using this interface, it is able to access system devices connected
449 to USB device.
450 This driver enables USB device function.
451 USB device is a USB peripheral controller which

--- 10 unchanged lines hidden (view full) ---

462
463#
464# LAST -- dummy/emulated controller
465#
466
467config USB_DUMMY_HCD
468 tristate "Dummy HCD (DEVELOPMENT)"
469 depends on USB=y || (USB=m && USB_GADGET=m)
473 select USB_GADGET_DUALSPEED
474 select USB_GADGET_SUPERSPEED
475 help
476 This host controller driver emulates USB, looping all data transfer
477 requests back to a USB "gadget driver" in the same host. The host
478 side is the master; the gadget side is the slave. Gadget drivers
479 can be high, full, or low speed; and they have access to endpoints
480 like those from NET2280, PXA2xx, or SA1100 hardware.
481
482 This may help in some stages of creating a driver to embed in a

--- 8 unchanged lines hidden (view full) ---

491 dynamically linked module called "dummy_hcd" and force all
492 gadget drivers to also be dynamically linked.
493
494# NOTE: Please keep dummy_hcd LAST so that "real hardware" appears
495# first and will be selected by default.
496
497endmenu
498
470 help
471 This host controller driver emulates USB, looping all data transfer
472 requests back to a USB "gadget driver" in the same host. The host
473 side is the master; the gadget side is the slave. Gadget drivers
474 can be high, full, or low speed; and they have access to endpoints
475 like those from NET2280, PXA2xx, or SA1100 hardware.
476
477 This may help in some stages of creating a driver to embed in a

--- 8 unchanged lines hidden (view full) ---

486 dynamically linked module called "dummy_hcd" and force all
487 gadget drivers to also be dynamically linked.
488
489# NOTE: Please keep dummy_hcd LAST so that "real hardware" appears
490# first and will be selected by default.
491
492endmenu
493
499# Selected by UDC drivers that support high-speed operation.
500config USB_GADGET_DUALSPEED
501 bool
502
503# Selected by UDC drivers that support super-speed opperation
504config USB_GADGET_SUPERSPEED
505 bool
506 depends on USB_GADGET_DUALSPEED
507
508#
509# USB Gadget Drivers
510#
494#
495# USB Gadget Drivers
496#
497
498# composite based drivers
499config USB_LIBCOMPOSITE
500 tristate
501 depends on USB_GADGET
502
511choice
512 tristate "USB Gadget Drivers"
513 default USB_ETH
514 help
515 A Linux "Gadget Driver" talks to the USB Peripheral Controller
516 driver through the abstract "gadget" API. Some other operating
517 systems call these "client" drivers, of which "class drivers"
518 are a subset (implementing a USB device class specification).

--- 7 unchanged lines hidden (view full) ---

526 enough of the right types of endpoints, the gadget driver might
527 not be able work with that controller, or might need to implement
528 a less common variant of a device class protocol.
529
530# this first set of drivers all depend on bulk-capable hardware.
531
532config USB_ZERO
533 tristate "Gadget Zero (DEVELOPMENT)"
503choice
504 tristate "USB Gadget Drivers"
505 default USB_ETH
506 help
507 A Linux "Gadget Driver" talks to the USB Peripheral Controller
508 driver through the abstract "gadget" API. Some other operating
509 systems call these "client" drivers, of which "class drivers"
510 are a subset (implementing a USB device class specification).

--- 7 unchanged lines hidden (view full) ---

518 enough of the right types of endpoints, the gadget driver might
519 not be able work with that controller, or might need to implement
520 a less common variant of a device class protocol.
521
522# this first set of drivers all depend on bulk-capable hardware.
523
524config USB_ZERO
525 tristate "Gadget Zero (DEVELOPMENT)"
526 select USB_LIBCOMPOSITE
534 help
535 Gadget Zero is a two-configuration device. It either sinks and
536 sources bulk data; or it loops back a configurable number of
537 transfers. It also implements control requests, for "chapter 9"
538 conformance. The driver needs only two bulk-capable endpoints, so
539 it can work on top of most device-side usb controllers. It's
540 useful for testing, and is also a working example showing how
541 USB "gadget drivers" can be written.

--- 19 unchanged lines hidden (view full) ---

561 identifiers of the USB-OTG test device. That means that when
562 this gadget connects to another OTG device, with this one using
563 the "B-Peripheral" role, that device will use HNP to let this
564 one serve as the USB host instead (in the "B-Host" role).
565
566config USB_AUDIO
567 tristate "Audio Gadget (EXPERIMENTAL)"
568 depends on SND
527 help
528 Gadget Zero is a two-configuration device. It either sinks and
529 sources bulk data; or it loops back a configurable number of
530 transfers. It also implements control requests, for "chapter 9"
531 conformance. The driver needs only two bulk-capable endpoints, so
532 it can work on top of most device-side usb controllers. It's
533 useful for testing, and is also a working example showing how
534 USB "gadget drivers" can be written.

--- 19 unchanged lines hidden (view full) ---

554 identifiers of the USB-OTG test device. That means that when
555 this gadget connects to another OTG device, with this one using
556 the "B-Peripheral" role, that device will use HNP to let this
557 one serve as the USB host instead (in the "B-Host" role).
558
559config USB_AUDIO
560 tristate "Audio Gadget (EXPERIMENTAL)"
561 depends on SND
562 select USB_LIBCOMPOSITE
569 select SND_PCM
570 help
571 This Gadget Audio driver is compatible with USB Audio Class
572 specification 2.0. It implements 1 AudioControl interface,
573 1 AudioStreaming Interface each for USB-OUT and USB-IN.
574 Number of channels, sample rate and sample size can be
575 specified as module parameters.
576 This driver doesn't expect any real Audio codec to be present

--- 12 unchanged lines hidden (view full) ---

589 help
590 If you instead want older UAC Spec-1.0 driver that also has audio
591 paths hardwired to the Audio codec chip on-board and doesn't work
592 without one.
593
594config USB_ETH
595 tristate "Ethernet Gadget (with CDC Ethernet support)"
596 depends on NET
563 select SND_PCM
564 help
565 This Gadget Audio driver is compatible with USB Audio Class
566 specification 2.0. It implements 1 AudioControl interface,
567 1 AudioStreaming Interface each for USB-OUT and USB-IN.
568 Number of channels, sample rate and sample size can be
569 specified as module parameters.
570 This driver doesn't expect any real Audio codec to be present

--- 12 unchanged lines hidden (view full) ---

583 help
584 If you instead want older UAC Spec-1.0 driver that also has audio
585 paths hardwired to the Audio codec chip on-board and doesn't work
586 without one.
587
588config USB_ETH
589 tristate "Ethernet Gadget (with CDC Ethernet support)"
590 depends on NET
591 select USB_LIBCOMPOSITE
597 select CRC32
598 help
599 This driver implements Ethernet style communication, in one of
600 several ways:
601
602 - The "Communication Device Class" (CDC) Ethernet Control Model.
603 That protocol is often avoided with pure Ethernet adapters, in
604 favor of simpler vendor-specific hardware, but is widely

--- 19 unchanged lines hidden (view full) ---

624 drivers on other host operating systems.
625
626 Say "y" to link the driver statically, or "m" to build a
627 dynamically linked module called "g_ether".
628
629config USB_ETH_RNDIS
630 bool "RNDIS support"
631 depends on USB_ETH
592 select CRC32
593 help
594 This driver implements Ethernet style communication, in one of
595 several ways:
596
597 - The "Communication Device Class" (CDC) Ethernet Control Model.
598 That protocol is often avoided with pure Ethernet adapters, in
599 favor of simpler vendor-specific hardware, but is widely

--- 19 unchanged lines hidden (view full) ---

619 drivers on other host operating systems.
620
621 Say "y" to link the driver statically, or "m" to build a
622 dynamically linked module called "g_ether".
623
624config USB_ETH_RNDIS
625 bool "RNDIS support"
626 depends on USB_ETH
627 select USB_LIBCOMPOSITE
632 default y
633 help
634 Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol,
635 and Microsoft provides redistributable binary RNDIS drivers for
636 older versions of Windows.
637
638 If you say "y" here, the Ethernet gadget driver will try to provide
639 a second device configuration, supporting RNDIS to talk to such
640 Microsoft USB hosts.
641
642 To make MS-Windows work with this, use Documentation/usb/linux.inf
643 as the "driver info file". For versions of MS-Windows older than
644 XP, you'll need to download drivers from Microsoft's website; a URL
645 is given in comments found in that info file.
646
647config USB_ETH_EEM
648 bool "Ethernet Emulation Model (EEM) support"
649 depends on USB_ETH
628 default y
629 help
630 Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol,
631 and Microsoft provides redistributable binary RNDIS drivers for
632 older versions of Windows.
633
634 If you say "y" here, the Ethernet gadget driver will try to provide
635 a second device configuration, supporting RNDIS to talk to such
636 Microsoft USB hosts.
637
638 To make MS-Windows work with this, use Documentation/usb/linux.inf
639 as the "driver info file". For versions of MS-Windows older than
640 XP, you'll need to download drivers from Microsoft's website; a URL
641 is given in comments found in that info file.
642
643config USB_ETH_EEM
644 bool "Ethernet Emulation Model (EEM) support"
645 depends on USB_ETH
646 select USB_LIBCOMPOSITE
650 default n
651 help
652 CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
653 and therefore can be supported by more hardware. Technically ECM and
654 EEM are designed for different applications. The ECM model extends
655 the network interface to the target (e.g. a USB cable modem), and the
656 EEM model is for mobile devices to communicate with hosts using
657 ethernet over USB. For Linux gadgets, however, the interface with
658 the host is the same (a usbX device), so the differences are minimal.
659
660 If you say "y" here, the Ethernet gadget driver will use the EEM
661 protocol rather than ECM. If unsure, say "n".
662
663config USB_G_NCM
664 tristate "Network Control Model (NCM) support"
665 depends on NET
647 default n
648 help
649 CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
650 and therefore can be supported by more hardware. Technically ECM and
651 EEM are designed for different applications. The ECM model extends
652 the network interface to the target (e.g. a USB cable modem), and the
653 EEM model is for mobile devices to communicate with hosts using
654 ethernet over USB. For Linux gadgets, however, the interface with
655 the host is the same (a usbX device), so the differences are minimal.
656
657 If you say "y" here, the Ethernet gadget driver will use the EEM
658 protocol rather than ECM. If unsure, say "n".
659
660config USB_G_NCM
661 tristate "Network Control Model (NCM) support"
662 depends on NET
663 select USB_LIBCOMPOSITE
666 select CRC32
667 help
668 This driver implements USB CDC NCM subclass standard. NCM is
669 an advanced protocol for Ethernet encapsulation, allows grouping
670 of several ethernet frames into one USB transfer and different
671 alignment possibilities.
672
673 Say "y" to link the driver statically, or "m" to build a

--- 13 unchanged lines hidden (view full) ---

687 of existing race conditions in the underlying in-kernel AIO core.
688
689 Say "y" to link the driver statically, or "m" to build a
690 dynamically linked module called "gadgetfs".
691
692config USB_FUNCTIONFS
693 tristate "Function Filesystem (EXPERIMENTAL)"
694 depends on EXPERIMENTAL
664 select CRC32
665 help
666 This driver implements USB CDC NCM subclass standard. NCM is
667 an advanced protocol for Ethernet encapsulation, allows grouping
668 of several ethernet frames into one USB transfer and different
669 alignment possibilities.
670
671 Say "y" to link the driver statically, or "m" to build a

--- 13 unchanged lines hidden (view full) ---

685 of existing race conditions in the underlying in-kernel AIO core.
686
687 Say "y" to link the driver statically, or "m" to build a
688 dynamically linked module called "gadgetfs".
689
690config USB_FUNCTIONFS
691 tristate "Function Filesystem (EXPERIMENTAL)"
692 depends on EXPERIMENTAL
693 select USB_LIBCOMPOSITE
695 select USB_FUNCTIONFS_GENERIC if !(USB_FUNCTIONFS_ETH || USB_FUNCTIONFS_RNDIS)
696 help
697 The Function Filesystem (FunctionFS) lets one create USB
698 composite functions in user space in the same way GadgetFS
699 lets one create USB gadgets in user space. This allows creation
700 of composite gadgets such that some of the functions are
701 implemented in kernel space (for instance Ethernet, serial or
702 mass storage) and other are implemented in user space.

--- 47 unchanged lines hidden (view full) ---

750 Say "y" to generate the larger testing version of the
751 File-backed Storage Gadget, useful for probing the
752 behavior of USB Mass Storage hosts. Not needed for
753 normal operation.
754
755config USB_MASS_STORAGE
756 tristate "Mass Storage Gadget"
757 depends on BLOCK
694 select USB_FUNCTIONFS_GENERIC if !(USB_FUNCTIONFS_ETH || USB_FUNCTIONFS_RNDIS)
695 help
696 The Function Filesystem (FunctionFS) lets one create USB
697 composite functions in user space in the same way GadgetFS
698 lets one create USB gadgets in user space. This allows creation
699 of composite gadgets such that some of the functions are
700 implemented in kernel space (for instance Ethernet, serial or
701 mass storage) and other are implemented in user space.

--- 47 unchanged lines hidden (view full) ---

749 Say "y" to generate the larger testing version of the
750 File-backed Storage Gadget, useful for probing the
751 behavior of USB Mass Storage hosts. Not needed for
752 normal operation.
753
754config USB_MASS_STORAGE
755 tristate "Mass Storage Gadget"
756 depends on BLOCK
757 select USB_LIBCOMPOSITE
758 help
759 The Mass Storage Gadget acts as a USB Mass Storage disk drive.
760 As its storage repository it can use a regular file or a block
761 device (in much the same way as the "loop" device driver),
762 specified as a module parameter or sysfs option.
763
764 This driver is an updated replacement for the deprecated
765 File-backed Storage Gadget (g_file_storage).
766
767 Say "y" to link the driver statically, or "m" to build
768 a dynamically linked module called "g_mass_storage".
769
770config USB_GADGET_TARGET
771 tristate "USB Gadget Target Fabric Module"
772 depends on TARGET_CORE
758 help
759 The Mass Storage Gadget acts as a USB Mass Storage disk drive.
760 As its storage repository it can use a regular file or a block
761 device (in much the same way as the "loop" device driver),
762 specified as a module parameter or sysfs option.
763
764 This driver is an updated replacement for the deprecated
765 File-backed Storage Gadget (g_file_storage).
766
767 Say "y" to link the driver statically, or "m" to build
768 a dynamically linked module called "g_mass_storage".
769
770config USB_GADGET_TARGET
771 tristate "USB Gadget Target Fabric Module"
772 depends on TARGET_CORE
773 select USB_LIBCOMPOSITE
773 help
774 This fabric is an USB gadget. Two USB protocols are supported that is
775 BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is
776 advertised on alternative interface 0 (primary) and UAS is on
777 alternative interface 1. Both protocols can work on USB2.0 and USB3.0.
778 UAS utilizes the USB 3.0 feature called streams support.
779
780config USB_G_SERIAL
781 tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
774 help
775 This fabric is an USB gadget. Two USB protocols are supported that is
776 BBB or BOT (Bulk Only Transport) and UAS (USB Attached SCSI). BOT is
777 advertised on alternative interface 0 (primary) and UAS is on
778 alternative interface 1. Both protocols can work on USB2.0 and USB3.0.
779 UAS utilizes the USB 3.0 feature called streams support.
780
781config USB_G_SERIAL
782 tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
783 select USB_LIBCOMPOSITE
782 help
783 The Serial Gadget talks to the Linux-USB generic serial driver.
784 This driver supports a CDC-ACM module option, which can be used
785 to interoperate with MS-Windows hosts or with the Linux-USB
786 "cdc-acm" driver.
787
788 This driver also supports a CDC-OBEX option. You will need a
789 user space OBEX server talking to /dev/ttyGS*, since the kernel

--- 4 unchanged lines hidden (view full) ---

794
795 For more information, see Documentation/usb/gadget_serial.txt
796 which includes instructions and a "driver info file" needed to
797 make MS-Windows work with CDC ACM.
798
799config USB_MIDI_GADGET
800 tristate "MIDI Gadget (EXPERIMENTAL)"
801 depends on SND && EXPERIMENTAL
784 help
785 The Serial Gadget talks to the Linux-USB generic serial driver.
786 This driver supports a CDC-ACM module option, which can be used
787 to interoperate with MS-Windows hosts or with the Linux-USB
788 "cdc-acm" driver.
789
790 This driver also supports a CDC-OBEX option. You will need a
791 user space OBEX server talking to /dev/ttyGS*, since the kernel

--- 4 unchanged lines hidden (view full) ---

796
797 For more information, see Documentation/usb/gadget_serial.txt
798 which includes instructions and a "driver info file" needed to
799 make MS-Windows work with CDC ACM.
800
801config USB_MIDI_GADGET
802 tristate "MIDI Gadget (EXPERIMENTAL)"
803 depends on SND && EXPERIMENTAL
804 select USB_LIBCOMPOSITE
802 select SND_RAWMIDI
803 help
804 The MIDI Gadget acts as a USB Audio device, with one MIDI
805 input and one MIDI output. These MIDI jacks appear as
806 a sound "card" in the ALSA sound system. Other MIDI
807 connections can then be made on the gadget system, using
808 ALSA's aconnect utility etc.
809
810 Say "y" to link the driver statically, or "m" to build a
811 dynamically linked module called "g_midi".
812
813config USB_G_PRINTER
814 tristate "Printer Gadget"
805 select SND_RAWMIDI
806 help
807 The MIDI Gadget acts as a USB Audio device, with one MIDI
808 input and one MIDI output. These MIDI jacks appear as
809 a sound "card" in the ALSA sound system. Other MIDI
810 connections can then be made on the gadget system, using
811 ALSA's aconnect utility etc.
812
813 Say "y" to link the driver statically, or "m" to build a
814 dynamically linked module called "g_midi".
815
816config USB_G_PRINTER
817 tristate "Printer Gadget"
818 select USB_LIBCOMPOSITE
815 help
816 The Printer Gadget channels data between the USB host and a
817 userspace program driving the print engine. The user space
818 program reads and writes the device file /dev/g_printer to
819 receive or send printer data. It can use ioctl calls to
820 the device file to get or set printer status.
821
822 Say "y" to link the driver statically, or "m" to build a
823 dynamically linked module called "g_printer".
824
825 For more information, see Documentation/usb/gadget_printer.txt
826 which includes sample code for accessing the device file.
827
828config USB_CDC_COMPOSITE
829 tristate "CDC Composite Device (Ethernet and ACM)"
830 depends on NET
819 help
820 The Printer Gadget channels data between the USB host and a
821 userspace program driving the print engine. The user space
822 program reads and writes the device file /dev/g_printer to
823 receive or send printer data. It can use ioctl calls to
824 the device file to get or set printer status.
825
826 Say "y" to link the driver statically, or "m" to build a
827 dynamically linked module called "g_printer".
828
829 For more information, see Documentation/usb/gadget_printer.txt
830 which includes sample code for accessing the device file.
831
832config USB_CDC_COMPOSITE
833 tristate "CDC Composite Device (Ethernet and ACM)"
834 depends on NET
835 select USB_LIBCOMPOSITE
831 help
832 This driver provides two functions in one configuration:
833 a CDC Ethernet (ECM) link, and a CDC ACM (serial port) link.
834
835 This driver requires four bulk and two interrupt endpoints,
836 plus the ability to handle altsettings. Not all peripheral
837 controllers are that capable.
838
839 Say "y" to link the driver statically, or "m" to build a
840 dynamically linked module.
841
842config USB_G_NOKIA
843 tristate "Nokia composite gadget"
844 depends on PHONET
836 help
837 This driver provides two functions in one configuration:
838 a CDC Ethernet (ECM) link, and a CDC ACM (serial port) link.
839
840 This driver requires four bulk and two interrupt endpoints,
841 plus the ability to handle altsettings. Not all peripheral
842 controllers are that capable.
843
844 Say "y" to link the driver statically, or "m" to build a
845 dynamically linked module.
846
847config USB_G_NOKIA
848 tristate "Nokia composite gadget"
849 depends on PHONET
850 select USB_LIBCOMPOSITE
845 help
846 The Nokia composite gadget provides support for acm, obex
847 and phonet in only one composite gadget driver.
848
849 It's only really useful for N900 hardware. If you're building
850 a kernel for N900, say Y or M here. If unsure, say N.
851
852config USB_G_ACM_MS
853 tristate "CDC Composite Device (ACM and mass storage)"
854 depends on BLOCK
851 help
852 The Nokia composite gadget provides support for acm, obex
853 and phonet in only one composite gadget driver.
854
855 It's only really useful for N900 hardware. If you're building
856 a kernel for N900, say Y or M here. If unsure, say N.
857
858config USB_G_ACM_MS
859 tristate "CDC Composite Device (ACM and mass storage)"
860 depends on BLOCK
861 select USB_LIBCOMPOSITE
855 help
856 This driver provides two functions in one configuration:
857 a mass storage, and a CDC ACM (serial port) link.
858
859 Say "y" to link the driver statically, or "m" to build a
860 dynamically linked module called "g_acm_ms".
861
862config USB_G_MULTI
863 tristate "Multifunction Composite Gadget (EXPERIMENTAL)"
864 depends on BLOCK && NET
865 select USB_G_MULTI_CDC if !USB_G_MULTI_RNDIS
862 help
863 This driver provides two functions in one configuration:
864 a mass storage, and a CDC ACM (serial port) link.
865
866 Say "y" to link the driver statically, or "m" to build a
867 dynamically linked module called "g_acm_ms".
868
869config USB_G_MULTI
870 tristate "Multifunction Composite Gadget (EXPERIMENTAL)"
871 depends on BLOCK && NET
872 select USB_G_MULTI_CDC if !USB_G_MULTI_RNDIS
873 select USB_LIBCOMPOSITE
866 help
867 The Multifunction Composite Gadget provides Ethernet (RNDIS
868 and/or CDC Ethernet), mass storage and ACM serial link
869 interfaces.
870
871 You will be asked to choose which of the two configurations is
872 to be available in the gadget. At least one configuration must
873 be chosen to make the gadget usable. Selecting more than one

--- 24 unchanged lines hidden (view full) ---

898 This option enables a configuration with CDC Ethernet (ECM), CDC
899 Serial and Mass Storage functions available in the Multifunction
900 Composite Gadget.
901
902 If unsure, say "y".
903
904config USB_G_HID
905 tristate "HID Gadget"
874 help
875 The Multifunction Composite Gadget provides Ethernet (RNDIS
876 and/or CDC Ethernet), mass storage and ACM serial link
877 interfaces.
878
879 You will be asked to choose which of the two configurations is
880 to be available in the gadget. At least one configuration must
881 be chosen to make the gadget usable. Selecting more than one

--- 24 unchanged lines hidden (view full) ---

906 This option enables a configuration with CDC Ethernet (ECM), CDC
907 Serial and Mass Storage functions available in the Multifunction
908 Composite Gadget.
909
910 If unsure, say "y".
911
912config USB_G_HID
913 tristate "HID Gadget"
914 select USB_LIBCOMPOSITE
906 help
907 The HID gadget driver provides generic emulation of USB
908 Human Interface Devices (HID).
909
910 For more information, see Documentation/usb/gadget_hid.txt which
911 includes sample code for accessing the device files.
912
913 Say "y" to link the driver statically, or "m" to build a
914 dynamically linked module called "g_hid".
915
915 help
916 The HID gadget driver provides generic emulation of USB
917 Human Interface Devices (HID).
918
919 For more information, see Documentation/usb/gadget_hid.txt which
920 includes sample code for accessing the device files.
921
922 Say "y" to link the driver statically, or "m" to build a
923 dynamically linked module called "g_hid".
924
925# Standalone / single function gadgets
916config USB_G_DBGP
917 tristate "EHCI Debug Device Gadget"
926config USB_G_DBGP
927 tristate "EHCI Debug Device Gadget"
928 select USB_LIBCOMPOSITE
918 help
919 This gadget emulates an EHCI Debug device. This is useful when you want
920 to interact with an EHCI Debug Port.
921
922 Say "y" to link the driver statically, or "m" to build a
923 dynamically linked module called "g_dbgp".
924
925if USB_G_DBGP

--- 34 unchanged lines hidden ---
929 help
930 This gadget emulates an EHCI Debug device. This is useful when you want
931 to interact with an EHCI Debug Port.
932
933 Say "y" to link the driver statically, or "m" to build a
934 dynamically linked module called "g_dbgp".
935
936if USB_G_DBGP

--- 34 unchanged lines hidden ---