1550a7375SFelipe Balbi# 2550a7375SFelipe Balbi# USB Dual Role (OTG-ready) Controller Drivers 3550a7375SFelipe Balbi# for silicon based on Mentor Graphics INVENTRA designs 4550a7375SFelipe Balbi# 5550a7375SFelipe Balbi 6550a7375SFelipe Balbi# (M)HDRC = (Multipoint) Highspeed Dual-Role Controller 7550a7375SFelipe Balbiconfig USB_MUSB_HDRC 8*a9762b70SArnd Bergmann tristate 'Inventra Highspeed Dual Role Controller' 9845c071bSEzequiel Garcia depends on (USB || USB_GADGET) 1017987ea5SVegard Nossum depends on HAS_IOMEM 11550a7375SFelipe Balbi help 12550a7375SFelipe Balbi Say Y here if your system has a dual role high speed USB 13550a7375SFelipe Balbi controller based on the Mentor Graphics silicon IP. Then 14550a7375SFelipe Balbi configure options to match your silicon and the board 15550a7375SFelipe Balbi it's being used with, including the USB peripheral role, 16550a7375SFelipe Balbi or the USB host role, or both. 17550a7375SFelipe Balbi 1857bfc0a7SPeter Meerwald Texas Instruments families using this IP include DaVinci 19a227fd7dSDavid Brownell (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010. 20550a7375SFelipe Balbi 21744543c5SHans de Goede Allwinner SoCs using this IP include A10, A13, A20, ... 22744543c5SHans de Goede 23550a7375SFelipe Balbi If you do not know what this is, please say N. 24550a7375SFelipe Balbi 251376d92fSFelipe Balbi To compile this driver as a module, choose M here; the 261376d92fSFelipe Balbi module will be called "musb-hdrc". 27550a7375SFelipe Balbi 28c6bde9b5SFelipe Contrerasif USB_MUSB_HDRC 29c6bde9b5SFelipe Contreras 307c925546SFelipe Balbichoice 31b7b741eaSDaniel Mack bool "MUSB Mode Selection" 32b7b741eaSDaniel Mack default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET) 33b7b741eaSDaniel Mack default USB_MUSB_HOST if (USB && !USB_GADGET) 34b7b741eaSDaniel Mack default USB_MUSB_GADGET if (!USB && USB_GADGET) 35b7b741eaSDaniel Mack 36b7b741eaSDaniel Mackconfig USB_MUSB_HOST 37b7b741eaSDaniel Mack bool "Host only mode" 38845c071bSEzequiel Garcia depends on USB=y || USB=USB_MUSB_HDRC 39b7b741eaSDaniel Mack help 40b7b741eaSDaniel Mack Select this when you want to use MUSB in host mode only, 41b7b741eaSDaniel Mack thereby the gadget feature will be regressed. 42b7b741eaSDaniel Mack 43b7b741eaSDaniel Mackconfig USB_MUSB_GADGET 44b7b741eaSDaniel Mack bool "Gadget only mode" 45845c071bSEzequiel Garcia depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC 463f83e538SGeert Uytterhoeven depends on HAS_DMA 47b7b741eaSDaniel Mack help 48b7b741eaSDaniel Mack Select this when you want to use MUSB in gadget mode only, 49b7b741eaSDaniel Mack thereby the host feature will be regressed. 50b7b741eaSDaniel Mack 51b7b741eaSDaniel Mackconfig USB_MUSB_DUAL_ROLE 52b7b741eaSDaniel Mack bool "Dual Role mode" 53845c071bSEzequiel Garcia depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC)) 543f83e538SGeert Uytterhoeven depends on HAS_DMA 55b7b741eaSDaniel Mack help 56b7b741eaSDaniel Mack This is the default mode of working of MUSB controller where 57b7b741eaSDaniel Mack both host and gadget features are enabled. 58b7b741eaSDaniel Mack 59b7b741eaSDaniel Mackendchoice 60b7b741eaSDaniel Mack 6182c02f58STony Lindgrencomment "Platform Glue Layer" 62550a7375SFelipe Balbi 63744543c5SHans de Goedeconfig USB_MUSB_SUNXI 64744543c5SHans de Goede tristate "Allwinner (sunxi)" 65744543c5SHans de Goede depends on ARCH_SUNXI 66744543c5SHans de Goede depends on NOP_USB_XCEIV 67744543c5SHans de Goede depends on PHY_SUN4I_USB 68744543c5SHans de Goede depends on EXTCON 69744543c5SHans de Goede depends on GENERIC_PHY 70744543c5SHans de Goede select SUNXI_SRAM 71744543c5SHans de Goede 727c925546SFelipe Balbiconfig USB_MUSB_DAVINCI 731376d92fSFelipe Balbi tristate "DaVinci" 747c925546SFelipe Balbi depends on ARCH_DAVINCI_DMx 75a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 76787f5627SFelipe Balbi depends on BROKEN 77550a7375SFelipe Balbi 787c925546SFelipe Balbiconfig USB_MUSB_DA8XX 791376d92fSFelipe Balbi tristate "DA8xx/OMAP-L1x" 807c925546SFelipe Balbi depends on ARCH_DAVINCI_DA8XX 81a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 82947c49afSDavid Lechner select PHY_DA8XX_USB 833ee076deSSergei Shtylyov 847c925546SFelipe Balbiconfig USB_MUSB_TUSB6010 851376d92fSFelipe Balbi tristate "TUSB6010" 8649f77e3dSVegard Nossum depends on HAS_IOMEM 87a687a533SArnd Bergmann depends on ARCH_OMAP2PLUS || COMPILE_TEST 88c0442479STony Lindgren depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules 89550a7375SFelipe Balbi 907c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS 911376d92fSFelipe Balbi tristate "OMAP2430 and onwards" 921c390eb3SArnd Bergmann depends on ARCH_OMAP2PLUS && USB 931c390eb3SArnd Bergmann depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY 943e3101d5SKishon Vijay Abraham I select GENERIC_PHY 95085ad406SBryan Wu 96eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X 971376d92fSFelipe Balbi tristate "AM35x" 987c925546SFelipe Balbi depends on ARCH_OMAP 99a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 100eb83092cSAjay Kumar Gupta 1019ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS 1029ecb8875SAjay Kumar Gupta tristate "TI DSPS platforms" 10397238b35SSebastian Andrzej Siewior select USB_MUSB_AM335X_CHILD 104c0442479STony Lindgren depends on ARCH_OMAP2PLUS || COMPILE_TEST 105eff196adSFelipe Balbi depends on OF_IRQ 1069ecb8875SAjay Kumar Gupta 1074bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500 1081860c925SLinus Walleij tristate "Ux500 platforms" 109c0442479STony Lindgren depends on ARCH_U8500 || COMPILE_TEST 1104bc36fd3SMian Yousaf Kaukab 11110434d27SApelete Seketeliconfig USB_MUSB_JZ4740 11210434d27SApelete Seketeli tristate "JZ4740" 113a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 11410434d27SApelete Seketeli depends on MACH_JZ4740 || COMPILE_TEST 11510434d27SApelete Seketeli depends on USB_MUSB_GADGET 11610434d27SApelete Seketeli depends on USB_OTG_BLACKLIST_HUB 11710434d27SApelete Seketeli 11897238b35SSebastian Andrzej Siewiorconfig USB_MUSB_AM335X_CHILD 11997238b35SSebastian Andrzej Siewior tristate 12097238b35SSebastian Andrzej Siewior 1212f0bb2a0STony Lindgrencomment "MUSB DMA mode" 1222f0bb2a0STony Lindgren 1232f0bb2a0STony Lindgrenconfig MUSB_PIO_ONLY 1242f0bb2a0STony Lindgren bool 'Disable DMA (always use PIO)' 125550a7375SFelipe Balbi help 1262f0bb2a0STony Lindgren All data is copied between memory and FIFO by the CPU. 1272f0bb2a0STony Lindgren DMA controllers are ignored. 1282f0bb2a0STony Lindgren 1292f0bb2a0STony Lindgren Do not choose this unless DMA support for your SOC or board 1302f0bb2a0STony Lindgren is unavailable (or unstable). When DMA is enabled at compile time, 1312f0bb2a0STony Lindgren you can still disable it at run time using the "use_dma=n" module 1322f0bb2a0STony Lindgren parameter. 1332f0bb2a0STony Lindgren 1342f0bb2a0STony Lindgrenif !MUSB_PIO_ONLY 135550a7375SFelipe Balbi 136d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA 1371860c925SLinus Walleij bool 'ST Ericsson Ux500' 1382e7fc3baSArnd Bergmann depends on USB_MUSB_UX500 139d2389440SMian Yousaf Kaukab help 140d2389440SMian Yousaf Kaukab Enable DMA transfers on UX500 platforms. 141d2389440SMian Yousaf Kaukab 142550a7375SFelipe Balbiconfig USB_INVENTRA_DMA 1432e7fc3baSArnd Bergmann bool 'Inventra' 144*a9762b70SArnd Bergmann depends on USB_MUSB_OMAP2PLUS 145550a7375SFelipe Balbi help 146550a7375SFelipe Balbi Enable DMA transfers using Mentor's engine. 147550a7375SFelipe Balbi 148550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA 1492e7fc3baSArnd Bergmann bool 'TI CPPI (Davinci)' 1502e7fc3baSArnd Bergmann depends on USB_MUSB_DAVINCI 151550a7375SFelipe Balbi help 152550a7375SFelipe Balbi Enable DMA transfers when TI CPPI DMA is available. 153550a7375SFelipe Balbi 1549b3452d1SSebastian Andrzej Siewiorconfig USB_TI_CPPI41_DMA 155d6299b6eSAlexandre Bailon bool 'TI CPPI 4.1' 156d6299b6eSAlexandre Bailon depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES 157411dd19cSGeorge Cherian select TI_CPPI41 1589b3452d1SSebastian Andrzej Siewior 159550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA 1602e7fc3baSArnd Bergmann bool 'TUSB 6010' 16170c1ff4bSArnd Bergmann depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules 162550a7375SFelipe Balbi depends on ARCH_OMAP 163550a7375SFelipe Balbi help 164550a7375SFelipe Balbi Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 165550a7375SFelipe Balbi 1662f0bb2a0STony Lindgrenendif # !MUSB_PIO_ONLY 167c6bde9b5SFelipe Contreras 168c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC 169