]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - sitara-epos/sitara-epos-kernel.git/blobdiff - drivers/usb/musb/Kconfig
musb: adding support for am335x
[sitara-epos/sitara-epos-kernel.git] / drivers / usb / musb / Kconfig
index 07a03460a598c3bcea675494a2a9009312b5d57b..a06335fa7e9a9b550d5b3e565b49e366bacd7384 100644 (file)
@@ -5,14 +5,14 @@
 
 # (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
 config USB_MUSB_HDRC
+       tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
        depends on USB && USB_GADGET
-       depends on (ARM || (BF54x && !BF544) || (BF52x && !BF522 && !BF523))
        select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN)
+       select NOP_USB_XCEIV if (SOC_OMAPTI81XX || SOC_OMAPAM33XX)
        select TWL4030_USB if MACH_OMAP_3430SDP
        select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA
        select USB_OTG_UTILS
        select USB_GADGET_DUALSPEED
-       tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)'
        help
          Say Y here if your system has a dual role high speed USB
          controller based on the Mentor Graphics silicon IP.  Then
@@ -31,80 +31,159 @@ config USB_MUSB_HDRC
          To compile this driver as a module, choose M here; the
          module will be called "musb-hdrc".
 
-choice
-       prompt "Platform Glue Layer"
-       depends on USB_MUSB_HDRC
+if USB_MUSB_HDRC
 
-config USB_MUSB_DAVINCI
+comment "Platform Glue Layer"
+
+config USB_MUSB_DAVINCI_GLUE
+       select USB_MUSB_DAVINCI
        tristate "DaVinci"
-       depends on ARCH_DAVINCI_DMx
+       depends on ARCH_DAVINCI_DMx && USB_MUSB_HDRC
 
-config USB_MUSB_DA8XX
+config USB_MUSB_DA8XX_GLUE
+       select USB_MUSB_DA8XX
        tristate "DA8xx/OMAP-L1x"
-       depends on ARCH_DAVINCI_DA8XX
+       depends on ARCH_DAVINCI_DA8XX && USB_MUSB_HDRC
 
-config USB_MUSB_TUSB6010
+config USB_MUSB_TUSB6010_GLUE
+       select USB_MUSB_TUSB6010
        tristate "TUSB6010"
-       depends on ARCH_OMAP
+       depends on ARCH_OMAP && USB_MUSB_HDRC
 
-config USB_MUSB_OMAP2PLUS
+config USB_MUSB_OMAP2PLUS_GLUE
+       select USB_MUSB_OMAP2PLUS
        tristate "OMAP2430 and onwards"
-       depends on ARCH_OMAP2PLUS
+       depends on ARCH_OMAP2PLUS && USB_MUSB_HDRC
 
-config USB_MUSB_AM35X
+config USB_MUSB_AM35X_GLUE
+       select USB_MUSB_AM35X
        tristate "AM35x"
-       depends on ARCH_OMAP
+       depends on ARCH_OMAP && USB_MUSB_HDRC
 
-config USB_MUSB_BLACKFIN
+config USB_MUSB_TI81XX_GLUE
+       select USB_MUSB_TI81XX
+       tristate "TI81XX onward"
+       depends on (SOC_OMAPTI81XX || SOC_OMAPAM33XX) && USB_MUSB_HDRC
+
+config USB_MUSB_BLACKFIN_GLUE
+       select USB_MUSB_BLACKFIN
        tristate "Blackfin"
-       depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523)
+       depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) && USB_MUSB_HDRC
 
-config USB_MUSB_UX500
+config USB_MUSB_UX500_GLUE
+       select USB_MUSB_UX500
        tristate "U8500 and U5500"
-       depends on (ARCH_U8500 && AB8500_USB)
+       depends on (ARCH_U8500 && AB8500_USB) && USB_MUSB_HDRC
 
-endchoice
+config USB_MUSB_DAVINCI
+       bool
+       default n
+config USB_MUSB_DA8XX
+       bool
+       default n
+config USB_MUSB_TUSB6010
+       bool
+       default n
+config USB_MUSB_OMAP2PLUS
+       bool
+       default n
+config USB_MUSB_AM35X
+       bool
+       default n
+config USB_MUSB_TI81XX
+       bool
+       default n
+config USB_MUSB_BLACKFIN
+       bool
+       default n
+config USB_MUSB_UX500
+       bool
+       default n
+
+choice
+       prompt 'MUSB DMA mode'
+       default USB_UX500_DMA_HW if USB_MUSB_UX500
+       default USB_INVENTRA_DMA_HW if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
+       default USB_TI_CPPI_DMA_HW if USB_MUSB_DAVINCI
+       default USB_TUSB_OMAP_DMA_HW if USB_MUSB_TUSB6010
+       default USB_TI_CPPI41_DMA_HW if USB_MUSB_DA8XX || USB_MUSB_AM35X || USB_MUSB_TI81XX
+       default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX
+       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_HW
+       tristate 'ST Ericsson U8500 and U5500'
+       select USB_UX500_DMA
+       depends on USB_MUSB_UX500
+       help
+         Enable DMA transfers on UX500 platforms.
+
+config USB_INVENTRA_DMA_HW
+       tristate 'Inventra'
+       select USB_INVENTRA_DMA
+       depends on (USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN) && !USB_MUSB_AM35X
+       help
+         Enable DMA transfers using Mentor's engine.
+
+config USB_TI_CPPI_DMA_HW
+       tristate 'TI CPPI (Davinci)'
+       select USB_TI_CPPI_DMA
+       depends on USB_MUSB_DAVINCI
+       help
+         Enable DMA transfers when TI CPPI DMA is available.
+
+config USB_TI_CPPI41_DMA_HW
+       tristate 'TI CPPI4.1'
+       select USB_TI_CPPI41_DMA
+       depends on USB_MUSB_DA8XX || USB_MUSB_AM35X || USB_MUSB_TI81XX
+       select CPPI41
+       help
+        Configure this option to include the CPPI 4.1 support,
+        The CPPI 4.1 DMA engine integrated with musb controller
+        accelarate the usb packet transmission and receception
+        to/from musb endpoints.
+
+config USB_TUSB_OMAP_DMA_HW
+       tristate 'TUSB 6010'
+       select USB_TUSB_OMAP_DMA
+       depends on USB_MUSB_TUSB6010
+       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)'
-       depends on USB_MUSB_HDRC
-       default USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X
        help
          All data is copied between memory and FIFO by the CPU.
          DMA controllers are ignored.
 
-         Do not select 'n' here unless DMA support for your SOC or board
+         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.
 
-config USB_UX500_DMA
-       bool
-       depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
-       default USB_MUSB_UX500
-       help
-         Enable DMA transfers on UX500 platforms.
+endchoice
 
 config USB_INVENTRA_DMA
        bool
-       depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
-       default USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
-       help
-         Enable DMA transfers using Mentor's engine.
+       default n
 
 config USB_TI_CPPI_DMA
        bool
-       depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
-       default USB_MUSB_DAVINCI
-       help
-         Enable DMA transfers when TI CPPI DMA is available.
+       default n
+
+config USB_TI_CPPI41_DMA
+       bool
+       default n
 
 config USB_TUSB_OMAP_DMA
        bool
-       depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
-       depends on USB_MUSB_TUSB6010
-       depends on ARCH_OMAP
-       default y
-       help
-         Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
+       default n
+
+config USB_UX500_DMA
+       bool
+       default n
 
+endif # USB_MUSB_HDRC