Blame view

drivers/usb/gadget/Kconfig 29.2 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
4
5
6
7
8
9
  #
  # USB Gadget support on a system involves
  #    (a) a peripheral controller, and
  #    (b) the gadget driver using it.
  #
  # NOTE:  Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !!
  #
  #  - Host systems (like PCs) need CONFIG_USB (with "A" jacks).
  #  - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks).
cab00891c   Matt LaPlante   Still more typo f...
10
  #  - Some systems have both kinds of controllers.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
11
12
13
14
  #
  # With help from a special transceiver and a "Mini-AB" jack, systems with
  # both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG).
  #
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
15

b75be4abf   Denis Cheng   USB: Use menuconf...
16
17
  menuconfig USB_GADGET
  	tristate "USB Gadget Support"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
18
19
20
21
22
23
24
25
26
27
  	help
  	   USB is a master/slave protocol, organized with one master
  	   host (such as a PC) controlling up to 127 peripheral devices.
  	   The USB hardware is asymmetric, which makes it easier to set up:
  	   you can't connect a "to-the-host" connector to a peripheral.
  
  	   Linux can run in the host, or in the peripheral.  In both cases
  	   you need a low level bus controller driver, and some software
  	   talking to it.  Peripheral controllers are often discrete silicon,
  	   or are integrated with the CPU in a microcontroller.  The more
e113f29c9   Jules Villard   USB: fix typo in ...
28
  	   familiar host side controllers have names like "EHCI", "OHCI",
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  	   or "UHCI", and are usually integrated into southbridges on PC
  	   motherboards.
  
  	   Enable this configuration option if you want to run Linux inside
  	   a USB peripheral device.  Configure one hardware driver for your
  	   peripheral/device side bus controller, and a "gadget driver" for
  	   your peripheral protocol.  (If you use modular gadget drivers,
  	   you may configure more than one.)
  
  	   If in doubt, say "N" and don't enable these drivers; most people
  	   don't have this kind of hardware (except maybe inside Linux PDAs).
  
  	   For more information, see <http://www.linux-usb.org/gadget> and
  	   the kernel DocBook documentation for this API.
b75be4abf   Denis Cheng   USB: Use menuconf...
43
  if USB_GADGET
70790f633   David Brownell   USB: usb gadget s...
44
  config USB_GADGET_DEBUG
afd0e0f2d   Robert P. J. Day   USB: Remove EXPER...
45
  	boolean "Debugging messages (DEVELOPMENT)"
36e893d25   David Brownell   usb gadget: USB_G...
46
  	depends on DEBUG_KERNEL
70790f633   David Brownell   USB: usb gadget s...
47
48
49
50
51
52
53
54
55
56
  	help
  	   Many controller and gadget drivers will print some debugging
  	   messages if you use this option to ask for those messages.
  
  	   Avoid enabling these messages, even if you're actively
  	   debugging such a driver.  Many drivers will emit so many
  	   messages that the driver timings are affected, which will
  	   either create new failure modes or remove the one you're
  	   trying to track down.  Never enable these messages for a
  	   production build.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
57
  config USB_GADGET_DEBUG_FILES
afd0e0f2d   Robert P. J. Day   USB: Remove EXPER...
58
  	boolean "Debugging information files (DEVELOPMENT)"
36e893d25   David Brownell   usb gadget: USB_G...
59
  	depends on PROC_FS
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
61
62
63
64
65
66
  	help
  	   Some of the drivers in the "gadget" framework can expose
  	   debugging information in files such as /proc/driver/udc
  	   (for a peripheral controller).  The information in these
  	   files may help when you're troubleshooting or bringing up a
  	   driver on a new board.   Enable these files by choosing "Y"
  	   here.  If in doubt, or to conserve kernel memory, say "N".
914a3f3b3   Haavard Skinnemoen   USB: add atmel_us...
67
  config USB_GADGET_DEBUG_FS
afd0e0f2d   Robert P. J. Day   USB: Remove EXPER...
68
  	boolean "Debugging information files in debugfs (DEVELOPMENT)"
36e893d25   David Brownell   usb gadget: USB_G...
69
  	depends on DEBUG_FS
914a3f3b3   Haavard Skinnemoen   USB: add atmel_us...
70
71
72
73
74
75
76
  	help
  	   Some of the drivers in the "gadget" framework can expose
  	   debugging information in files under /sys/kernel/debug/.
  	   The information in these files may help when you're
  	   troubleshooting or bringing up a driver on a new board.
  	   Enable these files by choosing "Y" here.  If in doubt, or
  	   to conserve kernel memory, say "N".
36e893d25   David Brownell   usb gadget: USB_G...
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
  config USB_GADGET_VBUS_DRAW
  	int "Maximum VBUS Power usage (2-500 mA)"
  	range 2 500
  	default 2
  	help
  	   Some devices need to draw power from USB when they are
  	   configured, perhaps to operate circuitry or to recharge
  	   batteries.  This is in addition to any local power supply,
  	   such as an AC adapter or batteries.
  
  	   Enter the maximum power your device draws through USB, in
  	   milliAmperes.  The permitted range of values is 2 - 500 mA;
  	   0 mA would be legal, but can make some hosts misbehave.
  
  	   This value will be used except for system-specific gadget
  	   drivers that have more specific information.
028b271b6   David Brownell   [PATCH] USB: Kcon...
93
94
  config	USB_GADGET_SELECTED
  	boolean
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
95
96
97
  #
  # USB Peripheral Controller Support
  #
