Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / usb / musb / Kconfig
diff --git a/kernel/drivers/usb/musb/Kconfig b/kernel/drivers/usb/musb/Kconfig
new file mode 100644 (file)
index 0000000..39db8b6
--- /dev/null
@@ -0,0 +1,173 @@
+#
+# 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 (TI, ADI, ...)'
+       depends on (USB || USB_GADGET)
+       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.
+
+         Analog Devices parts using this IP include Blackfin BF54x,
+         BF525 and BF527.
+
+         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_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
+       depends on BROKEN
+
+config USB_MUSB_TUSB6010
+       tristate "TUSB6010"
+       depends on ARCH_OMAP2PLUS || COMPILE_TEST
+       depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
+
+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"
+       select USB_MUSB_AM335X_CHILD
+       depends on ARCH_OMAP2PLUS || COMPILE_TEST
+       depends on OF_IRQ
+
+config USB_MUSB_BLACKFIN
+       tristate "Blackfin"
+       depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
+       depends on NOP_USB_XCEIV
+
+config USB_MUSB_UX500
+       tristate "Ux500 platforms"
+       depends on ARCH_U8500 || COMPILE_TEST
+
+config USB_MUSB_JZ4740
+       tristate "JZ4740"
+       depends on NOP_USB_XCEIV
+       depends on MACH_JZ4740 || COMPILE_TEST
+       depends on USB_MUSB_GADGET
+       depends on USB_OTG_BLACKLIST_HUB
+
+config USB_MUSB_AM335X_CHILD
+       tristate
+
+choice
+       prompt 'MUSB DMA mode'
+       default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM || USB_MUSB_JZ4740
+       default USB_UX500_DMA if USB_MUSB_UX500
+       default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
+       default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
+       default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
+       default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X \
+                               || USB_MUSB_DSPS
+       help
+         Unfortunately, only one option can be enabled here. Ideally one
+         should be able to build all these drivers into one kernel to
+         allow using DMA on multiplatform kernels.
+
+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_BLACKFIN
+       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 (AM335x)'
+       depends on ARCH_OMAP
+       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.
+
+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.
+
+endchoice
+
+endif # USB_MUSB_HDRC