linux/drivers/usb/musb/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0
   2#
   3# USB Dual Role (OTG-ready) Controller Drivers
   4# for silicon based on Mentor Graphics INVENTRA designs
   5#
   6
   7# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
   8config USB_MUSB_HDRC
   9        tristate 'Inventra Highspeed Dual Role Controller'
  10        depends on (USB || USB_GADGET)
  11        depends on HAS_IOMEM
  12        help
  13          Say Y here if your system has a dual role high speed USB
  14          controller based on the Mentor Graphics silicon IP.  Then
  15          configure options to match your silicon and the board
  16          it's being used with, including the USB peripheral role,
  17          or the USB host role, or both.
  18
  19          Texas Instruments families using this IP include DaVinci
  20          (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
  21
  22          Allwinner SoCs using this IP include A10, A13, A20, ...
  23
  24          If you do not know what this is, please say N.
  25
  26          To compile this driver as a module, choose M here; the
  27          module will be called "musb-hdrc".
  28
  29if USB_MUSB_HDRC
  30
  31choice
  32        bool "MUSB Mode Selection"
  33        default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
  34        default USB_MUSB_HOST if (USB && !USB_GADGET)
  35        default USB_MUSB_GADGET if (!USB && USB_GADGET)
  36
  37config USB_MUSB_HOST
  38        bool "Host only mode"
  39        depends on USB=y || USB=USB_MUSB_HDRC
  40        help
  41          Select this when you want to use MUSB in host mode only,
  42          thereby the gadget feature will be regressed.
  43
  44config USB_MUSB_GADGET
  45        bool "Gadget only mode"
  46        depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC
  47        depends on HAS_DMA
  48        help
  49          Select this when you want to use MUSB in gadget mode only,
  50          thereby the host feature will be regressed.
  51
  52config USB_MUSB_DUAL_ROLE
  53        bool "Dual Role mode"
  54        depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC))
  55        depends on HAS_DMA
  56        help
  57          This is the default mode of working of MUSB controller where
  58          both host and gadget features are enabled.
  59
  60endchoice
  61
  62comment "Platform Glue Layer"
  63
  64config USB_MUSB_SUNXI
  65        tristate "Allwinner (sunxi)"
  66        depends on ARCH_SUNXI
  67        depends on NOP_USB_XCEIV
  68        depends on PHY_SUN4I_USB
  69        depends on EXTCON
  70        select GENERIC_PHY
  71        select SUNXI_SRAM
  72
  73config USB_MUSB_DAVINCI
  74        tristate "DaVinci"
  75        depends on ARCH_DAVINCI_DMx
  76        depends on NOP_USB_XCEIV
  77        depends on BROKEN
  78
  79config USB_MUSB_DA8XX
  80        tristate "DA8xx/OMAP-L1x"
  81        depends on ARCH_DAVINCI_DA8XX
  82        depends on NOP_USB_XCEIV
  83        select PHY_DA8XX_USB
  84
  85config USB_MUSB_TUSB6010
  86        tristate "TUSB6010"
  87        depends on HAS_IOMEM
  88        depends on ARCH_OMAP2PLUS || COMPILE_TEST
  89        depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules
  90
  91config USB_MUSB_OMAP2PLUS
  92        tristate "OMAP2430 and onwards"
  93        depends on ARCH_OMAP2PLUS && USB
  94        depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY
  95        select GENERIC_PHY
  96
  97config USB_MUSB_AM35X
  98        tristate "AM35x"
  99        depends on ARCH_OMAP
 100        depends on NOP_USB_XCEIV
 101
 102config USB_MUSB_DSPS
 103        tristate "TI DSPS platforms"
 104        depends on ARCH_OMAP2PLUS || COMPILE_TEST
 105        depends on OF_IRQ
 106
 107config USB_MUSB_UX500
 108        tristate "Ux500 platforms"
 109        depends on ARCH_U8500 || COMPILE_TEST
 110
 111config USB_MUSB_JZ4740
 112        tristate "JZ4740"
 113        depends on OF
 114        depends on MIPS || COMPILE_TEST
 115        depends on USB_MUSB_GADGET
 116        depends on USB=n || USB_OTG_DISABLE_EXTERNAL_HUB
 117        select USB_ROLE_SWITCH
 118
 119config USB_MUSB_MEDIATEK
 120        tristate "MediaTek platforms"
 121        depends on ARCH_MEDIATEK || COMPILE_TEST
 122        depends on NOP_USB_XCEIV
 123        depends on GENERIC_PHY
 124        select USB_ROLE_SWITCH
 125
 126comment "MUSB DMA mode"
 127
 128config MUSB_PIO_ONLY
 129        bool 'Disable DMA (always use PIO)'
 130        help
 131          All data is copied between memory and FIFO by the CPU.
 132          DMA controllers are ignored.
 133
 134          Do not choose this unless DMA support for your SOC or board
 135          is unavailable (or unstable).  When DMA is enabled at compile time,
 136          you can still disable it at run time using the "use_dma=n" module
 137          parameter.
 138
 139if !MUSB_PIO_ONLY
 140
 141config USB_UX500_DMA
 142        bool 'ST Ericsson Ux500'
 143        depends on USB_MUSB_UX500
 144        help
 145          Enable DMA transfers on UX500 platforms.
 146
 147config USB_INVENTRA_DMA
 148        bool 'Inventra'
 149        depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740
 150        help
 151          Enable DMA transfers using Mentor's engine.
 152
 153config USB_TI_CPPI_DMA
 154        bool 'TI CPPI (Davinci)'
 155        depends on USB_MUSB_DAVINCI
 156        help
 157          Enable DMA transfers when TI CPPI DMA is available.
 158
 159config USB_TI_CPPI41_DMA
 160        bool 'TI CPPI 4.1'
 161        depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES
 162        select TI_CPPI41
 163
 164config USB_TUSB_OMAP_DMA
 165        bool 'TUSB 6010'
 166        depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
 167        depends on ARCH_OMAP
 168        help
 169          Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
 170
 171endif # !MUSB_PIO_ONLY
 172
 173endif # USB_MUSB_HDRC
 174