a7a19fac8   David Brownell   usb: gadget Kconf...
98
99
100
101
102
103
104
  # The order here is alphabetical, except that integrated controllers go
  # before discrete ones so they will be the initial/default value:
  #   - integrated/SOC controllers first
  #   - licensed IP used in both SOC and discrete versions
  #   - discrete ones (including all PCI-only controllers)
  #   - debug/dummy gadget+hcd is last.
  #
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
105
106
107
108
109
110
111
112
  choice
  	prompt "USB Peripheral Controller"
  	depends on USB_GADGET
  	help
  	   A USB device uses a controller to talk to its host.
  	   Systems should have only one such upstream link.
  	   Many controller drivers are platform-specific; these
  	   often need board-specific hooks.
a7a19fac8   David Brownell   usb: gadget Kconf...
113
114
115
116
117
118
  #
  # Integrated controllers
  #
  
  config USB_GADGET_AT91
  	boolean "Atmel AT91 USB Device Port"
aa781af00   Nicolas Ferre   USB: at91: Add US...
119
  	depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9 && !ARCH_AT91SAM9G45
a7a19fac8   David Brownell   usb: gadget Kconf...
120
  	select USB_GADGET_SELECTED
55d402d85   Thomas Dahlmann   USB: amd5536 UDC ...
121
  	help
a7a19fac8   David Brownell   usb: gadget Kconf...
122
123
124
  	   Many Atmel AT91 processors (such as the AT91RM2000) have a
  	   full speed USB Device Port with support for five configurable
  	   endpoints (plus endpoint zero).
55d402d85   Thomas Dahlmann   USB: amd5536 UDC ...
125
126
  
  	   Say "y" to link the driver statically, or "m" to build a
a7a19fac8   David Brownell   usb: gadget Kconf...
127
  	   dynamically linked module called "at91_udc" and force all
55d402d85   Thomas Dahlmann   USB: amd5536 UDC ...
128
  	   gadget drivers to also be dynamically linked.
a7a19fac8   David Brownell   usb: gadget Kconf...
129
  config USB_AT91
55d402d85   Thomas Dahlmann   USB: amd5536 UDC ...
130
  	tristate
a7a19fac8   David Brownell   usb: gadget Kconf...
131
  	depends on USB_GADGET_AT91
55d402d85   Thomas Dahlmann   USB: amd5536 UDC ...
132
  	default USB_GADGET
55d402d85   Thomas Dahlmann   USB: amd5536 UDC ...
133

914a3f3b3   Haavard Skinnemoen   USB: add atmel_us...
134
135
136
  config USB_GADGET_ATMEL_USBA
  	boolean "Atmel USBA"
  	select USB_GADGET_DUALSPEED
aa781af00   Nicolas Ferre   USB: at91: Add US...
137
  	depends on AVR32 || ARCH_AT91CAP9 || ARCH_AT91SAM9RL || ARCH_AT91SAM9G45
914a3f3b3   Haavard Skinnemoen   USB: add atmel_us...
138
139
  	help
  	  USBA is the integrated high-speed USB Device controller on
ba45ca435   Nicolas Ferre   [ARM] 4940/1: AT9...
140
  	  the AT32AP700x, some AT91SAM9 and AT91CAP9 processors from Atmel.
914a3f3b3   Haavard Skinnemoen   USB: add atmel_us...
141
142
143
144
145
146
  
  config USB_ATMEL_USBA
  	tristate
  	depends on USB_GADGET_ATMEL_USBA
  	default USB_GADGET
  	select USB_GADGET_SELECTED
b504882da   Li Yang   USB: add Freescal...
147
148
  config USB_GADGET_FSL_USB2
  	boolean "Freescale Highspeed USB DR Peripheral Controller"
54e4026b6   Guennadi Liakhovetski   USB: gadget: Add ...
149
  	depends on FSL_SOC || ARCH_MXC
b504882da   Li Yang   USB: add Freescal...
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
  	select USB_GADGET_DUALSPEED
  	help
  	   Some of Freescale PowerPC processors have a High Speed
  	   Dual-Role(DR) USB controller, which supports device mode.
  
  	   The number of programmable endpoints is different through
  	   SOC revisions.
  
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "fsl_usb2_udc" and force
  	   all gadget drivers to also be dynamically linked.
  
  config USB_FSL_USB2
  	tristate
  	depends on USB_GADGET_FSL_USB2
  	default USB_GADGET
  	select USB_GADGET_SELECTED
a7a19fac8   David Brownell   usb: gadget Kconf...
167
168
169
  config USB_GADGET_LH7A40X
  	boolean "LH7A40X"
  	depends on ARCH_LH7A40X
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
170
  	help
a7a19fac8   David Brownell   usb: gadget Kconf...
171
172
173
174
175
176
177
178
179
180
181
  	   This driver provides USB Device Controller driver for LH7A40x
  
  config USB_LH7A40X
  	tristate
  	depends on USB_GADGET_LH7A40X
  	default USB_GADGET
  	select USB_GADGET_SELECTED
  
  config USB_GADGET_OMAP
  	boolean "OMAP USB Device Controller"
  	depends on ARCH_OMAP
f1c9e151b   Tony Lindgren   USB: omap_udc: sy...
182
  	select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG
54b9ed35a   David Brownell   USB: gadget: fix ...
183
  	select USB_OTG_UTILS if ARCH_OMAP
