# SPDX-License-Identifier: GPL-2.0
#
# [31mCONFIG_USB[0m Dual Role (OTG-ready) Controller Drivers
# for silicon based on Mentor Graphics INVENTRA designs
#
# ([31mCONFIG_M[0m)HDRC = (Multipoint) Highspeed Dual-Role Controller
config [31mCONFIG_USB_MUSB_HDRC[0m
tristate 'Inventra Highspeed Dual Role Controller'
depends on ([31mCONFIG_USB[0m || [31mCONFIG_USB_GADGET[0m)
depends on [31mCONFIG_HAS_IOMEM[0m
help
Say Y here if your system has a dual role high speed [31mCONFIG_USB[0m
controller based on the Mentor Graphics silicon IP. Then
configure options to match your silicon and the board
it's being used with, including the [31mCONFIG_USB[0m peripheral role,
or the [31mCONFIG_USB[0m host role, or both.
Texas Instruments families using this IP include DaVinci
(35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
Allwinner SoCs using this IP include A10, A13, A20, ...
If you do not know what this is, please say N.
To compile this driver as a module, choose [31mCONFIG_M[0m here; the
module will be called "musb-hdrc".
if [31mCONFIG_USB_MUSB_HDRC[0m
choice
bool "MUSB Mode Selection"
default [31mCONFIG_USB_MUSB_DUAL_ROLE[0m if ([31mCONFIG_USB[0m && [31mCONFIG_USB_GADGET[0m)
default [31mCONFIG_USB_MUSB_HOST[0m if ([31mCONFIG_USB[0m && ![31mCONFIG_USB_GADGET[0m)
default [31mCONFIG_USB_MUSB_GADGET[0m if (![31mCONFIG_USB[0m && [31mCONFIG_USB_GADGET[0m)
config [31mCONFIG_USB_MUSB_HOST[0m
bool "Host only mode"
depends on [31mCONFIG_USB[0m=y || [31mCONFIG_USB[0m=[31mCONFIG_USB_MUSB_HDRC[0m
help
Select this when you want to use MUSB in host mode only,
thereby the gadget feature will be regressed.
config [31mCONFIG_USB_MUSB_GADGET[0m
bool "Gadget only mode"
depends on [31mCONFIG_USB_GADGET[0m=y || [31mCONFIG_USB_GADGET[0m=[31mCONFIG_USB_MUSB_HDRC[0m
depends on [31mCONFIG_HAS_DMA[0m
help
Select this when you want to use MUSB in gadget mode only,
thereby the host feature will be regressed.
config [31mCONFIG_USB_MUSB_DUAL_ROLE[0m
bool "Dual Role mode"
depends on (([31mCONFIG_USB[0m=y || [31mCONFIG_USB[0m=[31mCONFIG_USB_MUSB_HDRC[0m) && ([31mCONFIG_USB_GADGET[0m=y || [31mCONFIG_USB_GADGET[0m=[31mCONFIG_USB_MUSB_HDRC[0m))
depends on [31mCONFIG_HAS_DMA[0m
help
This is the default mode of working of MUSB controller where
both host and gadget features are enabled.
endchoice
comment "Platform Glue Layer"
config [31mCONFIG_USB_MUSB_SUNXI[0m
tristate "Allwinner (sunxi)"
depends on [31mCONFIG_ARCH_SUNXI[0m
depends on [31mCONFIG_NOP_USB_XCEIV[0m
depends on [31mCONFIG_PHY_SUN4I_USB[0m
depends on [31mCONFIG_EXTCON[0m
select [31mCONFIG_GENERIC_PHY[0m
select [31mCONFIG_SUNXI_SRAM[0m
config [31mCONFIG_USB_MUSB_DAVINCI[0m
tristate "DaVinci"
depends on [31mCONFIG_ARCH_DAVINCI_DMx[0m
depends on [31mCONFIG_NOP_USB_XCEIV[0m
depends on [31mCONFIG_BROKEN[0m
config [31mCONFIG_USB_MUSB_DA8XX[0m
tristate "DA8xx/OMAP-L1x"
depends on [31mCONFIG_ARCH_DAVINCI_DA8XX[0m
depends on [31mCONFIG_NOP_USB_XCEIV[0m
select [31mCONFIG_PHY_DA8XX_USB[0m
config [31mCONFIG_USB_MUSB_TUSB6010[0m
tristate "TUSB6010"
depends on [31mCONFIG_HAS_IOMEM[0m
depends on [31mCONFIG_ARCH_OMAP2PLUS[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_NOP_USB_XCEIV[0m = [31mCONFIG_USB_MUSB_HDRC[0m # both built-in or both modules
config [31mCONFIG_USB_MUSB_OMAP2PLUS[0m
tristate "OMAP2430 and onwards"
depends on [31mCONFIG_ARCH_OMAP2PLUS[0m && [31mCONFIG_USB[0m
depends on [31mCONFIG_OMAP_CONTROL_PHY[0m || ![31mCONFIG_OMAP_CONTROL_PHY[0m
select [31mCONFIG_GENERIC_PHY[0m
config [31mCONFIG_USB_MUSB_AM35X[0m
tristate "AM35x"
depends on [31mCONFIG_ARCH_OMAP[0m
depends on [31mCONFIG_NOP_USB_XCEIV[0m
config [31mCONFIG_USB_MUSB_DSPS[0m
tristate "TI DSPS platforms"
select [31mCONFIG_USB_MUSB_AM335X_CHILD[0m
depends on [31mCONFIG_ARCH_OMAP2PLUS[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_OF_IRQ[0m
config [31mCONFIG_USB_MUSB_UX500[0m
tristate "Ux500 platforms"
depends on [31mCONFIG_ARCH_U8500[0m || [31mCONFIG_COMPILE_TEST[0m
config [31mCONFIG_USB_MUSB_JZ4740[0m
tristate "JZ4740"
depends on [31mCONFIG_NOP_USB_XCEIV[0m
depends on [31mCONFIG_MIPS[0m || [31mCONFIG_COMPILE_TEST[0m
depends on [31mCONFIG_USB_MUSB_GADGET[0m
depends on [31mCONFIG_USB[0m=n || [31mCONFIG_USB_OTG_BLACKLIST_HUB[0m
config [31mCONFIG_USB_MUSB_AM335X_CHILD[0m
tristate
comment "MUSB DMA mode"
config [31mCONFIG_MUSB_PIO_ONLY[0m
bool 'Disable DMA (always use PIO)'
help
All data is copied between memory and FIFO by the CPU.
DMA controllers are ignored.
Do not choose this unless DMA support for your SOC or board
is unavailable (or unstable). When DMA is enabled at compile time,
you can still disable it at run time using the "use_dma=n" module
parameter.
if ![31mCONFIG_MUSB_PIO_ONLY[0m
config [31mCONFIG_USB_UX500_DMA[0m
bool 'ST Ericsson Ux500'
depends on [31mCONFIG_USB_MUSB_UX500[0m
help
Enable DMA transfers on UX500 platforms.
config [31mCONFIG_USB_INVENTRA_DMA[0m
bool 'Inventra'
depends on [31mCONFIG_USB_MUSB_OMAP2PLUS[0m
help
Enable DMA transfers using Mentor's engine.
config [31mCONFIG_USB_TI_CPPI_DMA[0m
bool 'TI CPPI (Davinci)'
depends on [31mCONFIG_USB_MUSB_DAVINCI[0m
help
Enable DMA transfers when TI CPPI DMA is available.
config [31mCONFIG_USB_TI_CPPI41_DMA[0m
bool 'TI CPPI 4.1'
depends on ([31mCONFIG_ARCH_OMAP[0m || [31mCONFIG_ARCH_DAVINCI_DA8XX[0m) && [31mCONFIG_DMADEVICES[0m
select [31mCONFIG_TI_CPPI41[0m
config [31mCONFIG_USB_TUSB_OMAP_DMA[0m
bool 'TUSB 6010'
depends on [31mCONFIG_USB_MUSB_TUSB6010[0m = [31mCONFIG_USB_MUSB_HDRC[0m # both built-in or both modules
depends on [31mCONFIG_ARCH_OMAP[0m
help
Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
endif # ![31mCONFIG_MUSB_PIO_ONLY[0m
endif # [31mCONFIG_USB_MUSB_HDRC[0m