Linux 2.6.36-rc5
[linux-2.6/get_maintainer.git] / drivers / usb / musb / Kconfig
blobcfd38edfcf9edcfaf18cc533b9e7166df3e18cce
2 # USB Dual Role (OTG-ready) Controller Drivers
3 # for silicon based on Mentor Graphics INVENTRA designs
6 comment "Enable Host or Gadget support to see Inventra options"
7         depends on !USB && USB_GADGET=n
9 # (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
10 config USB_MUSB_HDRC
11         depends on (USB || USB_GADGET)
12         depends on (ARM || (BF54x && !BF544) || (BF52x && !BF522 && !BF523))
13         select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN)
14         select TWL4030_USB if MACH_OMAP_3430SDP
15         select USB_OTG_UTILS
16         tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
17         help
18           Say Y here if your system has a dual role high speed USB
19           controller based on the Mentor Graphics silicon IP.  Then
20           configure options to match your silicon and the board
21           it's being used with, including the USB peripheral role,
22           or the USB host role, or both.
24           Texas Instruments familiies using this IP include DaVinci
25           (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
27           Analog Devices parts using this IP include Blackfin BF54x,
28           BF525 and BF527.
30           If you do not know what this is, please say N.
32           To compile this driver as a module, choose M here; the
33           module will be called "musb_hdrc".
35 config USB_MUSB_SOC
36         boolean
37         depends on USB_MUSB_HDRC
38         default y if ARCH_DAVINCI
39         default y if ARCH_OMAP2430
40         default y if ARCH_OMAP3
41         default y if ARCH_OMAP4
42         default y if (BF54x && !BF544)
43         default y if (BF52x && !BF522 && !BF523)
45 comment "DaVinci 35x and 644x USB support"
46         depends on USB_MUSB_HDRC && ARCH_DAVINCI_DMx
48 comment "OMAP 243x high speed USB support"
49         depends on USB_MUSB_HDRC && ARCH_OMAP2430
51 comment "OMAP 343x high speed USB support"
52         depends on USB_MUSB_HDRC && ARCH_OMAP3
54 comment "OMAP 44xx high speed USB support"
55         depends on USB_MUSB_HDRC && ARCH_OMAP4
57 comment "Blackfin high speed USB Support"
58         depends on USB_MUSB_HDRC && ((BF54x && !BF544) || (BF52x && !BF522 && !BF523))
60 config USB_TUSB6010
61         boolean "TUSB 6010 support"
62         depends on USB_MUSB_HDRC && !USB_MUSB_SOC
63         select NOP_USB_XCEIV
64         default y
65         help
66           The TUSB 6010 chip, from Texas Instruments, connects a discrete
67           HDRC core using a 16-bit parallel bus (NOR flash style) or VLYNQ
68           (a high speed serial link).  It can use system-specific external
69           DMA controllers.
71 choice
72         prompt "Driver Mode"
73         depends on USB_MUSB_HDRC
74         help
75           Dual-Role devices can support both host and peripheral roles,
76           as well as a the special "OTG Device" role which can switch
77           between both roles as needed.
79 # use USB_MUSB_HDRC_HCD not USB_MUSB_HOST to #ifdef host side support;
80 # OTG needs both roles, not just USB_MUSB_HOST.
81 config USB_MUSB_HOST
82         depends on USB
83         bool "USB Host"
84         help
85           Say Y here if your system supports the USB host role.
86           If it has a USB "A" (rectangular), "Mini-A" (uncommon),
87           or "Mini-AB" connector, it supports the host role.
88           (With a "Mini-AB" connector, you should enable USB OTG.)
90 # use USB_GADGET_MUSB_HDRC not USB_MUSB_PERIPHERAL to #ifdef peripheral
91 # side support ... OTG needs both roles
92 config USB_MUSB_PERIPHERAL
93         depends on USB_GADGET
94         bool "USB Peripheral (gadget stack)"
95         select USB_GADGET_MUSB_HDRC
96         help
97           Say Y here if your system supports the USB peripheral role.
98           If it has a USB "B" (squarish), "Mini-B", or "Mini-AB"
99           connector, it supports the peripheral role.
100           (With a "Mini-AB" connector, you should enable USB OTG.)
102 config USB_MUSB_OTG
103         depends on USB && USB_GADGET && PM && EXPERIMENTAL
104         bool "Both host and peripheral:  USB OTG (On The Go) Device"
105         select USB_GADGET_MUSB_HDRC
106         select USB_OTG
107         help
108            The most notable feature of USB OTG is support for a
109            "Dual-Role" device, which can act as either a device
110            or a host.  The initial role choice can be changed
111            later, when two dual-role devices talk to each other.
113            At this writing, the OTG support in this driver is incomplete,
114            omitting the mandatory HNP or SRP protocols.  However, some
115            of the cable based role switching works.  (That is, grounding
116            the ID pin switches the controller to host mode, while leaving
117            it floating leaves it in peripheral mode.)
119            Select this if your system has a Mini-AB connector, or
120            to simplify certain kinds of configuration.
122            To implement your OTG Targeted Peripherals List (TPL), enable
123            USB_OTG_WHITELIST and update "drivers/usb/core/otg_whitelist.h"
124            to match your requirements.
126 endchoice
128 # enable peripheral support (including with OTG)
129 config USB_GADGET_MUSB_HDRC
130         bool
131         depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG)
132 #       default y
133 #       select USB_GADGET_DUALSPEED
134 #       select USB_GADGET_SELECTED
136 # enables host support (including with OTG)
137 config USB_MUSB_HDRC_HCD
138         bool
139         depends on USB_MUSB_HDRC && (USB_MUSB_HOST || USB_MUSB_OTG)
140         select USB_OTG if USB_GADGET_MUSB_HDRC
141         default y
144 config MUSB_PIO_ONLY
145         bool 'Disable DMA (always use PIO)'
146         depends on USB_MUSB_HDRC
147         default y if USB_TUSB6010
148         help
149           All data is copied between memory and FIFO by the CPU.
150           DMA controllers are ignored.
152           Do not select 'n' here unless DMA support for your SOC or board
153           is unavailable (or unstable).  When DMA is enabled at compile time,
154           you can still disable it at run time using the "use_dma=n" module
155           parameter.
157 config USB_INVENTRA_DMA
158         bool
159         depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
160         default ARCH_OMAP2430 || ARCH_OMAP3 || BLACKFIN || ARCH_OMAP4
161         help
162           Enable DMA transfers using Mentor's engine.
164 config USB_TI_CPPI_DMA
165         bool
166         depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
167         default ARCH_DAVINCI
168         help
169           Enable DMA transfers when TI CPPI DMA is available.
171 config USB_TUSB_OMAP_DMA
172         bool
173         depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
174         depends on USB_TUSB6010
175         depends on ARCH_OMAP
176         default y
177         help
178           Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
180 config  USB_MUSB_DEBUG
181         depends on USB_MUSB_HDRC
182         bool "Enable debugging messages"
183         default n
184         help
185           This enables musb debugging. To set the logging level use the debug
186           module parameter. Starting at level 3, per-transfer (urb, usb_request,
187           packet, or dma transfer) tracing may kick in.