a7a19fac8   David Brownell   usb: gadget Kconf...
184
185
186
187
188
189
  	help
  	   Many Texas Instruments OMAP processors have flexible full
  	   speed USB device controllers, with support for up to 30
  	   endpoints (plus endpoint zero).  This driver supports the
  	   controller in the OMAP 1611, and should work with controllers
  	   in other OMAP processors too, given minor tweaks.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
190
191
  
  	   Say "y" to link the driver statically, or "m" to build a
a7a19fac8   David Brownell   usb: gadget Kconf...
192
  	   dynamically linked module called "omap_udc" and force all
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
193
  	   gadget drivers to also be dynamically linked.
a7a19fac8   David Brownell   usb: gadget Kconf...
194
  config USB_OMAP
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
195
  	tristate
a7a19fac8   David Brownell   usb: gadget Kconf...
196
  	depends on USB_GADGET_OMAP
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
197
  	default USB_GADGET
028b271b6   David Brownell   [PATCH] USB: Kcon...
198
  	select USB_GADGET_SELECTED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
199

a7a19fac8   David Brownell   usb: gadget Kconf...
200
201
202
203
204
205
206
207
208
209
  config USB_OTG
  	boolean "OTG Support"
  	depends on USB_GADGET_OMAP && ARCH_OMAP_OTG && USB_OHCI_HCD
  	help
  	   The most notable feature of USB OTG is support for a
  	   "Dual-Role" device, which can act as either a device
  	   or a host.  The initial role choice can be changed
  	   later, when two dual-role devices talk to each other.
  
  	   Select this only if your OMAP board has a Mini-AB connector.
7a8576204   Philipp Zabel   [ARM] 5120/1: pxa...
210
  config USB_GADGET_PXA25X
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
211
212
  	boolean "PXA 25x or IXP 4xx"
  	depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX
099639113   Russell King   ARM: Fix lubbock ...
213
  	select USB_OTG_UTILS
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
214
215
216
217
218
219
220
221
222
  	help
  	   Intel's PXA 25x series XScale ARM-5TE processors include
  	   an integrated full speed USB 1.1 device controller.  The
  	   controller in the IXP 4xx series is register-compatible.
  
  	   It has fifteen fixed-function endpoints, as well as endpoint
  	   zero (for control transfers).
  
  	   Say "y" to link the driver statically, or "m" to build a
7a8576204   Philipp Zabel   [ARM] 5120/1: pxa...
223
  	   dynamically linked module called "pxa25x_udc" and force all
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
224
  	   gadget drivers to also be dynamically linked.
7a8576204   Philipp Zabel   [ARM] 5120/1: pxa...
225
  config USB_PXA25X
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
226
  	tristate
7a8576204   Philipp Zabel   [ARM] 5120/1: pxa...
227
  	depends on USB_GADGET_PXA25X
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
228
  	default USB_GADGET
028b271b6   David Brownell   [PATCH] USB: Kcon...
229
  	select USB_GADGET_SELECTED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
230
231
232
  
  # if there's only one gadget driver, using only two bulk endpoints,
  # don't waste memory for the other endpoints
7a8576204   Philipp Zabel   [ARM] 5120/1: pxa...
233
234
  config USB_PXA25X_SMALL
  	depends on USB_GADGET_PXA25X
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
235
236
237
238
239
  	bool
  	default n if USB_ETH_RNDIS
  	default y if USB_ZERO
  	default y if USB_ETH
  	default y if USB_G_SERIAL
c41442474   Yoshihiro Shimoda   usb: gadget: R8A6...
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
  config USB_GADGET_R8A66597
  	boolean "Renesas R8A66597 USB Peripheral Controller"
  	select USB_GADGET_DUALSPEED
  	help
  	   R8A66597 is a discrete USB host and peripheral controller chip that
  	   supports both full and high speed USB 2.0 data transfers.
  	   It has nine configurable endpoints, and endpoint zero.
  
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "r8a66597_udc" and force all
  	   gadget drivers to also be dynamically linked.
  
  config USB_R8A66597
  	tristate
  	depends on USB_GADGET_R8A66597
  	default USB_GADGET
  	select USB_GADGET_SELECTED
d75379a53   Robert Jarzmik   usb: pxa27x_udc d...
257
258
  config USB_GADGET_PXA27X
  	boolean "PXA 27x"
9f5351b74   Robert Jarzmik   USB: pxa27x_udc: ...
259
  	depends on ARCH_PXA && (PXA27x || PXA3xx)
7fec3c25b   Robert Jarzmik   USB: pxa27x_udc: ...
260
  	select USB_OTG_UTILS
d75379a53   Robert Jarzmik   usb: pxa27x_udc d...
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
  	help
  	   Intel's PXA 27x series XScale ARM v5TE processors include
  	   an integrated full speed USB 1.1 device controller.
  
  	   It has up to 23 endpoints, as well as endpoint zero (for
  	   control transfers).
  
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "pxa27x_udc" and force all
  	   gadget drivers to also be dynamically linked.
  
  config USB_PXA27X
  	tristate
  	depends on USB_GADGET_PXA27X
  	default USB_GADGET
  	select USB_GADGET_SELECTED
5b7d70c6d   Ben Dooks   USB: Gadget drive...
277
278
279
280
281
282
283
284
285
286
287
288
289
  config USB_GADGET_S3C_HSOTG
  	boolean "S3C HS/OtG USB Device controller"
  	depends on S3C_DEV_USB_HSOTG
  	select USB_GADGET_S3C_HSOTG_PIO
  	help
  	  The Samsung S3C64XX USB2.0 high-speed gadget controller
  	  integrated into the S3C64XX series SoC.
  
  config USB_S3C_HSOTG
  	tristate
  	depends on USB_GADGET_S3C_HSOTG
  	default USB_GADGET
  	select USB_GADGET_SELECTED
