1#
2# USB Dual Role (OTG-ready) Controller Drivers
3# for silicon based on Mentor Graphics INVENTRA designs
4#
5
6# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
7config USB_MUSB_HDRC
8	tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
9	depends on USB && USB_GADGET
10	select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN)
11	select TWL4030_USB if MACH_OMAP_3430SDP
12	select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA
13	select USB_OTG_UTILS
14	select USB_GADGET_DUALSPEED
15	help
16	  Say Y here if your system has a dual role high speed USB
17	  controller based on the Mentor Graphics silicon IP.  Then
18	  configure options to match your silicon and the board
19	  it's being used with, including the USB peripheral role,
20	  or the USB host role, or both.
21
22	  Texas Instruments familiies using this IP include DaVinci
23	  (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
24
25	  Analog Devices parts using this IP include Blackfin BF54x,
26	  BF525 and BF527.
27
28	  If you do not know what this is, please say N.
29
30	  To compile this driver as a module, choose M here; the
31	  module will be called "musb-hdrc".
32
33if USB_MUSB_HDRC
34
35choice
36	prompt "Platform Glue Layer"
37
38config USB_MUSB_DAVINCI
39	tristate "DaVinci"
40	depends on ARCH_DAVINCI_DMx
41
42config USB_MUSB_DA8XX
43	tristate "DA8xx/OMAP-L1x"
44	depends on ARCH_DAVINCI_DA8XX
45
46config USB_MUSB_TUSB6010
47	tristate "TUSB6010"
48
49config USB_MUSB_OMAP2PLUS
50	tristate "OMAP2430 and onwards"
51	depends on ARCH_OMAP2PLUS
52
53config USB_MUSB_AM35X
54	tristate "AM35x"
55	depends on ARCH_OMAP
56
57config USB_MUSB_BLACKFIN
58	tristate "Blackfin"
59	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
60
61config USB_MUSB_UX500
62	tristate "U8500 and U5500"
63	depends on (ARCH_U8500 && AB8500_USB)
64
65endchoice
66
67choice
68	prompt 'MUSB DMA mode'
69	default USB_UX500_DMA if USB_MUSB_UX500
70	default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
71	default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
72	default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
73	default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X
74	help
75	  Unfortunately, only one option can be enabled here. Ideally one
76	  should be able to build all these drivers into one kernel to
77	  allow using DMA on multiplatform kernels.
78
79config USB_UX500_DMA
80	bool 'ST Ericsson U8500 and U5500'
81	depends on USB_MUSB_UX500
82	help
83	  Enable DMA transfers on UX500 platforms.
84
85config USB_INVENTRA_DMA
86	bool 'Inventra'
87	depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
88	help
89	  Enable DMA transfers using Mentor's engine.
90
91config USB_TI_CPPI_DMA
92	bool 'TI CPPI (Davinci)'
93	depends on USB_MUSB_DAVINCI
94	help
95	  Enable DMA transfers when TI CPPI DMA is available.
96
97config USB_TUSB_OMAP_DMA
98	bool 'TUSB 6010'
99	depends on USB_MUSB_TUSB6010
100	depends on ARCH_OMAP
101	help
102	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
103
104config MUSB_PIO_ONLY
105	bool 'Disable DMA (always use PIO)'
106	help
107	  All data is copied between memory and FIFO by the CPU.
108	  DMA controllers are ignored.
109
110	  Do not choose this unless DMA support for your SOC or board
111	  is unavailable (or unstable).  When DMA is enabled at compile time,
112	  you can still disable it at run time using the "use_dma=n" module
113	  parameter.
114
115endchoice
116
117endif # USB_MUSB_HDRC
118