xref: /openbmc/linux/drivers/usb/musb/Kconfig (revision 17987ea59b4bacc928333d4084b5f9d8d442646b)
1550a7375SFelipe Balbi#
2550a7375SFelipe Balbi# USB Dual Role (OTG-ready) Controller Drivers
3550a7375SFelipe Balbi# for silicon based on Mentor Graphics INVENTRA designs
4550a7375SFelipe Balbi#
5550a7375SFelipe Balbi
6550a7375SFelipe Balbi# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
7550a7375SFelipe Balbiconfig USB_MUSB_HDRC
8744543c5SHans de Goede	tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, AW, ...)'
9845c071bSEzequiel Garcia	depends on (USB || USB_GADGET)
10*17987ea5SVegard Nossum	depends on HAS_IOMEM
11550a7375SFelipe Balbi	help
12550a7375SFelipe Balbi	  Say Y here if your system has a dual role high speed USB
13550a7375SFelipe Balbi	  controller based on the Mentor Graphics silicon IP.  Then
14550a7375SFelipe Balbi	  configure options to match your silicon and the board
15550a7375SFelipe Balbi	  it's being used with, including the USB peripheral role,
16550a7375SFelipe Balbi	  or the USB host role, or both.
17550a7375SFelipe Balbi
1857bfc0a7SPeter Meerwald	  Texas Instruments families using this IP include DaVinci
19a227fd7dSDavid Brownell	  (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
20550a7375SFelipe Balbi
21085ad406SBryan Wu	  Analog Devices parts using this IP include Blackfin BF54x,
22085ad406SBryan Wu	  BF525 and BF527.
23085ad406SBryan Wu
24744543c5SHans de Goede	  Allwinner SoCs using this IP include A10, A13, A20, ...
25744543c5SHans de Goede
26550a7375SFelipe Balbi	  If you do not know what this is, please say N.
27550a7375SFelipe Balbi
281376d92fSFelipe Balbi	  To compile this driver as a module, choose M here; the
291376d92fSFelipe Balbi	  module will be called "musb-hdrc".
30550a7375SFelipe Balbi
31c6bde9b5SFelipe Contrerasif USB_MUSB_HDRC
32c6bde9b5SFelipe Contreras
337c925546SFelipe Balbichoice
34b7b741eaSDaniel Mack	bool "MUSB Mode Selection"
35b7b741eaSDaniel Mack	default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
36b7b741eaSDaniel Mack	default USB_MUSB_HOST if (USB && !USB_GADGET)
37b7b741eaSDaniel Mack	default USB_MUSB_GADGET if (!USB && USB_GADGET)
38b7b741eaSDaniel Mack
39b7b741eaSDaniel Mackconfig USB_MUSB_HOST
40b7b741eaSDaniel Mack	bool "Host only mode"
41845c071bSEzequiel Garcia	depends on USB=y || USB=USB_MUSB_HDRC
42b7b741eaSDaniel Mack	help
43b7b741eaSDaniel Mack	  Select this when you want to use MUSB in host mode only,
44b7b741eaSDaniel Mack	  thereby the gadget feature will be regressed.
45b7b741eaSDaniel Mack
46b7b741eaSDaniel Mackconfig USB_MUSB_GADGET
47b7b741eaSDaniel Mack	bool "Gadget only mode"
48845c071bSEzequiel Garcia	depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC
493f83e538SGeert Uytterhoeven	depends on HAS_DMA
50b7b741eaSDaniel Mack	help
51b7b741eaSDaniel Mack	  Select this when you want to use MUSB in gadget mode only,
52b7b741eaSDaniel Mack	  thereby the host feature will be regressed.
53b7b741eaSDaniel Mack
54b7b741eaSDaniel Mackconfig USB_MUSB_DUAL_ROLE
55b7b741eaSDaniel Mack	bool "Dual Role mode"
56845c071bSEzequiel Garcia	depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC))
573f83e538SGeert Uytterhoeven	depends on HAS_DMA
58b7b741eaSDaniel Mack	help
59b7b741eaSDaniel Mack	  This is the default mode of working of MUSB controller where
60b7b741eaSDaniel Mack	  both host and gadget features are enabled.
61b7b741eaSDaniel Mack
62b7b741eaSDaniel Mackendchoice
63b7b741eaSDaniel Mack
6482c02f58STony Lindgrencomment "Platform Glue Layer"
65550a7375SFelipe Balbi
66744543c5SHans de Goedeconfig USB_MUSB_SUNXI
67744543c5SHans de Goede	tristate "Allwinner (sunxi)"
68744543c5SHans de Goede	depends on ARCH_SUNXI
69744543c5SHans de Goede	depends on NOP_USB_XCEIV
70744543c5SHans de Goede	depends on PHY_SUN4I_USB
71744543c5SHans de Goede	depends on EXTCON
72744543c5SHans de Goede	depends on GENERIC_PHY
73744543c5SHans de Goede	select SUNXI_SRAM
74744543c5SHans de Goede
757c925546SFelipe Balbiconfig USB_MUSB_DAVINCI
761376d92fSFelipe Balbi	tristate "DaVinci"
777c925546SFelipe Balbi	depends on ARCH_DAVINCI_DMx
78a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
79787f5627SFelipe Balbi	depends on BROKEN
80550a7375SFelipe Balbi
817c925546SFelipe Balbiconfig USB_MUSB_DA8XX
821376d92fSFelipe Balbi	tristate "DA8xx/OMAP-L1x"
837c925546SFelipe Balbi	depends on ARCH_DAVINCI_DA8XX
84a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
85787f5627SFelipe Balbi	depends on BROKEN
863ee076deSSergei Shtylyov
877c925546SFelipe Balbiconfig USB_MUSB_TUSB6010
881376d92fSFelipe Balbi	tristate "TUSB6010"
8949f77e3dSVegard Nossum	depends on HAS_IOMEM
90c0442479STony Lindgren	depends on ARCH_OMAP2PLUS || COMPILE_TEST
91c0442479STony Lindgren	depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
92550a7375SFelipe Balbi
937c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS
941376d92fSFelipe Balbi	tristate "OMAP2430 and onwards"
951c390eb3SArnd Bergmann	depends on ARCH_OMAP2PLUS && USB
961c390eb3SArnd Bergmann	depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY
973e3101d5SKishon Vijay Abraham I	select GENERIC_PHY
98085ad406SBryan Wu
99eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X
1001376d92fSFelipe Balbi	tristate "AM35x"
1017c925546SFelipe Balbi	depends on ARCH_OMAP
102a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
103eb83092cSAjay Kumar Gupta
1049ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS
1059ecb8875SAjay Kumar Gupta	tristate "TI DSPS platforms"
10697238b35SSebastian Andrzej Siewior	select USB_MUSB_AM335X_CHILD
107c0442479STony Lindgren	depends on ARCH_OMAP2PLUS || COMPILE_TEST
108eff196adSFelipe Balbi	depends on OF_IRQ
1099ecb8875SAjay Kumar Gupta
1107c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN
1111376d92fSFelipe Balbi	tristate "Blackfin"
1127c925546SFelipe Balbi	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
113a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
1147c925546SFelipe Balbi
1154bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500
1161860c925SLinus Walleij	tristate "Ux500 platforms"
117c0442479STony Lindgren	depends on ARCH_U8500 || COMPILE_TEST
1184bc36fd3SMian Yousaf Kaukab
11910434d27SApelete Seketeliconfig USB_MUSB_JZ4740
12010434d27SApelete Seketeli	tristate "JZ4740"
121a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
12210434d27SApelete Seketeli	depends on MACH_JZ4740 || COMPILE_TEST
12310434d27SApelete Seketeli	depends on USB_MUSB_GADGET
12410434d27SApelete Seketeli	depends on USB_OTG_BLACKLIST_HUB
12510434d27SApelete Seketeli
12697238b35SSebastian Andrzej Siewiorconfig USB_MUSB_AM335X_CHILD
12797238b35SSebastian Andrzej Siewior	tristate
12897238b35SSebastian Andrzej Siewior
1292f0bb2a0STony Lindgrencomment "MUSB DMA mode"
1302f0bb2a0STony Lindgren
1312f0bb2a0STony Lindgrenconfig MUSB_PIO_ONLY
1322f0bb2a0STony Lindgren	bool 'Disable DMA (always use PIO)'
133550a7375SFelipe Balbi	help
1342f0bb2a0STony Lindgren	  All data is copied between memory and FIFO by the CPU.
1352f0bb2a0STony Lindgren	  DMA controllers are ignored.
1362f0bb2a0STony Lindgren
1372f0bb2a0STony Lindgren	  Do not choose this unless DMA support for your SOC or board
1382f0bb2a0STony Lindgren	  is unavailable (or unstable).  When DMA is enabled at compile time,
1392f0bb2a0STony Lindgren	  you can still disable it at run time using the "use_dma=n" module
1402f0bb2a0STony Lindgren	  parameter.
1412f0bb2a0STony Lindgren
1422f0bb2a0STony Lindgrenif !MUSB_PIO_ONLY
143550a7375SFelipe Balbi
144d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA
1451860c925SLinus Walleij	bool 'ST Ericsson Ux500'
1462e7fc3baSArnd Bergmann	depends on USB_MUSB_UX500
147d2389440SMian Yousaf Kaukab	help
148d2389440SMian Yousaf Kaukab	  Enable DMA transfers on UX500 platforms.
149d2389440SMian Yousaf Kaukab
150550a7375SFelipe Balbiconfig USB_INVENTRA_DMA
1512e7fc3baSArnd Bergmann	bool 'Inventra'
1522e7fc3baSArnd Bergmann	depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
153550a7375SFelipe Balbi	help
154550a7375SFelipe Balbi	  Enable DMA transfers using Mentor's engine.
155550a7375SFelipe Balbi
156550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA
1572e7fc3baSArnd Bergmann	bool 'TI CPPI (Davinci)'
1582e7fc3baSArnd Bergmann	depends on USB_MUSB_DAVINCI
159550a7375SFelipe Balbi	help
160550a7375SFelipe Balbi	  Enable DMA transfers when TI CPPI DMA is available.
161550a7375SFelipe Balbi
1629b3452d1SSebastian Andrzej Siewiorconfig USB_TI_CPPI41_DMA
1639b3452d1SSebastian Andrzej Siewior	bool 'TI CPPI 4.1 (AM335x)'
164183e53e8SArnd Bergmann	depends on ARCH_OMAP && DMADEVICES
165411dd19cSGeorge Cherian	select TI_CPPI41
1669b3452d1SSebastian Andrzej Siewior
167550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA
1682e7fc3baSArnd Bergmann	bool 'TUSB 6010'
16970c1ff4bSArnd Bergmann	depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
170550a7375SFelipe Balbi	depends on ARCH_OMAP
171550a7375SFelipe Balbi	help
172550a7375SFelipe Balbi	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
173550a7375SFelipe Balbi
1742f0bb2a0STony Lindgrenendif # !MUSB_PIO_ONLY
175c6bde9b5SFelipe Contreras
176c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC
177