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 8744543c5SHans de Goede tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, AW, ...)' 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 21085ad406SBryan Wu Analog Devices parts using this IP include Blackfin BF54x, 22085ad406SBryan Wu BF525 and BF527. 23085ad406SBryan Wu 24744543c5SHans de Goede Allwinner SoCs using this IP include A10, A13, A20, ... 25744543c5SHans de Goede 26550a7375SFelipe Balbi If you do not know what this is, please say N. 27550a7375SFelipe Balbi 281376d92fSFelipe Balbi To compile this driver as a module, choose M here; the 291376d92fSFelipe Balbi module will be called "musb-hdrc". 30550a7375SFelipe Balbi 31c6bde9b5SFelipe Contrerasif USB_MUSB_HDRC 32c6bde9b5SFelipe Contreras 337c925546SFelipe Balbichoice 34b7b741eaSDaniel Mack bool "MUSB Mode Selection" 35b7b741eaSDaniel Mack default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET) 36b7b741eaSDaniel Mack default USB_MUSB_HOST if (USB && !USB_GADGET) 37b7b741eaSDaniel Mack default USB_MUSB_GADGET if (!USB && USB_GADGET) 38b7b741eaSDaniel Mack 39b7b741eaSDaniel Mackconfig USB_MUSB_HOST 40b7b741eaSDaniel Mack bool "Host only mode" 41845c071bSEzequiel Garcia depends on USB=y || USB=USB_MUSB_HDRC 42b7b741eaSDaniel Mack help 43b7b741eaSDaniel Mack Select this when you want to use MUSB in host mode only, 44b7b741eaSDaniel Mack thereby the gadget feature will be regressed. 45b7b741eaSDaniel Mack 46b7b741eaSDaniel Mackconfig USB_MUSB_GADGET 47b7b741eaSDaniel Mack bool "Gadget only mode" 48845c071bSEzequiel Garcia depends on USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC 493f83e538SGeert Uytterhoeven depends on HAS_DMA 50b7b741eaSDaniel Mack help 51b7b741eaSDaniel Mack Select this when you want to use MUSB in gadget mode only, 52b7b741eaSDaniel Mack thereby the host feature will be regressed. 53b7b741eaSDaniel Mack 54b7b741eaSDaniel Mackconfig USB_MUSB_DUAL_ROLE 55b7b741eaSDaniel Mack bool "Dual Role mode" 56845c071bSEzequiel Garcia depends on ((USB=y || USB=USB_MUSB_HDRC) && (USB_GADGET=y || USB_GADGET=USB_MUSB_HDRC)) 573f83e538SGeert Uytterhoeven depends on HAS_DMA 58b7b741eaSDaniel Mack help 59b7b741eaSDaniel Mack This is the default mode of working of MUSB controller where 60b7b741eaSDaniel Mack both host and gadget features are enabled. 61b7b741eaSDaniel Mack 62b7b741eaSDaniel Mackendchoice 63b7b741eaSDaniel Mack 6482c02f58STony Lindgrencomment "Platform Glue Layer" 65550a7375SFelipe Balbi 66744543c5SHans de Goedeconfig USB_MUSB_SUNXI 67744543c5SHans de Goede tristate "Allwinner (sunxi)" 68744543c5SHans de Goede depends on ARCH_SUNXI 69744543c5SHans de Goede depends on NOP_USB_XCEIV 70744543c5SHans de Goede depends on PHY_SUN4I_USB 71744543c5SHans de Goede depends on EXTCON 72744543c5SHans de Goede depends on GENERIC_PHY 73744543c5SHans de Goede select SUNXI_SRAM 74744543c5SHans de Goede 757c925546SFelipe Balbiconfig USB_MUSB_DAVINCI 761376d92fSFelipe Balbi tristate "DaVinci" 777c925546SFelipe Balbi depends on ARCH_DAVINCI_DMx 78a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 79787f5627SFelipe Balbi depends on BROKEN 80550a7375SFelipe Balbi 817c925546SFelipe Balbiconfig USB_MUSB_DA8XX 821376d92fSFelipe Balbi tristate "DA8xx/OMAP-L1x" 837c925546SFelipe Balbi depends on ARCH_DAVINCI_DA8XX 84a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 85947c49afSDavid Lechner select PHY_DA8XX_USB 863ee076deSSergei Shtylyov 877c925546SFelipe Balbiconfig USB_MUSB_TUSB6010 881376d92fSFelipe Balbi tristate "TUSB6010" 8949f77e3dSVegard Nossum depends on HAS_IOMEM 90ed3d6d0aSTony Lindgren depends on (ARCH_OMAP2PLUS || COMPILE_TEST) && !BLACKFIN 91c0442479STony Lindgren depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules 92550a7375SFelipe Balbi 937c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS 941376d92fSFelipe Balbi tristate "OMAP2430 and onwards" 951c390eb3SArnd Bergmann depends on ARCH_OMAP2PLUS && USB 961c390eb3SArnd Bergmann depends on OMAP_CONTROL_PHY || !OMAP_CONTROL_PHY 973e3101d5SKishon Vijay Abraham I select GENERIC_PHY 98085ad406SBryan Wu 99eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X 1001376d92fSFelipe Balbi tristate "AM35x" 1017c925546SFelipe Balbi depends on ARCH_OMAP 102a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 103eb83092cSAjay Kumar Gupta 1049ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS 1059ecb8875SAjay Kumar Gupta tristate "TI DSPS platforms" 10697238b35SSebastian Andrzej Siewior select USB_MUSB_AM335X_CHILD 107c0442479STony Lindgren depends on ARCH_OMAP2PLUS || COMPILE_TEST 108eff196adSFelipe Balbi depends on OF_IRQ 1099ecb8875SAjay Kumar Gupta 1107c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN 1111376d92fSFelipe Balbi tristate "Blackfin" 1127c925546SFelipe Balbi depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) 113a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 1147c925546SFelipe Balbi 1154bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500 1161860c925SLinus Walleij tristate "Ux500 platforms" 117c0442479STony Lindgren depends on ARCH_U8500 || COMPILE_TEST 1184bc36fd3SMian Yousaf Kaukab 11910434d27SApelete Seketeliconfig USB_MUSB_JZ4740 12010434d27SApelete Seketeli tristate "JZ4740" 121a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 12210434d27SApelete Seketeli depends on MACH_JZ4740 || COMPILE_TEST 12310434d27SApelete Seketeli depends on USB_MUSB_GADGET 12410434d27SApelete Seketeli depends on USB_OTG_BLACKLIST_HUB 12510434d27SApelete Seketeli 12697238b35SSebastian Andrzej Siewiorconfig USB_MUSB_AM335X_CHILD 12797238b35SSebastian Andrzej Siewior tristate 12897238b35SSebastian Andrzej Siewior 1292f0bb2a0STony Lindgrencomment "MUSB DMA mode" 1302f0bb2a0STony Lindgren 1312f0bb2a0STony Lindgrenconfig MUSB_PIO_ONLY 1322f0bb2a0STony Lindgren bool 'Disable DMA (always use PIO)' 133550a7375SFelipe Balbi help 1342f0bb2a0STony Lindgren All data is copied between memory and FIFO by the CPU. 1352f0bb2a0STony Lindgren DMA controllers are ignored. 1362f0bb2a0STony Lindgren 1372f0bb2a0STony Lindgren Do not choose this unless DMA support for your SOC or board 1382f0bb2a0STony Lindgren is unavailable (or unstable). When DMA is enabled at compile time, 1392f0bb2a0STony Lindgren you can still disable it at run time using the "use_dma=n" module 1402f0bb2a0STony Lindgren parameter. 1412f0bb2a0STony Lindgren 1422f0bb2a0STony Lindgrenif !MUSB_PIO_ONLY 143550a7375SFelipe Balbi 144d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA 1451860c925SLinus Walleij bool 'ST Ericsson Ux500' 1462e7fc3baSArnd Bergmann depends on USB_MUSB_UX500 147d2389440SMian Yousaf Kaukab help 148d2389440SMian Yousaf Kaukab Enable DMA transfers on UX500 platforms. 149d2389440SMian Yousaf Kaukab 150550a7375SFelipe Balbiconfig USB_INVENTRA_DMA 1512e7fc3baSArnd Bergmann bool 'Inventra' 1522e7fc3baSArnd Bergmann depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 153550a7375SFelipe Balbi help 154550a7375SFelipe Balbi Enable DMA transfers using Mentor's engine. 155550a7375SFelipe Balbi 156550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA 1572e7fc3baSArnd Bergmann bool 'TI CPPI (Davinci)' 1582e7fc3baSArnd Bergmann depends on USB_MUSB_DAVINCI 159550a7375SFelipe Balbi help 160550a7375SFelipe Balbi Enable DMA transfers when TI CPPI DMA is available. 161550a7375SFelipe Balbi 1629b3452d1SSebastian Andrzej Siewiorconfig USB_TI_CPPI41_DMA 163*d6299b6eSAlexandre Bailon bool 'TI CPPI 4.1' 164*d6299b6eSAlexandre Bailon depends on (ARCH_OMAP || ARCH_DAVINCI_DA8XX) && DMADEVICES 165411dd19cSGeorge Cherian select TI_CPPI41 1669b3452d1SSebastian Andrzej Siewior 167550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA 1682e7fc3baSArnd Bergmann bool 'TUSB 6010' 16970c1ff4bSArnd Bergmann depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules 170550a7375SFelipe Balbi depends on ARCH_OMAP 171550a7375SFelipe Balbi help 172550a7375SFelipe Balbi Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 173550a7375SFelipe Balbi 1742f0bb2a0STony Lindgrenendif # !MUSB_PIO_ONLY 175c6bde9b5SFelipe Contreras 176c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC 177