blob: 886526b5fcddbfcae620b2587f1c1a1125a4933c [file] [log] [blame]
Felipe Balbi550a7372008-07-24 12:27:36 +03001#
2# USB Dual Role (OTG-ready) Controller Drivers
3# for silicon based on Mentor Graphics INVENTRA designs
4#
5
Felipe Balbi550a7372008-07-24 12:27:36 +03006# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
7config USB_MUSB_HDRC
Hans de Goede744543c2015-07-08 16:41:38 +02008 tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, AW, ...)'
Ezequiel Garcia845c0712013-12-22 00:08:33 -03009 depends on (USB || USB_GADGET)
Vegard Nossum17987ea2016-02-10 15:29:48 +010010 depends on HAS_IOMEM
Felipe Balbi550a7372008-07-24 12:27:36 +030011 help
12 Say Y here if your system has a dual role high speed USB
13 controller based on the Mentor Graphics silicon IP. Then
14 configure options to match your silicon and the board
15 it's being used with, including the USB peripheral role,
16 or the USB host role, or both.
17
Peter Meerwald57bfc0a2012-08-18 17:34:09 +020018 Texas Instruments families using this IP include DaVinci
David Brownella227fd72009-02-24 15:31:54 -080019 (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
Felipe Balbi550a7372008-07-24 12:27:36 +030020
Bryan Wu085ad402008-12-02 21:33:49 +020021 Analog Devices parts using this IP include Blackfin BF54x,
22 BF525 and BF527.
23
Hans de Goede744543c2015-07-08 16:41:38 +020024 Allwinner SoCs using this IP include A10, A13, A20, ...
25
Felipe Balbi550a7372008-07-24 12:27:36 +030026 If you do not know what this is, please say N.
27
Felipe Balbi1376d922011-05-11 12:47:59 +030028 To compile this driver as a module, choose M here; the
29 module will be called "musb-hdrc".
Felipe Balbi550a7372008-07-24 12:27:36 +030030
Felipe Contrerasc6bde9b2011-12-20 02:42:27 +020031if USB_MUSB_HDRC
32
Felipe Balbi7c925542010-12-01 14:23:48 +020033choice
Daniel Mackb7b741e2013-04-10 21:55:46 +020034 bool "MUSB Mode Selection"
35 default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
36 default USB_MUSB_HOST if (USB && !USB_GADGET)
37 default USB_MUSB_GADGET if (!USB && USB_GADGET)
38
39config USB_MUSB_HOST
40 bool "Host only mode"
Ezequiel Garcia845c0712013-12-22 00:08:33 -030041 depends on USB=y || USB=USB_MUSB_HDRC
Daniel Mackb7b741e2013-04-10 21:55:46 +020042 help
43 Select this when you want to use MUSB in host mode only,
44 thereby the gadget feature will be regressed.
45
46config USB_MUSB_GADGET
47 bool "Gadget only mode"
Ezequiel Garcia845c0712013-12-22 00:08:33 -030048 depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC
Geert Uytterhoeven3f83e532014-02-21 20:49:53 +010049 depends on HAS_DMA
Daniel Mackb7b741e2013-04-10 21:55:46 +020050 help
51 Select this when you want to use MUSB in gadget mode only,
52 thereby the host feature will be regressed.
53
54config USB_MUSB_DUAL_ROLE
55 bool "Dual Role mode"
Ezequiel Garcia845c0712013-12-22 00:08:33 -030056 depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC))
Geert Uytterhoeven3f83e532014-02-21 20:49:53 +010057 depends on HAS_DMA
Daniel Mackb7b741e2013-04-10 21:55:46 +020058 help
59 This is the default mode of working of MUSB controller where
60 both host and gadget features are enabled.
61
62endchoice
63
Tony Lindgren82c02f52014-11-24 11:05:05 -080064comment "Platform Glue Layer"
Felipe Balbi550a7372008-07-24 12:27:36 +030065
Hans de Goede744543c2015-07-08 16:41:38 +020066config USB_MUSB_SUNXI
67 tristate "Allwinner (sunxi)"
68 depends on ARCH_SUNXI
69 depends on NOP_USB_XCEIV
70 depends on PHY_SUN4I_USB
71 depends on EXTCON
72 depends on GENERIC_PHY
73 select SUNXI_SRAM
74
Felipe Balbi7c925542010-12-01 14:23:48 +020075config USB_MUSB_DAVINCI
Felipe Balbi1376d922011-05-11 12:47:59 +030076 tristate "DaVinci"
Felipe Balbi7c925542010-12-01 14:23:48 +020077 depends on ARCH_DAVINCI_DMx
Arnd Bergmanna0cb12e2015-01-28 22:50:04 +010078 depends on NOP_USB_XCEIV
Felipe Balbi787f5622013-02-06 09:24:55 +020079 depends on BROKEN
Felipe Balbi550a7372008-07-24 12:27:36 +030080
Felipe Balbi7c925542010-12-01 14:23:48 +020081config USB_MUSB_DA8XX
Felipe Balbi1376d922011-05-11 12:47:59 +030082 tristate "DA8xx/OMAP-L1x"
Felipe Balbi7c925542010-12-01 14:23:48 +020083 depends on ARCH_DAVINCI_DA8XX
Arnd Bergmanna0cb12e2015-01-28 22:50:04 +010084 depends on NOP_USB_XCEIV
Felipe Balbi787f5622013-02-06 09:24:55 +020085 depends on BROKEN
Sergei Shtylyov3ee076d2010-09-24 13:44:03 +030086
Felipe Balbi7c925542010-12-01 14:23:48 +020087config USB_MUSB_TUSB6010
Felipe Balbi1376d922011-05-11 12:47:59 +030088 tristate "TUSB6010"
Vegard Nossum49f77e32016-02-10 15:29:41 +010089 depends on HAS_IOMEM
Tony Lindgrenc0442472014-12-01 11:10:15 -080090 depends on ARCH_OMAP2PLUS || COMPILE_TEST
91 depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
Felipe Balbi550a7372008-07-24 12:27:36 +030092
Felipe Balbi7c925542010-12-01 14:23:48 +020093config USB_MUSB_OMAP2PLUS
Felipe Balbi1376d922011-05-11 12:47:59 +030094 tristate "OMAP2430 and onwards"
Arnd Bergmann1c390eb2015-02-28 00:19:41 +010095 depends on ARCH_OMAP2PLUS && USB
96 depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY
Kishon Vijay Abraham I3e3101d2013-09-27 11:53:30 +053097 select GENERIC_PHY
Bryan Wu085ad402008-12-02 21:33:49 +020098
Ajay Kumar Guptaeb830922010-10-19 10:08:12 +030099config USB_MUSB_AM35X
Felipe Balbi1376d922011-05-11 12:47:59 +0300100 tristate "AM35x"
Felipe Balbi7c925542010-12-01 14:23:48 +0200101 depends on ARCH_OMAP
Arnd Bergmanna0cb12e2015-01-28 22:50:04 +0100102 depends on NOP_USB_XCEIV
Ajay Kumar Guptaeb830922010-10-19 10:08:12 +0300103
Ajay Kumar Gupta9ecb8872012-03-12 19:30:22 +0530104config USB_MUSB_DSPS
105 tristate "TI DSPS platforms"
Sebastian Andrzej Siewior97238b32013-07-05 14:51:33 +0200106 select USB_MUSB_AM335X_CHILD
Tony Lindgrenc0442472014-12-01 11:10:15 -0800107 depends on ARCH_OMAP2PLUS || COMPILE_TEST
Felipe Balbieff196a2013-08-12 14:01:14 -0500108 depends on OF_IRQ
Ajay Kumar Gupta9ecb8872012-03-12 19:30:22 +0530109
Felipe Balbi7c925542010-12-01 14:23:48 +0200110config USB_MUSB_BLACKFIN
Felipe Balbi1376d922011-05-11 12:47:59 +0300111 tristate "Blackfin"
Felipe Balbi7c925542010-12-01 14:23:48 +0200112 depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
Arnd Bergmanna0cb12e2015-01-28 22:50:04 +0100113 depends on NOP_USB_XCEIV
Felipe Balbi7c925542010-12-01 14:23:48 +0200114
Mian Yousaf Kaukab4bc36fd2010-12-09 13:05:01 +0100115config USB_MUSB_UX500
Linus Walleij1860c922013-09-06 18:09:06 +0200116 tristate "Ux500 platforms"
Tony Lindgrenc0442472014-12-01 11:10:15 -0800117 depends on ARCH_U8500 || COMPILE_TEST
Mian Yousaf Kaukab4bc36fd2010-12-09 13:05:01 +0100118
Apelete Seketeli10434d22013-12-19 21:42:26 +0100119config USB_MUSB_JZ4740
120 tristate "JZ4740"
Arnd Bergmanna0cb12e2015-01-28 22:50:04 +0100121 depends on NOP_USB_XCEIV
Apelete Seketeli10434d22013-12-19 21:42:26 +0100122 depends on MACH_JZ4740 || COMPILE_TEST
123 depends on USB_MUSB_GADGET
124 depends on USB_OTG_BLACKLIST_HUB
125
Sebastian Andrzej Siewior97238b32013-07-05 14:51:33 +0200126config USB_MUSB_AM335X_CHILD
127 tristate
128
Tony Lindgren2f0bb2a2015-08-03 05:37:10 -0700129comment "MUSB DMA mode"
130
131config MUSB_PIO_ONLY
132 bool 'Disable DMA (always use PIO)'
Felipe Balbi550a7372008-07-24 12:27:36 +0300133 help
Tony Lindgren2f0bb2a2015-08-03 05:37:10 -0700134 All data is copied between memory and FIFO by the CPU.
135 DMA controllers are ignored.
136
137 Do not choose this unless DMA support for your SOC or board
138 is unavailable (or unstable). When DMA is enabled at compile time,
139 you can still disable it at run time using the "use_dma=n" module
140 parameter.
141
142if !MUSB_PIO_ONLY
Felipe Balbi550a7372008-07-24 12:27:36 +0300143
Mian Yousaf Kaukabd2389442011-03-22 15:55:59 +0100144config USB_UX500_DMA
Linus Walleij1860c922013-09-06 18:09:06 +0200145 bool 'ST Ericsson Ux500'
Arnd Bergmann2e7fc3b2011-10-02 16:45:45 +0200146 depends on USB_MUSB_UX500
Mian Yousaf Kaukabd2389442011-03-22 15:55:59 +0100147 help
148 Enable DMA transfers on UX500 platforms.
149
Felipe Balbi550a7372008-07-24 12:27:36 +0300150config USB_INVENTRA_DMA
Arnd Bergmann2e7fc3b2011-10-02 16:45:45 +0200151 bool 'Inventra'
Arnd Bergmann2e7fc3b2011-10-02 16:45:45 +0200152 depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
Felipe Balbi550a7372008-07-24 12:27:36 +0300153 help
154 Enable DMA transfers using Mentor's engine.
155
156config USB_TI_CPPI_DMA
Arnd Bergmann2e7fc3b2011-10-02 16:45:45 +0200157 bool 'TI CPPI (Davinci)'
Arnd Bergmann2e7fc3b2011-10-02 16:45:45 +0200158 depends on USB_MUSB_DAVINCI
Felipe Balbi550a7372008-07-24 12:27:36 +0300159 help
160 Enable DMA transfers when TI CPPI DMA is available.
161
Sebastian Andrzej Siewior9b3452d2013-06-20 12:13:04 +0200162config USB_TI_CPPI41_DMA
163 bool 'TI CPPI 4.1 (AM335x)'
Arnd Bergmann183e53e2015-11-18 17:18:40 +0100164 depends on ARCH_OMAP && DMADEVICES
George Cherian411dd192014-05-02 13:41:00 +0530165 select TI_CPPI41
Sebastian Andrzej Siewior9b3452d2013-06-20 12:13:04 +0200166
Felipe Balbi550a7372008-07-24 12:27:36 +0300167config USB_TUSB_OMAP_DMA
Arnd Bergmann2e7fc3b2011-10-02 16:45:45 +0200168 bool 'TUSB 6010'
Arnd Bergmann70c1ff42014-05-08 15:52:15 +0200169 depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
Felipe Balbi550a7372008-07-24 12:27:36 +0300170 depends on ARCH_OMAP
Felipe Balbi550a7372008-07-24 12:27:36 +0300171 help
172 Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
173
Tony Lindgren2f0bb2a2015-08-03 05:37:10 -0700174endif # !MUSB_PIO_ONLY
Felipe Contrerasc6bde9b2011-12-20 02:42:27 +0200175
176endif # USB_MUSB_HDRC