xref: /openbmc/linux/drivers/usb/musb/Kconfig (revision b7b741ea38a32336b45870b76aaec1abe57badd0)
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, ...)'
925e11ec4SFlorian Fainelli	depends on 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
31*b7b741eaSDaniel Mack	bool "MUSB Mode Selection"
32*b7b741eaSDaniel Mack	default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
33*b7b741eaSDaniel Mack	default USB_MUSB_HOST if (USB && !USB_GADGET)
34*b7b741eaSDaniel Mack	default USB_MUSB_GADGET if (!USB && USB_GADGET)
35*b7b741eaSDaniel Mack
36*b7b741eaSDaniel Mackconfig USB_MUSB_HOST
37*b7b741eaSDaniel Mack	bool "Host only mode"
38*b7b741eaSDaniel Mack	depends on USB
39*b7b741eaSDaniel Mack	help
40*b7b741eaSDaniel Mack	  Select this when you want to use MUSB in host mode only,
41*b7b741eaSDaniel Mack	  thereby the gadget feature will be regressed.
42*b7b741eaSDaniel Mack
43*b7b741eaSDaniel Mackconfig USB_MUSB_GADGET
44*b7b741eaSDaniel Mack	bool "Gadget only mode"
45*b7b741eaSDaniel Mack	depends on USB_GADGET
46*b7b741eaSDaniel Mack	help
47*b7b741eaSDaniel Mack	  Select this when you want to use MUSB in gadget mode only,
48*b7b741eaSDaniel Mack	  thereby the host feature will be regressed.
49*b7b741eaSDaniel Mack
50*b7b741eaSDaniel Mackconfig USB_MUSB_DUAL_ROLE
51*b7b741eaSDaniel Mack	bool "Dual Role mode"
52*b7b741eaSDaniel Mack	depends on (USB && USB_GADGET)
53*b7b741eaSDaniel Mack	help
54*b7b741eaSDaniel Mack	  This is the default mode of working of MUSB controller where
55*b7b741eaSDaniel Mack	  both host and gadget features are enabled.
56*b7b741eaSDaniel Mack
57*b7b741eaSDaniel Mackendchoice
58*b7b741eaSDaniel Mack
59*b7b741eaSDaniel Mackchoice
607c925546SFelipe Balbi	prompt "Platform Glue Layer"
61550a7375SFelipe Balbi
627c925546SFelipe Balbiconfig USB_MUSB_DAVINCI
631376d92fSFelipe Balbi	tristate "DaVinci"
647c925546SFelipe Balbi	depends on ARCH_DAVINCI_DMx
65787f5627SFelipe Balbi	depends on BROKEN
66550a7375SFelipe Balbi
677c925546SFelipe Balbiconfig USB_MUSB_DA8XX
681376d92fSFelipe Balbi	tristate "DA8xx/OMAP-L1x"
697c925546SFelipe Balbi	depends on ARCH_DAVINCI_DA8XX
70787f5627SFelipe Balbi	depends on BROKEN
713ee076deSSergei Shtylyov
727c925546SFelipe Balbiconfig USB_MUSB_TUSB6010
731376d92fSFelipe Balbi	tristate "TUSB6010"
745273afe3SHeiko Carstens	depends on GENERIC_HARDIRQS
75550a7375SFelipe Balbi
767c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS
771376d92fSFelipe Balbi	tristate "OMAP2430 and onwards"
787c925546SFelipe Balbi	depends on ARCH_OMAP2PLUS
79085ad406SBryan Wu
80eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X
811376d92fSFelipe Balbi	tristate "AM35x"
827c925546SFelipe Balbi	depends on ARCH_OMAP
83eb83092cSAjay Kumar Gupta
849ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS
859ecb8875SAjay Kumar Gupta	tristate "TI DSPS platforms"
869ecb8875SAjay Kumar Gupta
877c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN
881376d92fSFelipe Balbi	tristate "Blackfin"
897c925546SFelipe Balbi	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
907c925546SFelipe Balbi
914bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500
921376d92fSFelipe Balbi	tristate "U8500 and U5500"
934bc36fd3SMian Yousaf Kaukab
947c925546SFelipe Balbiendchoice
95550a7375SFelipe Balbi
962e7fc3baSArnd Bergmannchoice
972e7fc3baSArnd Bergmann	prompt 'MUSB DMA mode'
9899b7856fSFelipe Balbi	default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM
992e7fc3baSArnd Bergmann	default USB_UX500_DMA if USB_MUSB_UX500
1002e7fc3baSArnd Bergmann	default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
1012e7fc3baSArnd Bergmann	default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
1022e7fc3baSArnd Bergmann	default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
1039ecb8875SAjay Kumar Gupta	default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X \
1049ecb8875SAjay Kumar Gupta				|| USB_MUSB_DSPS
105550a7375SFelipe Balbi	help
1062e7fc3baSArnd Bergmann	  Unfortunately, only one option can be enabled here. Ideally one
1072e7fc3baSArnd Bergmann	  should be able to build all these drivers into one kernel to
1082e7fc3baSArnd Bergmann	  allow using DMA on multiplatform kernels.
109550a7375SFelipe Balbi
110d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA
1112e7fc3baSArnd Bergmann	bool 'ST Ericsson U8500 and U5500'
1122e7fc3baSArnd Bergmann	depends on USB_MUSB_UX500
113d2389440SMian Yousaf Kaukab	help
114d2389440SMian Yousaf Kaukab	  Enable DMA transfers on UX500 platforms.
115d2389440SMian Yousaf Kaukab
116550a7375SFelipe Balbiconfig USB_INVENTRA_DMA
1172e7fc3baSArnd Bergmann	bool 'Inventra'
1182e7fc3baSArnd Bergmann	depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
119550a7375SFelipe Balbi	help
120550a7375SFelipe Balbi	  Enable DMA transfers using Mentor's engine.
121550a7375SFelipe Balbi
122550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA
1232e7fc3baSArnd Bergmann	bool 'TI CPPI (Davinci)'
1242e7fc3baSArnd Bergmann	depends on USB_MUSB_DAVINCI
125550a7375SFelipe Balbi	help
126550a7375SFelipe Balbi	  Enable DMA transfers when TI CPPI DMA is available.
127550a7375SFelipe Balbi
128550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA
1292e7fc3baSArnd Bergmann	bool 'TUSB 6010'
1307c925546SFelipe Balbi	depends on USB_MUSB_TUSB6010
131550a7375SFelipe Balbi	depends on ARCH_OMAP
132550a7375SFelipe Balbi	help
133550a7375SFelipe Balbi	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
134550a7375SFelipe Balbi
1352e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY
1362e7fc3baSArnd Bergmann	bool 'Disable DMA (always use PIO)'
1372e7fc3baSArnd Bergmann	help
1382e7fc3baSArnd Bergmann	  All data is copied between memory and FIFO by the CPU.
1392e7fc3baSArnd Bergmann	  DMA controllers are ignored.
1402e7fc3baSArnd Bergmann
1412e7fc3baSArnd Bergmann	  Do not choose this unless DMA support for your SOC or board
1422e7fc3baSArnd Bergmann	  is unavailable (or unstable).  When DMA is enabled at compile time,
1432e7fc3baSArnd Bergmann	  you can still disable it at run time using the "use_dma=n" module
1442e7fc3baSArnd Bergmann	  parameter.
1452e7fc3baSArnd Bergmann
1462e7fc3baSArnd Bergmannendchoice
147c6bde9b5SFelipe Contreras
148c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC
149