c03e7d4bc   Paulius Zaleckas   USB: gadget: fix ...
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
  config USB_GADGET_IMX
  	boolean "Freescale IMX USB Peripheral Controller"
  	depends on ARCH_MX1
  	help
  	   Freescale's IMX series include an integrated full speed
  	   USB 1.1 device controller.  The controller in the IMX series
  	   is register-compatible.
  
  	   It has Six fixed-function endpoints, as well as endpoint
  	   zero (for control transfers).
  
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "imx_udc" and force all
  	   gadget drivers to also be dynamically linked.
  
  config USB_IMX
  	tristate
  	depends on USB_GADGET_IMX
  	default USB_GADGET
  	select USB_GADGET_SELECTED
a7a19fac8   David Brownell   usb: gadget Kconf...
310
311
312
  config USB_GADGET_S3C2410
  	boolean "S3C2410 USB Device Controller"
  	depends on ARCH_S3C2410
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
313
  	help
a7a19fac8   David Brownell   usb: gadget Kconf...
314
315
316
  	  Samsung's S3C2410 is an ARM-4 processor with an integrated
  	  full speed USB 1.1 device controller.  It has 4 configurable
  	  endpoints, as well as endpoint zero (for control transfers).
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
317

a7a19fac8   David Brownell   usb: gadget Kconf...
318
319
  	  This driver has been tested on the S3C2410, S3C2412, and
  	  S3C2440 processors.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
320

a7a19fac8   David Brownell   usb: gadget Kconf...
321
  config USB_S3C2410
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
322
  	tristate
a7a19fac8   David Brownell   usb: gadget Kconf...
323
  	depends on USB_GADGET_S3C2410
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
324
  	default USB_GADGET
028b271b6   David Brownell   [PATCH] USB: Kcon...
325
  	select USB_GADGET_SELECTED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
326

a7a19fac8   David Brownell   usb: gadget Kconf...
327
328
329
  config USB_S3C2410_DEBUG
  	boolean "S3C2410 udc debug messages"
  	depends on USB_GADGET_S3C2410
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
330

a7a19fac8   David Brownell   usb: gadget Kconf...
331
332
333
  #
  # Controllers available in both integrated and discrete versions
  #
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
334

a7a19fac8   David Brownell   usb: gadget Kconf...
335
  # musb builds in ../musb along with host support
550a7375f   Felipe Balbi   USB: Add MUSB and...
336
  config USB_GADGET_MUSB_HDRC
085ad4067   Bryan Wu   USB: musb: add Bl...
337
  	boolean "Inventra HDRC USB Peripheral (TI, ADI, ...)"
550a7375f   Felipe Balbi   USB: Add MUSB and...
338
339
340
341
342
  	depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG)
  	select USB_GADGET_DUALSPEED
  	select USB_GADGET_SELECTED
  	help
  	  This OTG-capable silicon IP is used in dual designs including
085ad4067   Bryan Wu   USB: musb: add Bl...
343
  	  the TI DaVinci, OMAP 243x, OMAP 343x, TUSB 6010, and ADI Blackfin
550a7375f   Felipe Balbi   USB: Add MUSB and...
344

a7a19fac8   David Brownell   usb: gadget Kconf...
345
346
347
  config USB_GADGET_M66592
  	boolean "Renesas M66592 USB Peripheral Controller"
  	select USB_GADGET_DUALSPEED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
348
  	help
a7a19fac8   David Brownell   usb: gadget Kconf...
349
350
351
  	   M66592 is a discrete USB peripheral controller chip that
  	   supports both full and high speed USB 2.0 data transfers.
  	   It has seven configurable endpoints, and endpoint zero.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
352
353
  
  	   Say "y" to link the driver statically, or "m" to build a
a7a19fac8   David Brownell   usb: gadget Kconf...
354
  	   dynamically linked module called "m66592_udc" and force all
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
355
  	   gadget drivers to also be dynamically linked.
a7a19fac8   David Brownell   usb: gadget Kconf...
356
  config USB_M66592
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
357
  	tristate
a7a19fac8   David Brownell   usb: gadget Kconf...
358
  	depends on USB_GADGET_M66592
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
359
  	default USB_GADGET
028b271b6   David Brownell   [PATCH] USB: Kcon...
360
  	select USB_GADGET_SELECTED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
361

a7a19fac8   David Brownell   usb: gadget Kconf...
362
363
364
365
366
367
368
369
  #
  # Controllers available only in discrete form (and all PCI controllers)
  #
  
  config USB_GADGET_AMD5536UDC
  	boolean "AMD5536 UDC"
  	depends on PCI
  	select USB_GADGET_DUALSPEED
3fc154b6b   Arnaud Patard   USB Gadget driver...
370
  	help
a7a19fac8   David Brownell   usb: gadget Kconf...
371
372
373
374
375
  	   The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
  	   It is a USB Highspeed DMA capable USB device controller. Beside ep0
  	   it provides 4 IN and 4 OUT endpoints (bulk or interrupt type).
  	   The UDC port supports OTG operation, and may be used as a host port
  	   if it's not being used to implement peripheral or OTG roles.
3fc154b6b   Arnaud Patard   USB Gadget driver...
376

