]>
Commit | Line | Data |
---|---|---|
cae8dc3b | 1 | # SPDX-License-Identifier: GPL-2.0 |
550a7375 FB |
2 | # |
3 | # USB Dual Role (OTG-ready) Controller Drivers | |
4 | # for silicon based on Mentor Graphics INVENTRA designs | |
5 | # | |
6 | ||
550a7375 FB |
7 | # (M)HDRC = (Multipoint) Highspeed Dual-Role Controller |
8 | config USB_MUSB_HDRC | |
a9762b70 | 9 | tristate 'Inventra Highspeed Dual Role Controller' |
845c071b | 10 | depends on (USB || USB_GADGET) |
17987ea5 | 11 | depends on HAS_IOMEM |
550a7375 FB |
12 | help |
13 | Say Y here if your system has a dual role high speed USB | |
14 | controller based on the Mentor Graphics silicon IP. Then | |
15 | configure options to match your silicon and the board | |
16 | it's being used with, including the USB peripheral role, | |
17 | or the USB host role, or both. | |
18 | ||
57bfc0a7 | 19 | Texas Instruments families using this IP include DaVinci |
a227fd7d | 20 | (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010. |
550a7375 | 21 | |
744543c5 HG |
22 | Allwinner SoCs using this IP include A10, A13, A20, ... |
23 | ||
550a7375 FB |
24 | If you do not know what this is, please say N. |
25 | ||
1376d92f FB |
26 | To compile this driver as a module, choose M here; the |
27 | module will be called "musb-hdrc". | |
550a7375 | 28 | |
c6bde9b5 FC |
29 | if USB_MUSB_HDRC |
30 | ||
b7b741ea DM |
31 | choice |
32 | bool "MUSB Mode Selection" | |
33 | default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET) | |
34 | default USB_MUSB_HOST if (USB && !USB_GADGET) | |
35 | default USB_MUSB_GADGET if (!USB && USB_GADGET) | |
36 | ||
37 | config USB_MUSB_HOST | |
38 | bool "Host only mode" | |
845c071b | 39 | depends on USB=y || USB=USB_MUSB_HDRC |
b7b741ea DM |
40 | help |
41 | Select this when you want to use MUSB in host mode only, | |
42 | thereby the gadget feature will be regressed. | |
43 | ||
44 | config USB_MUSB_GADGET | |
45 | bool "Gadget only mode" | |
845c071b | 46 | depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC |
3f83e538 | 47 | depends on HAS_DMA |
b7b741ea DM |
48 | help |
49 | Select this when you want to use MUSB in gadget mode only, | |
50 | thereby the host feature will be regressed. | |
51 | ||
52 | config USB_MUSB_DUAL_ROLE | |
53 | bool "Dual Role mode" | |
845c071b | 54 | depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC)) |
3f83e538 | 55 | depends on HAS_DMA |
b7b741ea DM |
56 | help |
57 | This is the default mode of working of MUSB controller where | |
58 | both host and gadget features are enabled. | |
59 | ||
60 | endchoice | |
61 | ||
82c02f58 | 62 | comment "Platform Glue Layer" |
550a7375 | 63 | |
744543c5 HG |
64 | config USB_MUSB_SUNXI |
65 | tristate "Allwinner (sunxi)" | |
66 | depends on ARCH_SUNXI | |
67 | depends on NOP_USB_XCEIV | |
68 | depends on PHY_SUN4I_USB | |
69 | depends on EXTCON | |
a84014e1 | 70 | select GENERIC_PHY |
744543c5 HG |
71 | select SUNXI_SRAM |
72 | ||
7c925546 | 73 | config USB_MUSB_DAVINCI |
1376d92f | 74 | tristate "DaVinci" |
7c925546 | 75 | depends on ARCH_DAVINCI_DMx |
a0cb12e2 | 76 | depends on NOP_USB_XCEIV |
787f5627 | 77 | depends on BROKEN |
550a7375 | 78 | |
7c925546 | 79 | config USB_MUSB_DA8XX |
1376d92f | 80 | tristate "DA8xx/OMAP-L1x" |
7c925546 | 81 | depends on ARCH_DAVINCI_DA8XX |
a0cb12e2 | 82 | depends on NOP_USB_XCEIV |
947c49af | 83 | select PHY_DA8XX_USB |
3ee076de | 84 | |
7c925546 | 85 | config USB_MUSB_TUSB6010 |
1376d92f | 86 | tristate "TUSB6010" |
49f77e3d | 87 | depends on HAS_IOMEM |
a687a533 | 88 | depends on ARCH_OMAP2PLUS || COMPILE_TEST |
c0442479 | 89 | depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules |
550a7375 | 90 | |
7c925546 | 91 | config USB_MUSB_OMAP2PLUS |
1376d92f | 92 | tristate "OMAP2430 and onwards" |
1c390eb3 AB |
93 | depends on ARCH_OMAP2PLUS && USB |
94 | depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY | |
3e3101d5 | 95 | select GENERIC_PHY |
550a7375 | 96 | |
7c925546 | 97 | config USB_MUSB_AM35X |
1376d92f | 98 | tristate "AM35x" |
7c925546 | 99 | depends on ARCH_OMAP |
a0cb12e2 | 100 | depends on NOP_USB_XCEIV |
c71b1b9c | 101 | |
9ecb8875 AKG |
102 | config USB_MUSB_DSPS |
103 | tristate "TI DSPS platforms" | |
c0442479 | 104 | depends on ARCH_OMAP2PLUS || COMPILE_TEST |
eff196ad | 105 | depends on OF_IRQ |
9ecb8875 | 106 | |
4bc36fd3 | 107 | config USB_MUSB_UX500 |
1860c925 | 108 | tristate "Ux500 platforms" |
c0442479 | 109 | depends on ARCH_U8500 || COMPILE_TEST |
4bc36fd3 | 110 | |
10434d27 AS |
111 | config USB_MUSB_JZ4740 |
112 | tristate "JZ4740" | |
c12aa5be | 113 | depends on OF |
874b08ba | 114 | depends on MIPS || COMPILE_TEST |
10434d27 | 115 | depends on USB_MUSB_GADGET |
9af54301 | 116 | depends on USB=n || USB_OTG_DISABLE_EXTERNAL_HUB |
5004eaa2 | 117 | select USB_ROLE_SWITCH |
10434d27 | 118 | |
0990366b MG |
119 | config USB_MUSB_MEDIATEK |
120 | tristate "MediaTek platforms" | |
121 | depends on ARCH_MEDIATEK || COMPILE_TEST | |
122 | depends on NOP_USB_XCEIV | |
36ecfa73 | 123 | select GENERIC_PHY |
0990366b MG |
124 | select USB_ROLE_SWITCH |
125 | ||
2f0bb2a0 TL |
126 | comment "MUSB DMA mode" |
127 | ||
128 | config MUSB_PIO_ONLY | |
129 | bool 'Disable DMA (always use PIO)' | |
550a7375 | 130 | help |
2f0bb2a0 TL |
131 | All data is copied between memory and FIFO by the CPU. |
132 | DMA controllers are ignored. | |
133 | ||
134 | Do not choose this unless DMA support for your SOC or board | |
135 | is unavailable (or unstable). When DMA is enabled at compile time, | |
136 | you can still disable it at run time using the "use_dma=n" module | |
137 | parameter. | |
138 | ||
139 | if !MUSB_PIO_ONLY | |
550a7375 | 140 | |
d2389440 | 141 | config USB_UX500_DMA |
1860c925 | 142 | bool 'ST Ericsson Ux500' |
2e7fc3ba | 143 | depends on USB_MUSB_UX500 |
d2389440 MYK |
144 | help |
145 | Enable DMA transfers on UX500 platforms. | |
146 | ||
550a7375 | 147 | config USB_INVENTRA_DMA |
2e7fc3ba | 148 | bool 'Inventra' |
57aadb46 | 149 | depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 |
550a7375 FB |
150 | help |
151 | Enable DMA transfers using Mentor's engine. | |
152 | ||
153 | config USB_TI_CPPI_DMA | |
2e7fc3ba | 154 | bool 'TI CPPI (Davinci)' |
2e7fc3ba | 155 | depends on USB_MUSB_DAVINCI |
550a7375 FB |
156 | help |
157 | Enable DMA transfers when TI CPPI DMA is available. | |
158 | ||
9b3452d1 | 159 | config USB_TI_CPPI41_DMA |
d6299b6e AB |
160 | bool 'TI CPPI 4.1' |
161 | depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES | |
411dd19c | 162 | select TI_CPPI41 |
9b3452d1 | 163 | |
550a7375 | 164 | config USB_TUSB_OMAP_DMA |
2e7fc3ba | 165 | bool 'TUSB 6010' |
70c1ff4b | 166 | depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules |
550a7375 | 167 | depends on ARCH_OMAP |
550a7375 FB |
168 | help |
169 | Enable DMA transfers on TUSB 6010 when OMAP DMA is available. | |
170 | ||
2f0bb2a0 | 171 | endif # !MUSB_PIO_ONLY |
c6bde9b5 FC |
172 | |
173 | endif # USB_MUSB_HDRC |