xref: /linux/drivers/usb/musb/Kconfig (revision 0d456bad36d42d16022be045c8a53ddbb59ee478)
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 NOP_USB_XCEIV if (SOC_TI81XX || SOC_AM33XX)
12	select TWL4030_USB if MACH_OMAP_3430SDP
13	select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA
14	select USB_OTG_UTILS
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 families 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_DSPS
58	tristate "TI DSPS platforms"
59	depends on SOC_TI81XX || SOC_AM33XX
60
61config USB_MUSB_BLACKFIN
62	tristate "Blackfin"
63	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
64
65config USB_MUSB_UX500
66	tristate "U8500 and U5500"
67	depends on (ARCH_U8500 && AB8500_USB)
68
69endchoice
70
71choice
72	prompt 'MUSB DMA mode'
73	default USB_UX500_DMA if USB_MUSB_UX500
74	default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
75	default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
76	default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
77	default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X \
78				|| USB_MUSB_DSPS
79	help
80	  Unfortunately, only one option can be enabled here. Ideally one
81	  should be able to build all these drivers into one kernel to
82	  allow using DMA on multiplatform kernels.
83
84config USB_UX500_DMA
85	bool 'ST Ericsson U8500 and U5500'
86	depends on USB_MUSB_UX500
87	help
88	  Enable DMA transfers on UX500 platforms.
89
90config USB_INVENTRA_DMA
91	bool 'Inventra'
92	depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
93	help
94	  Enable DMA transfers using Mentor's engine.
95
96config USB_TI_CPPI_DMA
97	bool 'TI CPPI (Davinci)'
98	depends on USB_MUSB_DAVINCI
99	help
100	  Enable DMA transfers when TI CPPI DMA is available.
101
102config USB_TUSB_OMAP_DMA
103	bool 'TUSB 6010'
104	depends on USB_MUSB_TUSB6010
105	depends on ARCH_OMAP
106	help
107	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
108
109config MUSB_PIO_ONLY
110	bool 'Disable DMA (always use PIO)'
111	help
112	  All data is copied between memory and FIFO by the CPU.
113	  DMA controllers are ignored.
114
115	  Do not choose this unless DMA support for your SOC or board
116	  is unavailable (or unstable).  When DMA is enabled at compile time,
117	  you can still disable it at run time using the "use_dma=n" module
118	  parameter.
119
120endchoice
121
122endif # USB_MUSB_HDRC
123