a7a19fac8   David Brownell   usb: gadget Kconf...
377
378
379
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "amd5536udc" and force all
  	   gadget drivers to also be dynamically linked.
3fc154b6b   Arnaud Patard   USB Gadget driver...
380

a7a19fac8   David Brownell   usb: gadget Kconf...
381
  config USB_AMD5536UDC
3fc154b6b   Arnaud Patard   USB Gadget driver...
382
  	tristate
a7a19fac8   David Brownell   usb: gadget Kconf...
383
  	depends on USB_GADGET_AMD5536UDC
3fc154b6b   Arnaud Patard   USB Gadget driver...
384
385
  	default USB_GADGET
  	select USB_GADGET_SELECTED
3948f0e0c   Li Yang   usb: add Freescal...
386
387
388
389
390
391
392
393
394
395
396
  config USB_GADGET_FSL_QE
  	boolean "Freescale QE/CPM USB Device Controller"
  	depends on FSL_SOC && (QUICC_ENGINE || CPM)
  	help
  	   Some of Freescale PowerPC processors have a Full Speed
  	   QE/CPM2 USB controller, which support device mode with 4
  	   programmable endpoints. This driver supports the
  	   controller in the MPC8360 and MPC8272, and should work with
  	   controllers having QE or CPM2, given minor tweaks.
  
  	   Set CONFIG_USB_GADGET to "m" to build this driver as a
692105b8a   Matt LaPlante   trivial: fix typo...
397
  	   dynamically linked module called "fsl_qe_udc".
3948f0e0c   Li Yang   usb: add Freescal...
398
399
400
401
402
403
  
  config USB_FSL_QE
  	tristate
  	depends on USB_GADGET_FSL_QE
  	default USB_GADGET
  	select USB_GADGET_SELECTED
aa69a8093   David Lopo   USB: gadget: MIPS...
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
  config USB_GADGET_CI13XXX
  	boolean "MIPS USB CI13xxx"
  	depends on PCI
  	select USB_GADGET_DUALSPEED
  	help
  	  MIPS USB IP core family device controller
  	  Currently it only supports IP part number CI13412
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "ci13xxx_udc" and force all
  	  gadget drivers to also be dynamically linked.
  
  config USB_CI13XXX
  	tristate
  	depends on USB_GADGET_CI13XXX
  	default USB_GADGET
  	select USB_GADGET_SELECTED
a7a19fac8   David Brownell   usb: gadget Kconf...
421
422
423
424
425
426
427
  config USB_GADGET_NET2280
  	boolean "NetChip 228x"
  	depends on PCI
  	select USB_GADGET_DUALSPEED
  	help
  	   NetChip 2280 / 2282 is a PCI based USB peripheral controller which
  	   supports both full and high speed USB 2.0 data transfers.
3fc154b6b   Arnaud Patard   USB Gadget driver...
428

a7a19fac8   David Brownell   usb: gadget Kconf...
429
430
431
432
433
434
435
436
437
438
439
440
  	   It has six configurable endpoints, as well as endpoint zero
  	   (for control transfers) and several endpoints with dedicated
  	   functions.
  
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "net2280" and force all
  	   gadget drivers to also be dynamically linked.
  
  config USB_NET2280
  	tristate
  	depends on USB_GADGET_NET2280
  	default USB_GADGET
bae4bd848   David Brownell   [PATCH] USB: add ...
441
  	select USB_GADGET_SELECTED
a7a19fac8   David Brownell   usb: gadget Kconf...
442
443
444
445
  
  config USB_GADGET_GOKU
  	boolean "Toshiba TC86C001 'Goku-S'"
  	depends on PCI
bae4bd848   David Brownell   [PATCH] USB: add ...
446
  	help
a7a19fac8   David Brownell   usb: gadget Kconf...
447
448
449
450
451
  	   The Toshiba TC86C001 is a PCI device which includes controllers
  	   for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI).
  
  	   The device controller has three configurable (bulk or interrupt)
  	   endpoints, plus endpoint zero (for control transfers).
bae4bd848   David Brownell   [PATCH] USB: add ...
452
453
  
  	   Say "y" to link the driver statically, or "m" to build a
a7a19fac8   David Brownell   usb: gadget Kconf...
454
  	   dynamically linked module called "goku_udc" and to force all
bae4bd848   David Brownell   [PATCH] USB: add ...
455
  	   gadget drivers to also be dynamically linked.
a7a19fac8   David Brownell   usb: gadget Kconf...
456
  config USB_GOKU
bae4bd848   David Brownell   [PATCH] USB: add ...
457
  	tristate
a7a19fac8   David Brownell   usb: gadget Kconf...
458
  	depends on USB_GADGET_GOKU
bae4bd848   David Brownell   [PATCH] USB: add ...
459
  	default USB_GADGET
a7a19fac8   David Brownell   usb: gadget Kconf...
460
  	select USB_GADGET_SELECTED
5be19a9da   Xiaochen Shen   USB: Add Intel La...
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
  config USB_GADGET_LANGWELL
  	boolean "Intel Langwell USB Device Controller"
  	depends on PCI
  	select USB_GADGET_DUALSPEED
  	help
  	   Intel Langwell USB Device Controller is a High-Speed USB
  	   On-The-Go device controller.
  
  	   The number of programmable endpoints is different through
  	   controller revision.
  
  	   Say "y" to link the driver statically, or "m" to build a
  	   dynamically linked module called "langwell_udc" and force all
  	   gadget drivers to also be dynamically linked.
  
  config USB_LANGWELL
  	tristate
  	depends on USB_GADGET_LANGWELL
  	default USB_GADGET
  	select USB_GADGET_SELECTED
