aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/gadget/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/gadget/Kconfig')
-rw-r--r--drivers/usb/gadget/Kconfig315
1 files changed, 189 insertions, 126 deletions
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index acc95b2ac6f8..dd4cd5a51370 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -45,7 +45,7 @@ if USB_GADGET
45 45
46config USB_GADGET_DEBUG 46config USB_GADGET_DEBUG
47 boolean "Debugging messages (DEVELOPMENT)" 47 boolean "Debugging messages (DEVELOPMENT)"
48 depends on USB_GADGET && DEBUG_KERNEL 48 depends on DEBUG_KERNEL
49 help 49 help
50 Many controller and gadget drivers will print some debugging 50 Many controller and gadget drivers will print some debugging
51 messages if you use this option to ask for those messages. 51 messages if you use this option to ask for those messages.
@@ -59,7 +59,7 @@ config USB_GADGET_DEBUG
59 59
60config USB_GADGET_DEBUG_FILES 60config USB_GADGET_DEBUG_FILES
61 boolean "Debugging information files (DEVELOPMENT)" 61 boolean "Debugging information files (DEVELOPMENT)"
62 depends on USB_GADGET && PROC_FS 62 depends on PROC_FS
63 help 63 help
64 Some of the drivers in the "gadget" framework can expose 64 Some of the drivers in the "gadget" framework can expose
65 debugging information in files such as /proc/driver/udc 65 debugging information in files such as /proc/driver/udc
@@ -70,7 +70,7 @@ config USB_GADGET_DEBUG_FILES
70 70
71config USB_GADGET_DEBUG_FS 71config USB_GADGET_DEBUG_FS
72 boolean "Debugging information files in debugfs (DEVELOPMENT)" 72 boolean "Debugging information files in debugfs (DEVELOPMENT)"
73 depends on USB_GADGET && DEBUG_FS 73 depends on DEBUG_FS
74 help 74 help
75 Some of the drivers in the "gadget" framework can expose 75 Some of the drivers in the "gadget" framework can expose
76 debugging information in files under /sys/kernel/debug/. 76 debugging information in files under /sys/kernel/debug/.
@@ -79,12 +79,36 @@ config USB_GADGET_DEBUG_FS
79 Enable these files by choosing "Y" here. If in doubt, or 79 Enable these files by choosing "Y" here. If in doubt, or
80 to conserve kernel memory, say "N". 80 to conserve kernel memory, say "N".
81 81
82config USB_GADGET_VBUS_DRAW
83 int "Maximum VBUS Power usage (2-500 mA)"
84 range 2 500
85 default 2
86 help
87 Some devices need to draw power from USB when they are
88 configured, perhaps to operate circuitry or to recharge
89 batteries. This is in addition to any local power supply,
90 such as an AC adapter or batteries.
91
92 Enter the maximum power your device draws through USB, in
93 milliAmperes. The permitted range of values is 2 - 500 mA;
94 0 mA would be legal, but can make some hosts misbehave.
95
96 This value will be used except for system-specific gadget
97 drivers that have more specific information.
98
82config USB_GADGET_SELECTED 99config USB_GADGET_SELECTED
83 boolean 100 boolean
84 101
85# 102#
86# USB Peripheral Controller Support 103# USB Peripheral Controller Support
87# 104#
105# The order here is alphabetical, except that integrated controllers go
106# before discrete ones so they will be the initial/default value:
107# - integrated/SOC controllers first
108# - licensed IP used in both SOC and discrete versions
109# - discrete ones (including all PCI-only controllers)
110# - debug/dummy gadget+hcd is last.
111#
88choice 112choice
89 prompt "USB Peripheral Controller" 113 prompt "USB Peripheral Controller"
90 depends on USB_GADGET 114 depends on USB_GADGET
@@ -94,26 +118,27 @@ choice
94 Many controller drivers are platform-specific; these 118 Many controller drivers are platform-specific; these
95 often need board-specific hooks. 119 often need board-specific hooks.
96 120
97config USB_GADGET_AMD5536UDC 121#
98 boolean "AMD5536 UDC" 122# Integrated controllers
99 depends on PCI 123#
100 select USB_GADGET_DUALSPEED 124
125config USB_GADGET_AT91
126 boolean "Atmel AT91 USB Device Port"
127 depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9
128 select USB_GADGET_SELECTED
101 help 129 help
102 The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge. 130 Many Atmel AT91 processors (such as the AT91RM2000) have a
103 It is a USB Highspeed DMA capable USB device controller. Beside ep0 131 full speed USB Device Port with support for five configurable
104 it provides 4 IN and 4 OUT endpoints (bulk or interrupt type). 132 endpoints (plus endpoint zero).
105 The UDC port supports OTG operation, and may be used as a host port
106 if it's not being used to implement peripheral or OTG roles.
107 133
108 Say "y" to link the driver statically, or "m" to build a 134 Say "y" to link the driver statically, or "m" to build a
109 dynamically linked module called "amd5536udc" and force all 135 dynamically linked module called "at91_udc" and force all
110 gadget drivers to also be dynamically linked. 136 gadget drivers to also be dynamically linked.
111 137
112config USB_AMD5536UDC 138config USB_AT91
113 tristate 139 tristate
114 depends on USB_GADGET_AMD5536UDC 140 depends on USB_GADGET_AT91
115 default USB_GADGET 141 default USB_GADGET
116 select USB_GADGET_SELECTED
117 142
118config USB_GADGET_ATMEL_USBA 143config USB_GADGET_ATMEL_USBA
119 boolean "Atmel USBA" 144 boolean "Atmel USBA"
@@ -150,28 +175,50 @@ config USB_FSL_USB2
150 default USB_GADGET 175 default USB_GADGET
151 select USB_GADGET_SELECTED 176 select USB_GADGET_SELECTED
152 177
153config USB_GADGET_NET2280 178config USB_GADGET_LH7A40X
154 boolean "NetChip 228x" 179 boolean "LH7A40X"
155 depends on PCI 180 depends on ARCH_LH7A40X
156 select USB_GADGET_DUALSPEED
157 help 181 help
158 NetChip 2280 / 2282 is a PCI based USB peripheral controller which 182 This driver provides USB Device Controller driver for LH7A40x
159 supports both full and high speed USB 2.0 data transfers. 183
160 184config USB_LH7A40X
161 It has six configurable endpoints, as well as endpoint zero 185 tristate
162 (for control transfers) and several endpoints with dedicated 186 depends on USB_GADGET_LH7A40X
163 functions. 187 default USB_GADGET
188 select USB_GADGET_SELECTED
189
190config USB_GADGET_OMAP
191 boolean "OMAP USB Device Controller"
192 depends on ARCH_OMAP
193 select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 || MACH_OMAP_H4_OTG
194 help
195 Many Texas Instruments OMAP processors have flexible full
196 speed USB device controllers, with support for up to 30
197 endpoints (plus endpoint zero). This driver supports the
198 controller in the OMAP 1611, and should work with controllers
199 in other OMAP processors too, given minor tweaks.
164 200
165 Say "y" to link the driver statically, or "m" to build a 201 Say "y" to link the driver statically, or "m" to build a
166 dynamically linked module called "net2280" and force all 202 dynamically linked module called "omap_udc" and force all
167 gadget drivers to also be dynamically linked. 203 gadget drivers to also be dynamically linked.
168 204
169config USB_NET2280 205config USB_OMAP
170 tristate 206 tristate
171 depends on USB_GADGET_NET2280 207 depends on USB_GADGET_OMAP
172 default USB_GADGET 208 default USB_GADGET
173 select USB_GADGET_SELECTED 209 select USB_GADGET_SELECTED
174 210
211config USB_OTG
212 boolean "OTG Support"
213 depends on USB_GADGET_OMAP && ARCH_OMAP_OTG && USB_OHCI_HCD
214 help
215 The most notable feature of USB OTG is support for a
216 "Dual-Role" device, which can act as either a device
217 or a host. The initial role choice can be changed
218 later, when two dual-role devices talk to each other.
219
220 Select this only if your OMAP board has a Mini-AB connector.
221
175config USB_GADGET_PXA25X 222config USB_GADGET_PXA25X
176 boolean "PXA 25x or IXP 4xx" 223 boolean "PXA 25x or IXP 4xx"
177 depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX 224 depends on (ARCH_PXA && PXA25x) || ARCH_IXP4XX
@@ -203,34 +250,6 @@ config USB_PXA25X_SMALL
203 default y if USB_ETH 250 default y if USB_ETH
204 default y if USB_G_SERIAL 251 default y if USB_G_SERIAL
205 252
206config USB_GADGET_M66592
207 boolean "Renesas M66592 USB Peripheral Controller"
208 select USB_GADGET_DUALSPEED
209 help
210 M66592 is a discrete USB peripheral controller chip that
211 supports both full and high speed USB 2.0 data transfers.
212 It has seven configurable endpoints, and endpoint zero.
213
214 Say "y" to link the driver statically, or "m" to build a
215 dynamically linked module called "m66592_udc" and force all
216 gadget drivers to also be dynamically linked.
217
218config USB_M66592
219 tristate
220 depends on USB_GADGET_M66592
221 default USB_GADGET
222 select USB_GADGET_SELECTED
223
224config SUPERH_BUILT_IN_M66592
225 boolean "Enable SuperH built-in USB like the M66592"
226 depends on USB_GADGET_M66592 && CPU_SUBTYPE_SH7722
227 help
228 SH7722 has USB like the M66592.
229
230 The transfer rate is very slow when use "Ethernet Gadget".
231 However, this problem is improved if change a value of
232 NET_IP_ALIGN to 4.
233
234config USB_GADGET_PXA27X 253config USB_GADGET_PXA27X
235 boolean "PXA 27x" 254 boolean "PXA 27x"
236 depends on ARCH_PXA && PXA27x 255 depends on ARCH_PXA && PXA27x
@@ -251,40 +270,32 @@ config USB_PXA27X
251 default USB_GADGET 270 default USB_GADGET
252 select USB_GADGET_SELECTED 271 select USB_GADGET_SELECTED
253 272
254config USB_GADGET_GOKU 273config USB_GADGET_S3C2410
255 boolean "Toshiba TC86C001 'Goku-S'" 274 boolean "S3C2410 USB Device Controller"
256 depends on PCI 275 depends on ARCH_S3C2410
257 help 276 help
258 The Toshiba TC86C001 is a PCI device which includes controllers 277 Samsung's S3C2410 is an ARM-4 processor with an integrated
259 for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI). 278 full speed USB 1.1 device controller. It has 4 configurable
260 279 endpoints, as well as endpoint zero (for control transfers).
261 The device controller has three configurable (bulk or interrupt)
262 endpoints, plus endpoint zero (for control transfers).
263 280
264 Say "y" to link the driver statically, or "m" to build a 281 This driver has been tested on the S3C2410, S3C2412, and
265 dynamically linked module called "goku_udc" and to force all 282 S3C2440 processors.
266 gadget drivers to also be dynamically linked.
267 283
268config USB_GOKU 284config USB_S3C2410
269 tristate 285 tristate
270 depends on USB_GADGET_GOKU 286 depends on USB_GADGET_S3C2410
271 default USB_GADGET 287 default USB_GADGET
272 select USB_GADGET_SELECTED 288 select USB_GADGET_SELECTED
273 289
290config USB_S3C2410_DEBUG
291 boolean "S3C2410 udc debug messages"
292 depends on USB_GADGET_S3C2410
274 293
275config USB_GADGET_LH7A40X 294#
276 boolean "LH7A40X" 295# Controllers available in both integrated and discrete versions
277 depends on ARCH_LH7A40X 296#
278 help
279 This driver provides USB Device Controller driver for LH7A40x
280
281config USB_LH7A40X
282 tristate
283 depends on USB_GADGET_LH7A40X
284 default USB_GADGET
285 select USB_GADGET_SELECTED
286 297
287# built in ../musb along with host support 298# musb builds in ../musb along with host support
288config USB_GADGET_MUSB_HDRC 299config USB_GADGET_MUSB_HDRC
289 boolean "Inventra HDRC USB Peripheral (TI, ...)" 300 boolean "Inventra HDRC USB Peripheral (TI, ...)"
290 depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG) 301 depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG)
@@ -294,76 +305,124 @@ config USB_GADGET_MUSB_HDRC
294 This OTG-capable silicon IP is used in dual designs including 305 This OTG-capable silicon IP is used in dual designs including
295 the TI DaVinci, OMAP 243x, OMAP 343x, and TUSB 6010. 306 the TI DaVinci, OMAP 243x, OMAP 343x, and TUSB 6010.
296 307
297config USB_GADGET_OMAP 308config USB_GADGET_M66592
298 boolean "OMAP USB Device Controller" 309 boolean "Renesas M66592 USB Peripheral Controller"
299 depends on ARCH_OMAP 310 select USB_GADGET_DUALSPEED
300 select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
301 help 311 help
302 Many Texas Instruments OMAP processors have flexible full 312 M66592 is a discrete USB peripheral controller chip that
303 speed USB device controllers, with support for up to 30 313 supports both full and high speed USB 2.0 data transfers.
304 endpoints (plus endpoint zero). This driver supports the 314 It has seven configurable endpoints, and endpoint zero.
305 controller in the OMAP 1611, and should work with controllers
306 in other OMAP processors too, given minor tweaks.
307 315
308 Say "y" to link the driver statically, or "m" to build a 316 Say "y" to link the driver statically, or "m" to build a
309 dynamically linked module called "omap_udc" and force all 317 dynamically linked module called "m66592_udc" and force all
310 gadget drivers to also be dynamically linked. 318 gadget drivers to also be dynamically linked.
311 319
312config USB_OMAP 320config USB_M66592
313 tristate 321 tristate
314 depends on USB_GADGET_OMAP 322 depends on USB_GADGET_M66592
315 default USB_GADGET 323 default USB_GADGET
316 select USB_GADGET_SELECTED 324 select USB_GADGET_SELECTED
317 325
318config USB_OTG 326config SUPERH_BUILT_IN_M66592
319 boolean "OTG Support" 327 boolean "Enable SuperH built-in USB like the M66592"
320 depends on USB_GADGET_OMAP && ARCH_OMAP_OTG && USB_OHCI_HCD 328 depends on USB_GADGET_M66592 && CPU_SUBTYPE_SH7722
321 help 329 help
322 The most notable feature of USB OTG is support for a 330 SH7722 has USB like the M66592.
323 "Dual-Role" device, which can act as either a device
324 or a host. The initial role choice can be changed
325 later, when two dual-role devices talk to each other.
326 331
327 Select this only if your OMAP board has a Mini-AB connector. 332 The transfer rate is very slow when use "Ethernet Gadget".
333 However, this problem is improved if change a value of
334 NET_IP_ALIGN to 4.
328 335
329config USB_GADGET_S3C2410 336#
330 boolean "S3C2410 USB Device Controller" 337# Controllers available only in discrete form (and all PCI controllers)
331 depends on ARCH_S3C2410 338#
339
340config USB_GADGET_AMD5536UDC
341 boolean "AMD5536 UDC"
342 depends on PCI
343 select USB_GADGET_DUALSPEED
332 help 344 help
333 Samsung's S3C2410 is an ARM-4 processor with an integrated 345 The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
334 full speed USB 1.1 device controller. It has 4 configurable 346 It is a USB Highspeed DMA capable USB device controller. Beside ep0
335 endpoints, as well as endpoint zero (for control transfers). 347 it provides 4 IN and 4 OUT endpoints (bulk or interrupt type).
348 The UDC port supports OTG operation, and may be used as a host port
349 if it's not being used to implement peripheral or OTG roles.
336 350
337 This driver has been tested on the S3C2410, S3C2412, and 351 Say "y" to link the driver statically, or "m" to build a
338 S3C2440 processors. 352 dynamically linked module called "amd5536udc" and force all
353 gadget drivers to also be dynamically linked.
339 354
340config USB_S3C2410 355config USB_AMD5536UDC
341 tristate 356 tristate
342 depends on USB_GADGET_S3C2410 357 depends on USB_GADGET_AMD5536UDC
343 default USB_GADGET 358 default USB_GADGET
344 select USB_GADGET_SELECTED 359 select USB_GADGET_SELECTED
345 360
346config USB_S3C2410_DEBUG 361config USB_GADGET_FSL_QE
347 boolean "S3C2410 udc debug messages" 362 boolean "Freescale QE/CPM USB Device Controller"
348 depends on USB_GADGET_S3C2410 363 depends on FSL_SOC && (QUICC_ENGINE || CPM)
364 help
365 Some of Freescale PowerPC processors have a Full Speed
366 QE/CPM2 USB controller, which support device mode with 4
367 programmable endpoints. This driver supports the
368 controller in the MPC8360 and MPC8272, and should work with
369 controllers having QE or CPM2, given minor tweaks.
349 370
350config USB_GADGET_AT91 371 Set CONFIG_USB_GADGET to "m" to build this driver as a
351 boolean "AT91 USB Device Port" 372 dynmically linked module called "fsl_qe_udc".
352 depends on ARCH_AT91 && !ARCH_AT91SAM9RL && !ARCH_AT91CAP9 373
374config USB_FSL_QE
375 tristate
376 depends on USB_GADGET_FSL_QE
377 default USB_GADGET
353 select USB_GADGET_SELECTED 378 select USB_GADGET_SELECTED
379
380config USB_GADGET_NET2280
381 boolean "NetChip 228x"
382 depends on PCI
383 select USB_GADGET_DUALSPEED
354 help 384 help
355 Many Atmel AT91 processors (such as the AT91RM2000) have a 385 NetChip 2280 / 2282 is a PCI based USB peripheral controller which
356 full speed USB Device Port with support for five configurable 386 supports both full and high speed USB 2.0 data transfers.
357 endpoints (plus endpoint zero). 387
388 It has six configurable endpoints, as well as endpoint zero
389 (for control transfers) and several endpoints with dedicated
390 functions.
358 391
359 Say "y" to link the driver statically, or "m" to build a 392 Say "y" to link the driver statically, or "m" to build a
360 dynamically linked module called "at91_udc" and force all 393 dynamically linked module called "net2280" and force all
361 gadget drivers to also be dynamically linked. 394 gadget drivers to also be dynamically linked.
362 395
363config USB_AT91 396config USB_NET2280
364 tristate 397 tristate
365 depends on USB_GADGET_AT91 398 depends on USB_GADGET_NET2280
399 default USB_GADGET
400 select USB_GADGET_SELECTED
401
402config USB_GADGET_GOKU
403 boolean "Toshiba TC86C001 'Goku-S'"
404 depends on PCI
405 help
406 The Toshiba TC86C001 is a PCI device which includes controllers
407 for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI).
408
409 The device controller has three configurable (bulk or interrupt)
410 endpoints, plus endpoint zero (for control transfers).
411
412 Say "y" to link the driver statically, or "m" to build a
413 dynamically linked module called "goku_udc" and to force all
414 gadget drivers to also be dynamically linked.
415
416config USB_GOKU
417 tristate
418 depends on USB_GADGET_GOKU
366 default USB_GADGET 419 default USB_GADGET
420 select USB_GADGET_SELECTED
421
422
423#
424# LAST -- dummy/emulated controller
425#
367 426
368config USB_GADGET_DUMMY_HCD 427config USB_GADGET_DUMMY_HCD
369 boolean "Dummy HCD (DEVELOPMENT)" 428 boolean "Dummy HCD (DEVELOPMENT)"
@@ -553,19 +612,23 @@ config USB_FILE_STORAGE_TEST
553 normal operation. 612 normal operation.
554 613
555config USB_G_SERIAL 614config USB_G_SERIAL
556 tristate "Serial Gadget (with CDC ACM support)" 615 tristate "Serial Gadget (with CDC ACM and CDC OBEX support)"
557 help 616 help
558 The Serial Gadget talks to the Linux-USB generic serial driver. 617 The Serial Gadget talks to the Linux-USB generic serial driver.
559 This driver supports a CDC-ACM module option, which can be used 618 This driver supports a CDC-ACM module option, which can be used
560 to interoperate with MS-Windows hosts or with the Linux-USB 619 to interoperate with MS-Windows hosts or with the Linux-USB
561 "cdc-acm" driver. 620 "cdc-acm" driver.
562 621
622 This driver also supports a CDC-OBEX option. You will need a
623 user space OBEX server talking to /dev/ttyGS*, since the kernel
624 itself doesn't implement the OBEX protocol.
625
563 Say "y" to link the driver statically, or "m" to build a 626 Say "y" to link the driver statically, or "m" to build a
564 dynamically linked module called "g_serial". 627 dynamically linked module called "g_serial".
565 628
566 For more information, see Documentation/usb/gadget_serial.txt 629 For more information, see Documentation/usb/gadget_serial.txt
567 which includes instructions and a "driver info file" needed to 630 which includes instructions and a "driver info file" needed to
568 make MS-Windows work with this driver. 631 make MS-Windows work with CDC ACM.
569 632
570config USB_MIDI_GADGET 633config USB_MIDI_GADGET
571 tristate "MIDI Gadget (EXPERIMENTAL)" 634 tristate "MIDI Gadget (EXPERIMENTAL)"