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 854a605f4SFelipe Contreras tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' 9845c071bSEzequiel Garcia depends on (USB || USB_GADGET) 10550a7375SFelipe Balbi help 11550a7375SFelipe Balbi Say Y here if your system has a dual role high speed USB 12550a7375SFelipe Balbi controller based on the Mentor Graphics silicon IP. Then 13550a7375SFelipe Balbi configure options to match your silicon and the board 14550a7375SFelipe Balbi it's being used with, including the USB peripheral role, 15550a7375SFelipe Balbi or the USB host role, or both. 16550a7375SFelipe Balbi 1757bfc0a7SPeter Meerwald Texas Instruments families using this IP include DaVinci 18a227fd7dSDavid Brownell (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010. 19550a7375SFelipe Balbi 20085ad406SBryan Wu Analog Devices parts using this IP include Blackfin BF54x, 21085ad406SBryan Wu BF525 and BF527. 22085ad406SBryan Wu 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 637c925546SFelipe Balbiconfig USB_MUSB_DAVINCI 641376d92fSFelipe Balbi tristate "DaVinci" 657c925546SFelipe Balbi depends on ARCH_DAVINCI_DMx 66*a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 67787f5627SFelipe Balbi depends on BROKEN 68550a7375SFelipe Balbi 697c925546SFelipe Balbiconfig USB_MUSB_DA8XX 701376d92fSFelipe Balbi tristate "DA8xx/OMAP-L1x" 717c925546SFelipe Balbi depends on ARCH_DAVINCI_DA8XX 72*a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 73787f5627SFelipe Balbi depends on BROKEN 743ee076deSSergei Shtylyov 757c925546SFelipe Balbiconfig USB_MUSB_TUSB6010 761376d92fSFelipe Balbi tristate "TUSB6010" 77c0442479STony Lindgren depends on ARCH_OMAP2PLUS || COMPILE_TEST 78c0442479STony Lindgren depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules 79550a7375SFelipe Balbi 807c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS 811376d92fSFelipe Balbi tristate "OMAP2430 and onwards" 82a8d191c8SArnd Bergmann depends on ARCH_OMAP2PLUS && USB 833e3101d5SKishon Vijay Abraham I select GENERIC_PHY 84085ad406SBryan Wu 85eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X 861376d92fSFelipe Balbi tristate "AM35x" 877c925546SFelipe Balbi depends on ARCH_OMAP 88*a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 89eb83092cSAjay Kumar Gupta 909ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS 919ecb8875SAjay Kumar Gupta tristate "TI DSPS platforms" 9297238b35SSebastian Andrzej Siewior select USB_MUSB_AM335X_CHILD 93c0442479STony Lindgren depends on ARCH_OMAP2PLUS || COMPILE_TEST 94eff196adSFelipe Balbi depends on OF_IRQ 959ecb8875SAjay Kumar Gupta 967c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN 971376d92fSFelipe Balbi tristate "Blackfin" 987c925546SFelipe Balbi depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) 99*a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 1007c925546SFelipe Balbi 1014bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500 1021860c925SLinus Walleij tristate "Ux500 platforms" 103c0442479STony Lindgren depends on ARCH_U8500 || COMPILE_TEST 1044bc36fd3SMian Yousaf Kaukab 10510434d27SApelete Seketeliconfig USB_MUSB_JZ4740 10610434d27SApelete Seketeli tristate "JZ4740" 107*a0cb12e2SArnd Bergmann depends on NOP_USB_XCEIV 10810434d27SApelete Seketeli depends on MACH_JZ4740 || COMPILE_TEST 10910434d27SApelete Seketeli depends on USB_MUSB_GADGET 11010434d27SApelete Seketeli depends on USB_OTG_BLACKLIST_HUB 11110434d27SApelete Seketeli 11297238b35SSebastian Andrzej Siewiorconfig USB_MUSB_AM335X_CHILD 11397238b35SSebastian Andrzej Siewior tristate 11497238b35SSebastian Andrzej Siewior 1152e7fc3baSArnd Bergmannchoice 1162e7fc3baSArnd Bergmann prompt 'MUSB DMA mode' 11710434d27SApelete Seketeli default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM || USB_MUSB_JZ4740 1182e7fc3baSArnd Bergmann default USB_UX500_DMA if USB_MUSB_UX500 1192e7fc3baSArnd Bergmann default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 1202e7fc3baSArnd Bergmann default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI 1212e7fc3baSArnd Bergmann default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010 1229ecb8875SAjay Kumar Gupta default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X \ 1239ecb8875SAjay Kumar Gupta || USB_MUSB_DSPS 124550a7375SFelipe Balbi help 1252e7fc3baSArnd Bergmann Unfortunately, only one option can be enabled here. Ideally one 1262e7fc3baSArnd Bergmann should be able to build all these drivers into one kernel to 1272e7fc3baSArnd Bergmann allow using DMA on multiplatform kernels. 128550a7375SFelipe Balbi 129d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA 1301860c925SLinus Walleij bool 'ST Ericsson Ux500' 1312e7fc3baSArnd Bergmann depends on USB_MUSB_UX500 132d2389440SMian Yousaf Kaukab help 133d2389440SMian Yousaf Kaukab Enable DMA transfers on UX500 platforms. 134d2389440SMian Yousaf Kaukab 135550a7375SFelipe Balbiconfig USB_INVENTRA_DMA 1362e7fc3baSArnd Bergmann bool 'Inventra' 1372e7fc3baSArnd Bergmann depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 138550a7375SFelipe Balbi help 139550a7375SFelipe Balbi Enable DMA transfers using Mentor's engine. 140550a7375SFelipe Balbi 141550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA 1422e7fc3baSArnd Bergmann bool 'TI CPPI (Davinci)' 1432e7fc3baSArnd Bergmann depends on USB_MUSB_DAVINCI 144550a7375SFelipe Balbi help 145550a7375SFelipe Balbi Enable DMA transfers when TI CPPI DMA is available. 146550a7375SFelipe Balbi 1479b3452d1SSebastian Andrzej Siewiorconfig USB_TI_CPPI41_DMA 1489b3452d1SSebastian Andrzej Siewior bool 'TI CPPI 4.1 (AM335x)' 1499b3452d1SSebastian Andrzej Siewior depends on ARCH_OMAP 150411dd19cSGeorge Cherian select TI_CPPI41 1519b3452d1SSebastian Andrzej Siewior 152550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA 1532e7fc3baSArnd Bergmann bool 'TUSB 6010' 15470c1ff4bSArnd Bergmann depends on USB_MUSB_TUSB6010 = USB_MUSB_HDRC # both built-in or both modules 155550a7375SFelipe Balbi depends on ARCH_OMAP 156550a7375SFelipe Balbi help 157550a7375SFelipe Balbi Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 158550a7375SFelipe Balbi 1592e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY 1602e7fc3baSArnd Bergmann bool 'Disable DMA (always use PIO)' 1612e7fc3baSArnd Bergmann help 1622e7fc3baSArnd Bergmann All data is copied between memory and FIFO by the CPU. 1632e7fc3baSArnd Bergmann DMA controllers are ignored. 1642e7fc3baSArnd Bergmann 1652e7fc3baSArnd Bergmann Do not choose this unless DMA support for your SOC or board 1662e7fc3baSArnd Bergmann is unavailable (or unstable). When DMA is enabled at compile time, 1672e7fc3baSArnd Bergmann you can still disable it at run time using the "use_dma=n" module 1682e7fc3baSArnd Bergmann parameter. 1692e7fc3baSArnd Bergmann 1702e7fc3baSArnd Bergmannendchoice 171c6bde9b5SFelipe Contreras 172c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC 173