a7a19fac8   David Brownell   usb: gadget Kconf...
481
482
483
484
  
  #
  # LAST -- dummy/emulated controller
  #
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
485
486
487
  
  config USB_GADGET_DUMMY_HCD
  	boolean "Dummy HCD (DEVELOPMENT)"
afd0e0f2d   Robert P. J. Day   USB: Remove EXPER...
488
  	depends on USB=y || (USB=m && USB_GADGET=m)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
  	select USB_GADGET_DUALSPEED
  	help
  	  This host controller driver emulates USB, looping all data transfer
  	  requests back to a USB "gadget driver" in the same host.  The host
  	  side is the master; the gadget side is the slave.  Gadget drivers
  	  can be high, full, or low speed; and they have access to endpoints
  	  like those from NET2280, PXA2xx, or SA1100 hardware.
  	  
  	  This may help in some stages of creating a driver to embed in a
  	  Linux device, since it lets you debug several parts of the gadget
  	  driver without its hardware or drivers being involved.
  	  
  	  Since such a gadget side driver needs to interoperate with a host
  	  side Linux-USB device driver, this may help to debug both sides
  	  of a USB protocol stack.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "dummy_hcd" and force all
  	  gadget drivers to also be dynamically linked.
  
  config USB_DUMMY_HCD
  	tristate
  	depends on USB_GADGET_DUMMY_HCD
  	default USB_GADGET
028b271b6   David Brownell   [PATCH] USB: Kcon...
513
  	select USB_GADGET_SELECTED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
  
  # NOTE:  Please keep dummy_hcd LAST so that "real hardware" appears
  # first and will be selected by default.
  
  endchoice
  
  config USB_GADGET_DUALSPEED
  	bool
  	depends on USB_GADGET
  	default n
  	help
  	  Means that gadget drivers should include extra descriptors
  	  and code to handle dual-speed controllers.
  
  #
  # USB Gadget Drivers
  #
  choice
  	tristate "USB Gadget Drivers"
028b271b6   David Brownell   [PATCH] USB: Kcon...
533
  	depends on USB_GADGET && USB_GADGET_SELECTED
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
  	default USB_ETH
  	help
  	  A Linux "Gadget Driver" talks to the USB Peripheral Controller
  	  driver through the abstract "gadget" API.  Some other operating
  	  systems call these "client" drivers, of which "class drivers"
  	  are a subset (implementing a USB device class specification).
  	  A gadget driver implements one or more USB functions using
  	  the peripheral hardware.
  
  	  Gadget drivers are hardware-neutral, or "platform independent",
  	  except that they sometimes must understand quirks or limitations
  	  of the particular controllers they work with.  For example, when
  	  a controller doesn't support alternate configurations or provide
  	  enough of the right types of endpoints, the gadget driver might
  	  not be able work with that controller, or might need to implement
  	  a less common variant of a device class protocol.
  
  # this first set of drivers all depend on bulk-capable hardware.
  
  config USB_ZERO
  	tristate "Gadget Zero (DEVELOPMENT)"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
  	help
  	  Gadget Zero is a two-configuration device.  It either sinks and
  	  sources bulk data; or it loops back a configurable number of
  	  transfers.  It also implements control requests, for "chapter 9"
  	  conformance.  The driver needs only two bulk-capable endpoints, so
  	  it can work on top of most device-side usb controllers.  It's
  	  useful for testing, and is also a working example showing how
  	  USB "gadget drivers" can be written.
  
  	  Make this be the first driver you try using on top of any new
  	  USB peripheral controller driver.  Then you can use host-side
  	  test software, like the "usbtest" driver, to put your hardware
  	  and its driver through a basic set of functional tests.
  
  	  Gadget Zero also works with the host-side "usb-skeleton" driver,
  	  and with many kinds of host-side test software.  You may need
  	  to tweak product and vendor IDs before host software knows about
  	  this device, and arrange to select an appropriate configuration.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_zero".
  
  config USB_ZERO_HNPTEST
  	boolean "HNP Test Device"
  	depends on USB_ZERO && USB_OTG
  	help
  	  You can configure this device to enumerate using the device
  	  identifiers of the USB-OTG test device.  That means that when
  	  this gadget connects to another OTG device, with this one using
  	  the "B-Peripheral" role, that device will use HNP to let this
  	  one serve as the USB host instead (in the "B-Host" role).
c6994e6f0   Bryan Wu   USB: gadget: add ...
586
587
588
  config USB_AUDIO
  	tristate "Audio Gadget (EXPERIMENTAL)"
  	depends on SND
04950737d   Randy Dunlap   USB: gadget audio...
589
  	select SND_PCM
c6994e6f0   Bryan Wu   USB: gadget: add ...
590
591
592
593
594
595
596
597
598
599
  	help
  	  Gadget Audio is compatible with USB Audio Class specification 1.0.
  	  It will include at least one AudioControl interface, zero or more
  	  AudioStream interface and zero or more MIDIStream interface.
  
  	  Gadget Audio will use on-board ALSA (CONFIG_SND) audio card to
  	  playback or capture audio stream.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_audio".
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
600
601
602
  config USB_ETH
  	tristate "Ethernet Gadget (with CDC Ethernet support)"
  	depends on NET
9e221be81   Randy Dunlap   USB: gadget: ethe...
603
  	select CRC32
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
604
  	help
