summaryrefslogtreecommitdiffstats
path: root/drivers/usb/musb/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/musb/Kconfig')
-rw-r--r--drivers/usb/musb/Kconfig184
1 files changed, 184 insertions, 0 deletions
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
new file mode 100644
index 000000000..6c8f7763e
--- /dev/null
+++ b/drivers/usb/musb/Kconfig
@@ -0,0 +1,184 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# USB Dual Role (OTG-ready) Controller Drivers
+# for silicon based on Mentor Graphics INVENTRA designs
+#
+
+# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
+config USB_MUSB_HDRC
+ tristate 'Inventra Highspeed Dual Role Controller'
+ depends on (USB || USB_GADGET)
+ depends on HAS_IOMEM
+ help
+ Say Y here if your system has a dual role high speed USB
+ 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 USB peripheral role,
+ or the USB 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 M here; the
+ module will be called "musb-hdrc".
+
+if USB_MUSB_HDRC
+
+choice
+ bool "MUSB Mode Selection"
+ default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
+ default USB_MUSB_HOST if (USB && !USB_GADGET)
+ default USB_MUSB_GADGET if (!USB && USB_GADGET)
+
+config USB_MUSB_HOST
+ bool "Host only mode"
+ depends on USB=y || USB=USB_MUSB_HDRC
+ help
+ Select this when you want to use MUSB in host mode only,
+ thereby the gadget feature will be regressed.
+
+config USB_MUSB_GADGET
+ bool "Gadget only mode"
+ depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC
+ depends on HAS_DMA
+ help
+ Select this when you want to use MUSB in gadget mode only,
+ thereby the host feature will be regressed.
+
+config USB_MUSB_DUAL_ROLE
+ bool "Dual Role mode"
+ depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC))
+ depends on HAS_DMA
+ 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 USB_MUSB_SUNXI
+ tristate "Allwinner (sunxi)"
+ depends on ARCH_SUNXI
+ depends on NOP_USB_XCEIV
+ depends on PHY_SUN4I_USB
+ depends on EXTCON
+ select GENERIC_PHY
+ select SUNXI_SRAM
+
+config USB_MUSB_DAVINCI
+ tristate "DaVinci"
+ depends on ARCH_DAVINCI_DMx
+ depends on NOP_USB_XCEIV
+ depends on BROKEN
+
+config USB_MUSB_DA8XX
+ tristate "DA8xx/OMAP-L1x"
+ depends on ARCH_DAVINCI_DA8XX
+ depends on NOP_USB_XCEIV
+ select PHY_DA8XX_USB
+
+config USB_MUSB_TUSB6010
+ tristate "TUSB6010"
+ depends on HAS_IOMEM
+ depends on ARCH_OMAP2PLUS || COMPILE_TEST
+ depends on NOP_USB_XCEIV!=m || USB_MUSB_HDRC=m
+
+config USB_MUSB_OMAP2PLUS
+ tristate "OMAP2430 and onwards"
+ depends on ARCH_OMAP2PLUS && USB
+ depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY
+ select GENERIC_PHY
+
+config USB_MUSB_AM35X
+ tristate "AM35x"
+ depends on ARCH_OMAP
+ depends on NOP_USB_XCEIV
+
+config USB_MUSB_DSPS
+ tristate "TI DSPS platforms"
+ depends on ARCH_OMAP2PLUS || COMPILE_TEST
+ depends on OF_IRQ
+
+config USB_MUSB_UX500
+ tristate "Ux500 platforms"
+ depends on ARCH_U8500 || COMPILE_TEST
+
+config USB_MUSB_JZ4740
+ tristate "JZ4740"
+ depends on OF
+ depends on MIPS || COMPILE_TEST
+ depends on USB_MUSB_GADGET
+ depends on USB=n || USB_OTG_DISABLE_EXTERNAL_HUB
+ select USB_ROLE_SWITCH
+
+config USB_MUSB_MEDIATEK
+ tristate "MediaTek platforms"
+ depends on ARCH_MEDIATEK || COMPILE_TEST
+ depends on NOP_USB_XCEIV
+ select GENERIC_PHY
+ select USB_ROLE_SWITCH
+
+config USB_MUSB_POLARFIRE_SOC
+ tristate "Microchip PolarFire SoC platforms"
+ depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST
+ depends on NOP_USB_XCEIV
+ select USB_MUSB_DUAL_ROLE
+ help
+ Say Y here to enable support for USB on Microchip's PolarFire SoC.
+
+ This support is also available as a module. If so, the module
+ will be called mpfs.
+
+comment "MUSB DMA mode"
+
+config MUSB_PIO_ONLY
+ 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 !MUSB_PIO_ONLY
+
+config USB_UX500_DMA
+ bool 'ST Ericsson Ux500'
+ depends on USB_MUSB_UX500
+ help
+ Enable DMA transfers on UX500 platforms.
+
+config USB_INVENTRA_DMA
+ bool 'Inventra'
+ depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 || USB_MUSB_POLARFIRE_SOC
+ help
+ Enable DMA transfers using Mentor's engine.
+
+config USB_TI_CPPI_DMA
+ bool 'TI CPPI (Davinci)'
+ depends on USB_MUSB_DAVINCI
+ help
+ Enable DMA transfers when TI CPPI DMA is available.
+
+config USB_TI_CPPI41_DMA
+ bool 'TI CPPI 4.1'
+ depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES
+ select TI_CPPI41
+
+config USB_TUSB_OMAP_DMA
+ bool 'TUSB 6010'
+ depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
+ depends on ARCH_OMAP
+ help
+ Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
+
+endif # !MUSB_PIO_ONLY
+
+endif # USB_MUSB_HDRC