xref: /openbmc/linux/drivers/usb/musb/Kconfig (revision 2e7fc3ba68e28acbcc9f4ee753be12be84533ba2)
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
862285963SFelipe Balbi	depends on USB && USB_GADGET
91c47cb01SSonic Zhang	depends on (ARM || (BF54x && !BF544) || (BF52x && !BF522 && !BF523))
108ba63a22SCliff Cai	select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN)
11550a7375SFelipe Balbi	select TWL4030_USB if MACH_OMAP_3430SDP
124c42fbc9SHema HK	select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA
1337daa925SDavid Brownell	select USB_OTG_UTILS
140de174b5SLuciano Coelho	select USB_GADGET_DUALSPEED
151376d92fSFelipe Balbi	tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
16550a7375SFelipe Balbi	help
17550a7375SFelipe Balbi	  Say Y here if your system has a dual role high speed USB
18550a7375SFelipe Balbi	  controller based on the Mentor Graphics silicon IP.  Then
19550a7375SFelipe Balbi	  configure options to match your silicon and the board
20550a7375SFelipe Balbi	  it's being used with, including the USB peripheral role,
21550a7375SFelipe Balbi	  or the USB host role, or both.
22550a7375SFelipe Balbi
23a227fd7dSDavid Brownell	  Texas Instruments familiies using this IP include DaVinci
24a227fd7dSDavid Brownell	  (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
25550a7375SFelipe Balbi
26085ad406SBryan Wu	  Analog Devices parts using this IP include Blackfin BF54x,
27085ad406SBryan Wu	  BF525 and BF527.
28085ad406SBryan Wu
29550a7375SFelipe Balbi	  If you do not know what this is, please say N.
30550a7375SFelipe Balbi
311376d92fSFelipe Balbi	  To compile this driver as a module, choose M here; the
321376d92fSFelipe Balbi	  module will be called "musb-hdrc".
33550a7375SFelipe Balbi
347c925546SFelipe Balbichoice
357c925546SFelipe Balbi	prompt "Platform Glue Layer"
36550a7375SFelipe Balbi	depends on USB_MUSB_HDRC
37550a7375SFelipe Balbi
387c925546SFelipe Balbiconfig USB_MUSB_DAVINCI
391376d92fSFelipe Balbi	tristate "DaVinci"
407c925546SFelipe Balbi	depends on ARCH_DAVINCI_DMx
41550a7375SFelipe Balbi
427c925546SFelipe Balbiconfig USB_MUSB_DA8XX
431376d92fSFelipe Balbi	tristate "DA8xx/OMAP-L1x"
447c925546SFelipe Balbi	depends on ARCH_DAVINCI_DA8XX
453ee076deSSergei Shtylyov
467c925546SFelipe Balbiconfig USB_MUSB_TUSB6010
471376d92fSFelipe Balbi	tristate "TUSB6010"
487c925546SFelipe Balbi	depends on ARCH_OMAP
49550a7375SFelipe Balbi
507c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS
511376d92fSFelipe Balbi	tristate "OMAP2430 and onwards"
527c925546SFelipe Balbi	depends on ARCH_OMAP2PLUS
53085ad406SBryan Wu
54eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X
551376d92fSFelipe Balbi	tristate "AM35x"
567c925546SFelipe Balbi	depends on ARCH_OMAP
57eb83092cSAjay Kumar Gupta
587c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN
591376d92fSFelipe Balbi	tristate "Blackfin"
607c925546SFelipe Balbi	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
617c925546SFelipe Balbi
624bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500
631376d92fSFelipe Balbi	tristate "U8500 and U5500"
64d0678594SMian Yousaf Kaukab	depends on (ARCH_U8500 && AB8500_USB)
654bc36fd3SMian Yousaf Kaukab
667c925546SFelipe Balbiendchoice
67550a7375SFelipe Balbi
68*2e7fc3baSArnd Bergmannchoice
69*2e7fc3baSArnd Bergmann	prompt 'MUSB DMA mode'
70*2e7fc3baSArnd Bergmann	default USB_UX500_DMA if USB_MUSB_UX500
71*2e7fc3baSArnd Bergmann	default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
72*2e7fc3baSArnd Bergmann	default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
73*2e7fc3baSArnd Bergmann	default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
74*2e7fc3baSArnd Bergmann	default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X
75550a7375SFelipe Balbi	help
76*2e7fc3baSArnd Bergmann	  Unfortunately, only one option can be enabled here. Ideally one
77*2e7fc3baSArnd Bergmann	  should be able to build all these drivers into one kernel to
78*2e7fc3baSArnd Bergmann	  allow using DMA on multiplatform kernels.
79550a7375SFelipe Balbi
80d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA
81*2e7fc3baSArnd Bergmann	bool 'ST Ericsson U8500 and U5500'
82*2e7fc3baSArnd Bergmann	depends on USB_MUSB_HDRC
83*2e7fc3baSArnd Bergmann	depends on USB_MUSB_UX500
84d2389440SMian Yousaf Kaukab	help
85d2389440SMian Yousaf Kaukab	  Enable DMA transfers on UX500 platforms.
86d2389440SMian Yousaf Kaukab
87550a7375SFelipe Balbiconfig USB_INVENTRA_DMA
88*2e7fc3baSArnd Bergmann	bool 'Inventra'
89*2e7fc3baSArnd Bergmann	depends on USB_MUSB_HDRC
90*2e7fc3baSArnd Bergmann	depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
91550a7375SFelipe Balbi	help
92550a7375SFelipe Balbi	  Enable DMA transfers using Mentor's engine.
93550a7375SFelipe Balbi
94550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA
95*2e7fc3baSArnd Bergmann	bool 'TI CPPI (Davinci)'
96*2e7fc3baSArnd Bergmann	depends on USB_MUSB_HDRC
97*2e7fc3baSArnd Bergmann	depends on USB_MUSB_DAVINCI
98550a7375SFelipe Balbi	help
99550a7375SFelipe Balbi	  Enable DMA transfers when TI CPPI DMA is available.
100550a7375SFelipe Balbi
101550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA
102*2e7fc3baSArnd Bergmann	bool 'TUSB 6010'
103*2e7fc3baSArnd Bergmann	depends on USB_MUSB_HDRC
1047c925546SFelipe Balbi	depends on USB_MUSB_TUSB6010
105550a7375SFelipe Balbi	depends on ARCH_OMAP
106550a7375SFelipe Balbi	help
107550a7375SFelipe Balbi	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
108550a7375SFelipe Balbi
109*2e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY
110*2e7fc3baSArnd Bergmann	bool 'Disable DMA (always use PIO)'
111*2e7fc3baSArnd Bergmann	depends on USB_MUSB_HDRC
112*2e7fc3baSArnd Bergmann	help
113*2e7fc3baSArnd Bergmann	  All data is copied between memory and FIFO by the CPU.
114*2e7fc3baSArnd Bergmann	  DMA controllers are ignored.
115*2e7fc3baSArnd Bergmann
116*2e7fc3baSArnd Bergmann	  Do not choose this unless DMA support for your SOC or board
117*2e7fc3baSArnd Bergmann	  is unavailable (or unstable).  When DMA is enabled at compile time,
118*2e7fc3baSArnd Bergmann	  you can still disable it at run time using the "use_dma=n" module
119*2e7fc3baSArnd Bergmann	  parameter.
120*2e7fc3baSArnd Bergmann
121*2e7fc3baSArnd Bergmannendchoice
122