9b39e9dde   Brian Niebuhr   USB: gadget: Add ...
605
606
  	  This driver implements Ethernet style communication, in one of
  	  several ways:
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
607
608
609
610
611
612
613
614
  	  
  	   - The "Communication Device Class" (CDC) Ethernet Control Model.
  	     That protocol is often avoided with pure Ethernet adapters, in
  	     favor of simpler vendor-specific hardware, but is widely
  	     supported by firmware for smart network devices.
  
  	   - On hardware can't implement that protocol, a simple CDC subset
  	     is used, placing fewer demands on USB.
9b39e9dde   Brian Niebuhr   USB: gadget: Add ...
615
616
617
618
619
  	   - CDC Ethernet Emulation Model (EEM) is a newer standard that has
  	     a simpler interface that can be used by more USB hardware.
  
  	  RNDIS support is an additional option, more demanding than than
  	  subset.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
  
  	  Within the USB device, this gadget driver exposes a network device
  	  "usbX", where X depends on what other networking devices you have.
  	  Treat it like a two-node Ethernet link:  host, and gadget.
  
  	  The Linux-USB host-side "usbnet" driver interoperates with this
  	  driver, so that deep I/O queues can be supported.  On 2.4 kernels,
  	  use "CDCEther" instead, if you're using the CDC option. That CDC
  	  mode should also interoperate with standard CDC Ethernet class
  	  drivers on other host operating systems.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_ether".
  
  config USB_ETH_RNDIS
afd0e0f2d   Robert P. J. Day   USB: Remove EXPER...
635
636
  	bool "RNDIS support"
  	depends on USB_ETH
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
637
638
639
640
641
642
643
644
645
646
647
648
649
650
  	default y
  	help
  	   Microsoft Windows XP bundles the "Remote NDIS" (RNDIS) protocol,
  	   and Microsoft provides redistributable binary RNDIS drivers for
  	   older versions of Windows.
  
  	   If you say "y" here, the Ethernet gadget driver will try to provide
  	   a second device configuration, supporting RNDIS to talk to such
  	   Microsoft USB hosts.
  	   
  	   To make MS-Windows work with this, use Documentation/usb/linux.inf
  	   as the "driver info file".  For versions of MS-Windows older than
  	   XP, you'll need to download drivers from Microsoft's website; a URL
  	   is given in comments found in that info file.
9b39e9dde   Brian Niebuhr   USB: gadget: Add ...
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
  config USB_ETH_EEM
         bool "Ethernet Emulation Model (EEM) support"
         depends on USB_ETH
         default n
         help
           CDC EEM is a newer USB standard that is somewhat simpler than CDC ECM
           and therefore can be supported by more hardware.  Technically ECM and
           EEM are designed for different applications.  The ECM model extends
           the network interface to the target (e.g. a USB cable modem), and the
           EEM model is for mobile devices to communicate with hosts using
           ethernet over USB.  For Linux gadgets, however, the interface with
           the host is the same (a usbX device), so the differences are minimal.
  
           If you say "y" here, the Ethernet gadget driver will use the EEM
           protocol rather than ECM.  If unsure, say "n".
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
666
667
668
669
670
671
672
673
674
  config USB_GADGETFS
  	tristate "Gadget Filesystem (EXPERIMENTAL)"
  	depends on EXPERIMENTAL
  	help
  	  This driver provides a filesystem based API that lets user mode
  	  programs implement a single-configuration USB device, including
  	  endpoint I/O and control requests that don't relate to enumeration.
  	  All endpoints, transfer speeds, and transfer types supported by
  	  the hardware are available, through read() and write() calls.
afd0e0f2d   Robert P. J. Day   USB: Remove EXPER...
675
676
  	  Currently, this option is still labelled as EXPERIMENTAL because
  	  of existing race conditions in the underlying in-kernel AIO core.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
677
678
679
680
681
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "gadgetfs".
  
  config USB_FILE_STORAGE
  	tristate "File-backed Storage Gadget"
878402896   Randy Dunlap   USB: gadget-stora...
682
  	depends on BLOCK
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
  	help
  	  The File-backed Storage Gadget acts as a USB Mass Storage
  	  disk drive.  As its storage repository it can use a regular
  	  file or a block device (in much the same way as the "loop"
  	  device driver), specified as a module parameter.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_file_storage".
  
  config USB_FILE_STORAGE_TEST
  	bool "File-backed Storage Gadget testing version"
  	depends on USB_FILE_STORAGE
  	default n
  	help
  	  Say "y" to generate the larger testing version of the
  	  File-backed Storage Gadget, useful for probing the
  	  behavior of USB Mass Storage hosts.  Not needed for
  	  normal operation.
d23b0f08d   Michal Nazarewicz   USB: g_mass_stora...
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
  config USB_MASS_STORAGE
  	tristate "Mass Storage Gadget"
  	depends on BLOCK
  	help
  	  The Mass Storage Gadget acts as a USB Mass Storage disk drive.
  	  As its storage repository it can use a regular file or a block
  	  device (in much the same way as the "loop" device driver),
  	  specified as a module parameter or sysfs option.
  
  	  This is heavily based on File-backed Storage Gadget and in most
  	  cases you will want to use FSG instead.  This gadget is mostly
  	  here to test the functionality of the Mass Storage Function
  	  which may be used with composite framework.
  
  	  Say "y" to link the driver statically, or "m" to build
  	  a dynamically linked module called "g_file_storage".  If unsure,
  	  consider File-backed Storage Gadget.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
