xref: /openbmc/linux/drivers/usb/musb/Kconfig (revision a0cb12e2ed61f4c1bb586268ca43b27dd8ce959e)
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
854a605f4SFelipe Contreras	tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
9845c071bSEzequiel Garcia	depends on (USB || USB_GADGET)
10550a7375SFelipe Balbi	help
11550a7375SFelipe Balbi	  Say Y here if your system has a dual role high speed USB
12550a7375SFelipe Balbi	  controller based on the Mentor Graphics silicon IP.  Then
13550a7375SFelipe Balbi	  configure options to match your silicon and the board
14550a7375SFelipe Balbi	  it's being used with, including the USB peripheral role,
15550a7375SFelipe Balbi	  or the USB host role, or both.
16550a7375SFelipe Balbi
1757bfc0a7SPeter Meerwald	  Texas Instruments families using this IP include DaVinci
18a227fd7dSDavid Brownell	  (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
19550a7375SFelipe Balbi
20085ad406SBryan Wu	  Analog Devices parts using this IP include Blackfin BF54x,
21085ad406SBryan Wu	  BF525 and BF527.
22085ad406SBryan Wu
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
637c925546SFelipe Balbiconfig USB_MUSB_DAVINCI
641376d92fSFelipe Balbi	tristate "DaVinci"
657c925546SFelipe Balbi	depends on ARCH_DAVINCI_DMx
66*a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
67787f5627SFelipe Balbi	depends on BROKEN
68550a7375SFelipe Balbi
697c925546SFelipe Balbiconfig USB_MUSB_DA8XX
701376d92fSFelipe Balbi	tristate "DA8xx/OMAP-L1x"
717c925546SFelipe Balbi	depends on ARCH_DAVINCI_DA8XX
72*a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
73787f5627SFelipe Balbi	depends on BROKEN
743ee076deSSergei Shtylyov
757c925546SFelipe Balbiconfig USB_MUSB_TUSB6010
761376d92fSFelipe Balbi	tristate "TUSB6010"
77c0442479STony Lindgren	depends on ARCH_OMAP2PLUS || COMPILE_TEST
78c0442479STony Lindgren	depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
79550a7375SFelipe Balbi
807c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS
811376d92fSFelipe Balbi	tristate "OMAP2430 and onwards"
82a8d191c8SArnd Bergmann	depends on ARCH_OMAP2PLUS && USB
833e3101d5SKishon Vijay Abraham I	select GENERIC_PHY
84085ad406SBryan Wu
85eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X
861376d92fSFelipe Balbi	tristate "AM35x"
877c925546SFelipe Balbi	depends on ARCH_OMAP
88*a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
89eb83092cSAjay Kumar Gupta
909ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS
919ecb8875SAjay Kumar Gupta	tristate "TI DSPS platforms"
9297238b35SSebastian Andrzej Siewior	select USB_MUSB_AM335X_CHILD
93c0442479STony Lindgren	depends on ARCH_OMAP2PLUS || COMPILE_TEST
94eff196adSFelipe Balbi	depends on OF_IRQ
959ecb8875SAjay Kumar Gupta
967c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN
971376d92fSFelipe Balbi	tristate "Blackfin"
987c925546SFelipe Balbi	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
99*a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
1007c925546SFelipe Balbi
1014bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500
1021860c925SLinus Walleij	tristate "Ux500 platforms"
103c0442479STony Lindgren	depends on ARCH_U8500 || COMPILE_TEST
1044bc36fd3SMian Yousaf Kaukab
10510434d27SApelete Seketeliconfig USB_MUSB_JZ4740
10610434d27SApelete Seketeli	tristate "JZ4740"
107*a0cb12e2SArnd Bergmann	depends on NOP_USB_XCEIV
10810434d27SApelete Seketeli	depends on MACH_JZ4740 || COMPILE_TEST
10910434d27SApelete Seketeli	depends on USB_MUSB_GADGET
11010434d27SApelete Seketeli	depends on USB_OTG_BLACKLIST_HUB
11110434d27SApelete Seketeli
11297238b35SSebastian Andrzej Siewiorconfig USB_MUSB_AM335X_CHILD
11397238b35SSebastian Andrzej Siewior	tristate
11497238b35SSebastian Andrzej Siewior
1152e7fc3baSArnd Bergmannchoice
1162e7fc3baSArnd Bergmann	prompt 'MUSB DMA mode'
11710434d27SApelete Seketeli	default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM || USB_MUSB_JZ4740
1182e7fc3baSArnd Bergmann	default USB_UX500_DMA if USB_MUSB_UX500
1192e7fc3baSArnd Bergmann	default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
1202e7fc3baSArnd Bergmann	default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
1212e7fc3baSArnd Bergmann	default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
1229ecb8875SAjay Kumar Gupta	default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X \
1239ecb8875SAjay Kumar Gupta				|| USB_MUSB_DSPS
124550a7375SFelipe Balbi	help
1252e7fc3baSArnd Bergmann	  Unfortunately, only one option can be enabled here. Ideally one
1262e7fc3baSArnd Bergmann	  should be able to build all these drivers into one kernel to
1272e7fc3baSArnd Bergmann	  allow using DMA on multiplatform kernels.
128550a7375SFelipe Balbi
129d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA
1301860c925SLinus Walleij	bool 'ST Ericsson Ux500'
1312e7fc3baSArnd Bergmann	depends on USB_MUSB_UX500
132d2389440SMian Yousaf Kaukab	help
133d2389440SMian Yousaf Kaukab	  Enable DMA transfers on UX500 platforms.
134d2389440SMian Yousaf Kaukab
135550a7375SFelipe Balbiconfig USB_INVENTRA_DMA
1362e7fc3baSArnd Bergmann	bool 'Inventra'
1372e7fc3baSArnd Bergmann	depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
138550a7375SFelipe Balbi	help
139550a7375SFelipe Balbi	  Enable DMA transfers using Mentor's engine.
140550a7375SFelipe Balbi
141550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA
1422e7fc3baSArnd Bergmann	bool 'TI CPPI (Davinci)'
1432e7fc3baSArnd Bergmann	depends on USB_MUSB_DAVINCI
144550a7375SFelipe Balbi	help
145550a7375SFelipe Balbi	  Enable DMA transfers when TI CPPI DMA is available.
146550a7375SFelipe Balbi
1479b3452d1SSebastian Andrzej Siewiorconfig USB_TI_CPPI41_DMA
1489b3452d1SSebastian Andrzej Siewior	bool 'TI CPPI 4.1 (AM335x)'
1499b3452d1SSebastian Andrzej Siewior	depends on ARCH_OMAP
150411dd19cSGeorge Cherian	select TI_CPPI41
1519b3452d1SSebastian Andrzej Siewior
152550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA
1532e7fc3baSArnd Bergmann	bool 'TUSB 6010'
15470c1ff4bSArnd Bergmann	depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
155550a7375SFelipe Balbi	depends on ARCH_OMAP
156550a7375SFelipe Balbi	help
157550a7375SFelipe Balbi	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
158550a7375SFelipe Balbi
1592e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY
1602e7fc3baSArnd Bergmann	bool 'Disable DMA (always use PIO)'
1612e7fc3baSArnd Bergmann	help
1622e7fc3baSArnd Bergmann	  All data is copied between memory and FIFO by the CPU.
1632e7fc3baSArnd Bergmann	  DMA controllers are ignored.
1642e7fc3baSArnd Bergmann
1652e7fc3baSArnd Bergmann	  Do not choose this unless DMA support for your SOC or board
1662e7fc3baSArnd Bergmann	  is unavailable (or unstable).  When DMA is enabled at compile time,
1672e7fc3baSArnd Bergmann	  you can still disable it at run time using the "use_dma=n" module
1682e7fc3baSArnd Bergmann	  parameter.
1692e7fc3baSArnd Bergmann
1702e7fc3baSArnd Bergmannendchoice
171c6bde9b5SFelipe Contreras
172c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC
173