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