718
  config USB_G_SERIAL
3086775a4   Felipe Balbi   usb gadget: cdc o...
719
  	tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
720
721
722
723
724
  	help
  	  The Serial Gadget talks to the Linux-USB generic serial driver.
  	  This driver supports a CDC-ACM module option, which can be used
  	  to interoperate with MS-Windows hosts or with the Linux-USB
  	  "cdc-acm" driver.
3086775a4   Felipe Balbi   usb gadget: cdc o...
725
726
727
  	  This driver also supports a CDC-OBEX option.  You will need a
  	  user space OBEX server talking to /dev/ttyGS*, since the kernel
  	  itself doesn't implement the OBEX protocol.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
728
729
730
731
732
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_serial".
  
  	  For more information, see Documentation/usb/gadget_serial.txt
  	  which includes instructions and a "driver info file" needed to
3086775a4   Felipe Balbi   usb gadget: cdc o...
733
  	  make MS-Windows work with CDC ACM.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
734

f2ebf92c9   Ben Williamson   USB: gmidi: New U...
735
736
737
738
739
740
741
742
743
744
745
746
747
  config USB_MIDI_GADGET
  	tristate "MIDI Gadget (EXPERIMENTAL)"
  	depends on SND && EXPERIMENTAL
  	select SND_RAWMIDI
  	help
  	  The MIDI Gadget acts as a USB Audio device, with one MIDI
  	  input and one MIDI output. These MIDI jacks appear as
  	  a sound "card" in the ALSA sound system. Other MIDI
  	  connections can then be made on the gadget system, using
  	  ALSA's aconnect utility etc.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_midi".
25a010c8c   Craig W. Nadler   USB: add Printer ...
748
749
750
751
752
753
754
755
756
757
758
759
760
761
  config USB_G_PRINTER
  	tristate "Printer Gadget"
  	help
  	  The Printer Gadget channels data between the USB host and a
  	  userspace program driving the print engine. The user space
  	  program reads and writes the device file /dev/g_printer to
  	  receive or send printer data. It can use ioctl calls to
  	  the device file to get or set printer status.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_printer".
  
  	  For more information, see Documentation/usb/gadget_printer.txt
  	  which includes sample code for accessing the device file.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
762

19e206801   David Brownell   usb gadget: new "...
763
764
  config USB_CDC_COMPOSITE
  	tristate "CDC Composite Device (Ethernet and ACM)"
4ddd9ec17   Randy Dunlap   usb gadget: g_cdc...
765
  	depends on NET
19e206801   David Brownell   usb gadget: new "...
766
767
768
769
770
771
772
773
774
775
  	help
  	  This driver provides two functions in one configuration:
  	  a CDC Ethernet (ECM) link, and a CDC ACM (serial port) link.
  
  	  This driver requires four bulk and two interrupt endpoints,
  	  plus the ability to handle altsettings.  Not all peripheral
  	  controllers are that capable.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module.
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
776
777
  config USB_G_MULTI
  	tristate "Multifunction Composite Gadget (EXPERIMENTAL)"
5791e1034   Randy Dunlap   USB: g_multi kcon...
778
  	depends on BLOCK && NET
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
779
780
781
782
  	help
  	  The Multifunction Composite Gadget provides Ethernet (RNDIS
  	  and/or CDC Ethernet), mass storage and ACM serial link
  	  interfaces.
5791e1034   Randy Dunlap   USB: g_multi kcon...
783
  	  You will be asked to choose which of the two configurations is
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
784
  	  to be available in the gadget.  At least one configuration must
5791e1034   Randy Dunlap   USB: g_multi kcon...
785
  	  be chosen to make the gadget usable.  Selecting more than one
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
786
  	  configuration will prevent Windows from automatically detecting
5791e1034   Randy Dunlap   USB: g_multi kcon...
787
  	  the gadget as a composite gadget, so an INF file will be needed to
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
788
789
790
791
792
793
794
795
796
797
798
799
  	  use the gadget.
  
  	  Say "y" to link the driver statically, or "m" to build a
  	  dynamically linked module called "g_multi".
  
  config USB_G_MULTI_RNDIS
  	bool "RNDIS + CDC Serial + Storage configuration"
  	depends on USB_G_MULTI
  	default y
  	help
  	  This option enables a configuration with RNDIS, CDC Serial and
  	  Mass Storage functions available in the Multifunction Composite
5791e1034   Randy Dunlap   USB: g_multi kcon...
800
801
  	  Gadget.  This is the configuration dedicated for Windows since RNDIS
  	  is Microsoft's protocol.
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
802
803
804
805
806
807
808
809
810
811
  
  	  If unsure, say "y".
  
  config USB_G_MULTI_CDC
  	bool "CDC Ethernet + CDC Serial + Storage configuration"
  	depends on USB_G_MULTI
  	default n
  	help
  	  This option enables a configuration with CDC Ethernet (ECM), CDC
  	  Serial and Mass Storage functions available in the Multifunction
5791e1034   Randy Dunlap   USB: g_multi kcon...
812
  	  Composite Gadget.
f176a5d81   Michal Nazarewicz   USB: g_multi: Mul...
813
814
  
  	  If unsure, say "y".
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
815
816
817
818
819
820
  # put drivers that need isochronous transfer support (for audio
  # or video class gadget drivers), or specific hardware, here.
  
  # - none yet
  
  endchoice
b75be4abf   Denis Cheng   USB: Use menuconf...
821
  endif # USB_GADGET