xref: /openbmc/linux/drivers/usb/musb/Kconfig (revision a9762b704f5d5e167bbc261573621782b90efbc4)
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
8*a9762b70SArnd Bergmann	tristate 'Inventra Highspeed Dual Role Controller'
9845c071bSEzequiel Garcia	depends on (USB || USB_GADGET)
1017987ea5SVegard 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
21744543c5SHans de Goede	  Allwinner SoCs using this IP include A10, A13, A20, ...
22744543c5SHans de Goede
23550a7375SFelipe Balbi	  If you do not know what this is, please say N.
24550a7375SFelipe Balbi
251376d92fSFelipe Balbi	  To compile this driver as a module, choose M here; the
261376d92fSFelipe Balbi	  module will be called "musb-hdrc".
27550a7375SFelipe Balbi
28c6bde9b5SFelipe Contrerasif USB_MUSB_HDRC
29c6bde9b5SFelipe Contreras
307c925546SFelipe Balbichoice
31b7b741eaSDaniel Mack	bool "MUSB Mode Selection"
32b7b741eaSDaniel Mack	default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
33b7b741eaSDaniel Mack	default USB_MUSB_HOST if (USB && !USB_GADGET)
34b7b741eaSDaniel Mack	default USB_MUSB_GADGET if (!USB && USB_GADGET)
35b7b741eaSDaniel Mack
36b7b741eaSDaniel Mackconfig USB_MUSB_HOST
37b7b741eaSDaniel Mack	bool "Host only mode"
38845c071bSEzequiel Garcia	depends on USB=y || USB=USB_MUSB_HDRC
39b7b741eaSDaniel Mack	help
40b7b741eaSDaniel Mack	  Select this when you want to use MUSB in host mode only,
41b7b741eaSDaniel Mack	  thereby the gadget feature will be regressed.
42b7b741eaSDaniel Mack
43b7b741eaSDaniel Mackconfig USB_MUSB_GADGET
44b7b741eaSDaniel Mack	bool "Gadget only mode"
45845c071bSEzequiel Garcia	depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC
463f83e538SGeert Uytterhoeven	depends on HAS_DMA
47b7b741eaSDaniel Mack	help
48b7b741eaSDaniel Mack	  Select this when you want to use MUSB in gadget mode only,
49b7b741eaSDaniel Mack	  thereby the host feature will be regressed.
50b7b741eaSDaniel Mack
51b7b741eaSDaniel Mackconfig USB_MUSB_DUAL_ROLE
52b7b741eaSDaniel Mack	bool "Dual Role mode"
53845c071bSEzequiel Garcia	depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC))
543f83e538SGeert Uytterhoeven	depends on HAS_DMA
55b7b741eaSDaniel Mack	help
56b7b741eaSDaniel Mack	  This is the default mode of working of MUSB controller where
57b7b741eaSDaniel Mack	  both host and gadget features are enabled.
58b7b741eaSDaniel Mack
59b7b741eaSDaniel Mackendchoice
60b7b741eaSDaniel Mack
6182c02f58STony Lindgrencomment "Platform Glue Layer"
62550a7375SFelipe Balbi
63744543c5SHans de Goedeconfig USB_MUSB_SUNXI
64744543c5SHans de Goede	tristate "Allwinner (sunxi)"
65744543c5SHans de Goede	depends on ARCH_SUNXI
66744543c5SHans de Goede	depends on NOP_USB_XCEIV
67744543c5SHans de Goede	depends on PHY_SUN4I_USB
68744543c5SHans de Goede	depends on EXTCON
69744543c5SHans de Goede	depends on GENERIC_PHY
70744543c5SHans de Goede	select SUNXI_SRAM
71744543c5SHans de Goede
727c925546SFelipe Balbiconfig USB_MUSB_DAVINCI
731376d92fSFelipe Balbi	tristate "DaVinci"
747c925546SFelipe Balbi	depends on ARCH_DAVINCI_DMx
75a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
76787f5627SFelipe Balbi	depends on BROKEN
77550a7375SFelipe Balbi
787c925546SFelipe Balbiconfig USB_MUSB_DA8XX
791376d92fSFelipe Balbi	tristate "DA8xx/OMAP-L1x"
807c925546SFelipe Balbi	depends on ARCH_DAVINCI_DA8XX
81a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
82947c49afSDavid Lechner	select PHY_DA8XX_USB
833ee076deSSergei Shtylyov
847c925546SFelipe Balbiconfig USB_MUSB_TUSB6010
851376d92fSFelipe Balbi	tristate "TUSB6010"
8649f77e3dSVegard Nossum	depends on HAS_IOMEM
87a687a533SArnd Bergmann	depends on ARCH_OMAP2PLUS || COMPILE_TEST
88c0442479STony Lindgren	depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
89550a7375SFelipe Balbi
907c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS
911376d92fSFelipe Balbi	tristate "OMAP2430 and onwards"
921c390eb3SArnd Bergmann	depends on ARCH_OMAP2PLUS && USB
931c390eb3SArnd Bergmann	depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY
943e3101d5SKishon Vijay Abraham I	select GENERIC_PHY
95085ad406SBryan Wu
96eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X
971376d92fSFelipe Balbi	tristate "AM35x"
987c925546SFelipe Balbi	depends on ARCH_OMAP
99a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
100eb83092cSAjay Kumar Gupta
1019ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS
1029ecb8875SAjay Kumar Gupta	tristate "TI DSPS platforms"
10397238b35SSebastian Andrzej Siewior	select USB_MUSB_AM335X_CHILD
104c0442479STony Lindgren	depends on ARCH_OMAP2PLUS || COMPILE_TEST
105eff196adSFelipe Balbi	depends on OF_IRQ
1069ecb8875SAjay Kumar Gupta
1074bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500
1081860c925SLinus Walleij	tristate "Ux500 platforms"
109c0442479STony Lindgren	depends on ARCH_U8500 || COMPILE_TEST
1104bc36fd3SMian Yousaf Kaukab
11110434d27SApelete Seketeliconfig USB_MUSB_JZ4740
11210434d27SApelete Seketeli	tristate "JZ4740"
113a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
11410434d27SApelete Seketeli	depends on MACH_JZ4740 || COMPILE_TEST
11510434d27SApelete Seketeli	depends on USB_MUSB_GADGET
11610434d27SApelete Seketeli	depends on USB_OTG_BLACKLIST_HUB
11710434d27SApelete Seketeli
11897238b35SSebastian Andrzej Siewiorconfig USB_MUSB_AM335X_CHILD
11997238b35SSebastian Andrzej Siewior	tristate
12097238b35SSebastian Andrzej Siewior
1212f0bb2a0STony Lindgrencomment "MUSB DMA mode"
1222f0bb2a0STony Lindgren
1232f0bb2a0STony Lindgrenconfig MUSB_PIO_ONLY
1242f0bb2a0STony Lindgren	bool 'Disable DMA (always use PIO)'
125550a7375SFelipe Balbi	help
1262f0bb2a0STony Lindgren	  All data is copied between memory and FIFO by the CPU.
1272f0bb2a0STony Lindgren	  DMA controllers are ignored.
1282f0bb2a0STony Lindgren
1292f0bb2a0STony Lindgren	  Do not choose this unless DMA support for your SOC or board
1302f0bb2a0STony Lindgren	  is unavailable (or unstable).  When DMA is enabled at compile time,
1312f0bb2a0STony Lindgren	  you can still disable it at run time using the "use_dma=n" module
1322f0bb2a0STony Lindgren	  parameter.
1332f0bb2a0STony Lindgren
1342f0bb2a0STony Lindgrenif !MUSB_PIO_ONLY
135550a7375SFelipe Balbi
136d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA
1371860c925SLinus Walleij	bool 'ST Ericsson Ux500'
1382e7fc3baSArnd Bergmann	depends on USB_MUSB_UX500
139d2389440SMian Yousaf Kaukab	help
140d2389440SMian Yousaf Kaukab	  Enable DMA transfers on UX500 platforms.
141d2389440SMian Yousaf Kaukab
142550a7375SFelipe Balbiconfig USB_INVENTRA_DMA
1432e7fc3baSArnd Bergmann	bool 'Inventra'
144*a9762b70SArnd Bergmann	depends on USB_MUSB_OMAP2PLUS
145550a7375SFelipe Balbi	help
146550a7375SFelipe Balbi	  Enable DMA transfers using Mentor's engine.
147550a7375SFelipe Balbi
148550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA
1492e7fc3baSArnd Bergmann	bool 'TI CPPI (Davinci)'
1502e7fc3baSArnd Bergmann	depends on USB_MUSB_DAVINCI
151550a7375SFelipe Balbi	help
152550a7375SFelipe Balbi	  Enable DMA transfers when TI CPPI DMA is available.
153550a7375SFelipe Balbi
1549b3452d1SSebastian Andrzej Siewiorconfig USB_TI_CPPI41_DMA
155d6299b6eSAlexandre Bailon	bool 'TI CPPI 4.1'
156d6299b6eSAlexandre Bailon	depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES
157411dd19cSGeorge Cherian	select TI_CPPI41
1589b3452d1SSebastian Andrzej Siewior
159550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA
1602e7fc3baSArnd Bergmann	bool 'TUSB 6010'
16170c1ff4bSArnd Bergmann	depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
162550a7375SFelipe Balbi	depends on ARCH_OMAP
163550a7375SFelipe Balbi	help
164550a7375SFelipe Balbi	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
165550a7375SFelipe Balbi
1662f0bb2a0STony Lindgrenendif # !MUSB_PIO_ONLY
167c6bde9b5SFelipe Contreras
168c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC
169