Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0
0002 #
0003 # USB Dual Role (OTG-ready) Controller Drivers
0004 # for silicon based on Mentor Graphics INVENTRA designs
0005 #
0006 
0007 # (M)HDRC = (Multipoint) Highspeed Dual-Role Controller
0008 config USB_MUSB_HDRC
0009         tristate 'Inventra Highspeed Dual Role Controller'
0010         depends on (USB || USB_GADGET)
0011         depends on HAS_IOMEM
0012         help
0013           Say Y here if your system has a dual role high speed USB
0014           controller based on the Mentor Graphics silicon IP.  Then
0015           configure options to match your silicon and the board
0016           it's being used with, including the USB peripheral role,
0017           or the USB host role, or both.
0018 
0019           Texas Instruments families using this IP include DaVinci
0020           (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010.
0021 
0022           Allwinner SoCs using this IP include A10, A13, A20, ...
0023 
0024           If you do not know what this is, please say N.
0025 
0026           To compile this driver as a module, choose M here; the
0027           module will be called "musb-hdrc".
0028 
0029 if USB_MUSB_HDRC
0030 
0031 choice
0032         bool "MUSB Mode Selection"
0033         default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET)
0034         default USB_MUSB_HOST if (USB && !USB_GADGET)
0035         default USB_MUSB_GADGET if (!USB && USB_GADGET)
0036 
0037 config USB_MUSB_HOST
0038         bool "Host only mode"
0039         depends on USB=y || USB=USB_MUSB_HDRC
0040         help
0041           Select this when you want to use MUSB in host mode only,
0042           thereby the gadget feature will be regressed.
0043 
0044 config USB_MUSB_GADGET
0045         bool "Gadget only mode"
0046         depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC
0047         depends on HAS_DMA
0048         help
0049           Select this when you want to use MUSB in gadget mode only,
0050           thereby the host feature will be regressed.
0051 
0052 config USB_MUSB_DUAL_ROLE
0053         bool "Dual Role mode"
0054         depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC))
0055         depends on HAS_DMA
0056         help
0057           This is the default mode of working of MUSB controller where
0058           both host and gadget features are enabled.
0059 
0060 endchoice
0061 
0062 comment "Platform Glue Layer"
0063 
0064 config USB_MUSB_SUNXI
0065         tristate "Allwinner (sunxi)"
0066         depends on ARCH_SUNXI
0067         depends on NOP_USB_XCEIV
0068         depends on PHY_SUN4I_USB
0069         depends on EXTCON
0070         select GENERIC_PHY
0071         select SUNXI_SRAM
0072 
0073 config USB_MUSB_DAVINCI
0074         tristate "DaVinci"
0075         depends on ARCH_DAVINCI_DMx
0076         depends on NOP_USB_XCEIV
0077         depends on BROKEN
0078 
0079 config USB_MUSB_DA8XX
0080         tristate "DA8xx/OMAP-L1x"
0081         depends on ARCH_DAVINCI_DA8XX
0082         depends on NOP_USB_XCEIV
0083         select PHY_DA8XX_USB
0084 
0085 config USB_MUSB_TUSB6010
0086         tristate "TUSB6010"
0087         depends on HAS_IOMEM
0088         depends on ARCH_OMAP2PLUS || COMPILE_TEST
0089         depends on NOP_USB_XCEIV!=m || USB_MUSB_HDRC=m
0090 
0091 config USB_MUSB_OMAP2PLUS
0092         tristate "OMAP2430 and onwards"
0093         depends on ARCH_OMAP2PLUS && USB
0094         depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY
0095         select GENERIC_PHY
0096 
0097 config USB_MUSB_AM35X
0098         tristate "AM35x"
0099         depends on ARCH_OMAP
0100         depends on NOP_USB_XCEIV
0101 
0102 config USB_MUSB_DSPS
0103         tristate "TI DSPS platforms"
0104         depends on ARCH_OMAP2PLUS || COMPILE_TEST
0105         depends on OF_IRQ
0106 
0107 config USB_MUSB_UX500
0108         tristate "Ux500 platforms"
0109         depends on ARCH_U8500 || COMPILE_TEST
0110 
0111 config USB_MUSB_JZ4740
0112         tristate "JZ4740"
0113         depends on OF
0114         depends on MIPS || COMPILE_TEST
0115         depends on USB_MUSB_GADGET
0116         depends on USB=n || USB_OTG_DISABLE_EXTERNAL_HUB
0117         select USB_ROLE_SWITCH
0118 
0119 config USB_MUSB_MEDIATEK
0120         tristate "MediaTek platforms"
0121         depends on ARCH_MEDIATEK || COMPILE_TEST
0122         depends on NOP_USB_XCEIV
0123         select GENERIC_PHY
0124         select USB_ROLE_SWITCH
0125 
0126 config USB_MUSB_POLARFIRE_SOC
0127         tristate "Microchip PolarFire SoC platforms"
0128         depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST
0129         depends on NOP_USB_XCEIV
0130         select USB_MUSB_DUAL_ROLE
0131         help
0132           Say Y here to enable support for USB on Microchip's PolarFire SoC.
0133 
0134           This support is also available as a module.  If so, the module
0135           will be called mpfs.
0136 
0137 comment "MUSB DMA mode"
0138 
0139 config MUSB_PIO_ONLY
0140         bool 'Disable DMA (always use PIO)'
0141         help
0142           All data is copied between memory and FIFO by the CPU.
0143           DMA controllers are ignored.
0144 
0145           Do not choose this unless DMA support for your SOC or board
0146           is unavailable (or unstable).  When DMA is enabled at compile time,
0147           you can still disable it at run time using the "use_dma=n" module
0148           parameter.
0149 
0150 if !MUSB_PIO_ONLY
0151 
0152 config USB_UX500_DMA
0153         bool 'ST Ericsson Ux500'
0154         depends on USB_MUSB_UX500
0155         help
0156           Enable DMA transfers on UX500 platforms.
0157 
0158 config USB_INVENTRA_DMA
0159         bool 'Inventra'
0160         depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 || USB_MUSB_POLARFIRE_SOC
0161         help
0162           Enable DMA transfers using Mentor's engine.
0163 
0164 config USB_TI_CPPI_DMA
0165         bool 'TI CPPI (Davinci)'
0166         depends on USB_MUSB_DAVINCI
0167         help
0168           Enable DMA transfers when TI CPPI DMA is available.
0169 
0170 config USB_TI_CPPI41_DMA
0171         bool 'TI CPPI 4.1'
0172         depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES
0173         select TI_CPPI41
0174 
0175 config USB_TUSB_OMAP_DMA
0176         bool 'TUSB 6010'
0177         depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules
0178         depends on ARCH_OMAP
0179         help
0180           Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
0181 
0182 endif # !MUSB_PIO_ONLY
0183 
0184 endif # USB_MUSB_HDRC