usb: musb: add support for ux500 platform
[firefly-linux-kernel-4.4.55.git] / drivers / usb / musb / Kconfig
1 #
2 # USB Dual Role (OTG-ready) Controller Drivers
3 # for silicon based on Mentor Graphics INVENTRA designs
4 #
5
6 comment "Enable Host or Gadget support to see Inventra options"
7         depends on !USB && USB_GADGET=n
8
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.
23
24           Texas Instruments familiies using this IP include DaVinci
25           (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
26
27           Analog Devices parts using this IP include Blackfin BF54x,
28           BF525 and BF527.
29
30           If you do not know what this is, please say N.
31
32           To compile this driver as a module, choose M here; the
33           module will be called "musb-hdrc".
34
35 choice
36         prompt "Platform Glue Layer"
37         depends on USB_MUSB_HDRC
38
39 config USB_MUSB_DAVINCI
40         bool "DaVinci"
41         depends on ARCH_DAVINCI_DMx
42
43 config USB_MUSB_DA8XX
44         bool "DA8xx/OMAP-L1x"
45         depends on ARCH_DAVINCI_DA8XX
46
47 config USB_MUSB_TUSB6010
48         bool "TUSB6010"
49         depends on ARCH_OMAP
50
51 config USB_MUSB_OMAP2PLUS
52         bool "OMAP2430 and onwards"
53         depends on ARCH_OMAP2PLUS
54
55 config USB_MUSB_AM35X
56         bool "AM35x"
57         depends on ARCH_OMAP
58
59 config USB_MUSB_BLACKFIN
60         bool "Blackfin"
61         depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
62
63 config USB_MUSB_UX500
64         bool "U8500 and U5500"
65         depends on (ARCH_U8500 && AB8500_USB) || (ARCH_U5500)
66
67 endchoice
68
69 choice
70         prompt "Driver Mode"
71         depends on USB_MUSB_HDRC
72         help
73           Dual-Role devices can support both host and peripheral roles,
74           as well as a the special "OTG Device" role which can switch
75           between both roles as needed.
76
77 # use USB_MUSB_HDRC_HCD not USB_MUSB_HOST to #ifdef host side support;
78 # OTG needs both roles, not just USB_MUSB_HOST.
79 config USB_MUSB_HOST
80         depends on USB
81         bool "USB Host"
82         help
83           Say Y here if your system supports the USB host role.
84           If it has a USB "A" (rectangular), "Mini-A" (uncommon),
85           or "Mini-AB" connector, it supports the host role.
86           (With a "Mini-AB" connector, you should enable USB OTG.)
87
88 # use USB_GADGET_MUSB_HDRC not USB_MUSB_PERIPHERAL to #ifdef peripheral
89 # side support ... OTG needs both roles
90 config USB_MUSB_PERIPHERAL
91         depends on USB_GADGET
92         bool "USB Peripheral (gadget stack)"
93         select USB_GADGET_MUSB_HDRC
94         help
95           Say Y here if your system supports the USB peripheral role.
96           If it has a USB "B" (squarish), "Mini-B", or "Mini-AB"
97           connector, it supports the peripheral role.
98           (With a "Mini-AB" connector, you should enable USB OTG.)
99
100 config USB_MUSB_OTG
101         depends on USB && USB_GADGET && PM && EXPERIMENTAL
102         bool "Both host and peripheral:  USB OTG (On The Go) Device"
103         select USB_GADGET_MUSB_HDRC
104         select USB_OTG
105         help
106            The most notable feature of USB OTG is support for a
107            "Dual-Role" device, which can act as either a device
108            or a host.  The initial role choice can be changed
109            later, when two dual-role devices talk to each other.
110
111            At this writing, the OTG support in this driver is incomplete,
112            omitting the mandatory HNP or SRP protocols.  However, some
113            of the cable based role switching works.  (That is, grounding
114            the ID pin switches the controller to host mode, while leaving
115            it floating leaves it in peripheral mode.)
116
117            Select this if your system has a Mini-AB connector, or
118            to simplify certain kinds of configuration.
119
120            To implement your OTG Targeted Peripherals List (TPL), enable
121            USB_OTG_WHITELIST and update "drivers/usb/core/otg_whitelist.h"
122            to match your requirements.
123
124 endchoice
125
126 # enable peripheral support (including with OTG)
127 config USB_GADGET_MUSB_HDRC
128         bool
129         depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG)
130 #       default y
131 #       select USB_GADGET_DUALSPEED
132 #       select USB_GADGET_SELECTED
133
134 # enables host support (including with OTG)
135 config USB_MUSB_HDRC_HCD
136         bool
137         depends on USB_MUSB_HDRC && (USB_MUSB_HOST || USB_MUSB_OTG)
138         select USB_OTG if USB_GADGET_MUSB_HDRC
139         default y
140
141
142 config MUSB_PIO_ONLY
143         bool 'Disable DMA (always use PIO)'
144         depends on USB_MUSB_HDRC
145         default USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X
146         help
147           All data is copied between memory and FIFO by the CPU.
148           DMA controllers are ignored.
149
150           Do not select 'n' here unless DMA support for your SOC or board
151           is unavailable (or unstable).  When DMA is enabled at compile time,
152           you can still disable it at run time using the "use_dma=n" module
153           parameter.
154
155 config USB_INVENTRA_DMA
156         bool
157         depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
158         default USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
159         help
160           Enable DMA transfers using Mentor's engine.
161
162 config USB_TI_CPPI_DMA
163         bool
164         depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
165         default USB_MUSB_DAVINCI
166         help
167           Enable DMA transfers when TI CPPI DMA is available.
168
169 config USB_TUSB_OMAP_DMA
170         bool
171         depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
172         depends on USB_MUSB_TUSB6010
173         depends on ARCH_OMAP
174         default y
175         help
176           Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
177
178 config  USB_MUSB_DEBUG
179         depends on USB_MUSB_HDRC
180         bool "Enable debugging messages"
181         default n
182         help
183           This enables musb debugging. To set the logging level use the debug
184           module parameter. Starting at level 3, per-transfer (urb, usb_request,
185           packet, or dma transfer) tracing may kick in.