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, ...)' 925e11ec4SFlorian Fainelli depends on 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 31*b7b741eaSDaniel Mack bool "MUSB Mode Selection" 32*b7b741eaSDaniel Mack default USB_MUSB_DUAL_ROLE if (USB && USB_GADGET) 33*b7b741eaSDaniel Mack default USB_MUSB_HOST if (USB && !USB_GADGET) 34*b7b741eaSDaniel Mack default USB_MUSB_GADGET if (!USB && USB_GADGET) 35*b7b741eaSDaniel Mack 36*b7b741eaSDaniel Mackconfig USB_MUSB_HOST 37*b7b741eaSDaniel Mack bool "Host only mode" 38*b7b741eaSDaniel Mack depends on USB 39*b7b741eaSDaniel Mack help 40*b7b741eaSDaniel Mack Select this when you want to use MUSB in host mode only, 41*b7b741eaSDaniel Mack thereby the gadget feature will be regressed. 42*b7b741eaSDaniel Mack 43*b7b741eaSDaniel Mackconfig USB_MUSB_GADGET 44*b7b741eaSDaniel Mack bool "Gadget only mode" 45*b7b741eaSDaniel Mack depends on USB_GADGET 46*b7b741eaSDaniel Mack help 47*b7b741eaSDaniel Mack Select this when you want to use MUSB in gadget mode only, 48*b7b741eaSDaniel Mack thereby the host feature will be regressed. 49*b7b741eaSDaniel Mack 50*b7b741eaSDaniel Mackconfig USB_MUSB_DUAL_ROLE 51*b7b741eaSDaniel Mack bool "Dual Role mode" 52*b7b741eaSDaniel Mack depends on (USB && USB_GADGET) 53*b7b741eaSDaniel Mack help 54*b7b741eaSDaniel Mack This is the default mode of working of MUSB controller where 55*b7b741eaSDaniel Mack both host and gadget features are enabled. 56*b7b741eaSDaniel Mack 57*b7b741eaSDaniel Mackendchoice 58*b7b741eaSDaniel Mack 59*b7b741eaSDaniel Mackchoice 607c925546SFelipe Balbi prompt "Platform Glue Layer" 61550a7375SFelipe Balbi 627c925546SFelipe Balbiconfig USB_MUSB_DAVINCI 631376d92fSFelipe Balbi tristate "DaVinci" 647c925546SFelipe Balbi depends on ARCH_DAVINCI_DMx 65787f5627SFelipe Balbi depends on BROKEN 66550a7375SFelipe Balbi 677c925546SFelipe Balbiconfig USB_MUSB_DA8XX 681376d92fSFelipe Balbi tristate "DA8xx/OMAP-L1x" 697c925546SFelipe Balbi depends on ARCH_DAVINCI_DA8XX 70787f5627SFelipe Balbi depends on BROKEN 713ee076deSSergei Shtylyov 727c925546SFelipe Balbiconfig USB_MUSB_TUSB6010 731376d92fSFelipe Balbi tristate "TUSB6010" 745273afe3SHeiko Carstens depends on GENERIC_HARDIRQS 75550a7375SFelipe Balbi 767c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS 771376d92fSFelipe Balbi tristate "OMAP2430 and onwards" 787c925546SFelipe Balbi depends on ARCH_OMAP2PLUS 79085ad406SBryan Wu 80eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X 811376d92fSFelipe Balbi tristate "AM35x" 827c925546SFelipe Balbi depends on ARCH_OMAP 83eb83092cSAjay Kumar Gupta 849ecb8875SAjay Kumar Guptaconfig USB_MUSB_DSPS 859ecb8875SAjay Kumar Gupta tristate "TI DSPS platforms" 869ecb8875SAjay Kumar Gupta 877c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN 881376d92fSFelipe Balbi tristate "Blackfin" 897c925546SFelipe Balbi depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) 907c925546SFelipe Balbi 914bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500 921376d92fSFelipe Balbi tristate "U8500 and U5500" 934bc36fd3SMian Yousaf Kaukab 947c925546SFelipe Balbiendchoice 95550a7375SFelipe Balbi 962e7fc3baSArnd Bergmannchoice 972e7fc3baSArnd Bergmann prompt 'MUSB DMA mode' 9899b7856fSFelipe Balbi default MUSB_PIO_ONLY if ARCH_MULTIPLATFORM 992e7fc3baSArnd Bergmann default USB_UX500_DMA if USB_MUSB_UX500 1002e7fc3baSArnd Bergmann default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 1012e7fc3baSArnd Bergmann default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI 1022e7fc3baSArnd Bergmann default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010 1039ecb8875SAjay Kumar Gupta default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X \ 1049ecb8875SAjay Kumar Gupta || USB_MUSB_DSPS 105550a7375SFelipe Balbi help 1062e7fc3baSArnd Bergmann Unfortunately, only one option can be enabled here. Ideally one 1072e7fc3baSArnd Bergmann should be able to build all these drivers into one kernel to 1082e7fc3baSArnd Bergmann allow using DMA on multiplatform kernels. 109550a7375SFelipe Balbi 110d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA 1112e7fc3baSArnd Bergmann bool 'ST Ericsson U8500 and U5500' 1122e7fc3baSArnd Bergmann depends on USB_MUSB_UX500 113d2389440SMian Yousaf Kaukab help 114d2389440SMian Yousaf Kaukab Enable DMA transfers on UX500 platforms. 115d2389440SMian Yousaf Kaukab 116550a7375SFelipe Balbiconfig USB_INVENTRA_DMA 1172e7fc3baSArnd Bergmann bool 'Inventra' 1182e7fc3baSArnd Bergmann depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 119550a7375SFelipe Balbi help 120550a7375SFelipe Balbi Enable DMA transfers using Mentor's engine. 121550a7375SFelipe Balbi 122550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA 1232e7fc3baSArnd Bergmann bool 'TI CPPI (Davinci)' 1242e7fc3baSArnd Bergmann depends on USB_MUSB_DAVINCI 125550a7375SFelipe Balbi help 126550a7375SFelipe Balbi Enable DMA transfers when TI CPPI DMA is available. 127550a7375SFelipe Balbi 128550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA 1292e7fc3baSArnd Bergmann bool 'TUSB 6010' 1307c925546SFelipe Balbi depends on USB_MUSB_TUSB6010 131550a7375SFelipe Balbi depends on ARCH_OMAP 132550a7375SFelipe Balbi help 133550a7375SFelipe Balbi Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 134550a7375SFelipe Balbi 1352e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY 1362e7fc3baSArnd Bergmann bool 'Disable DMA (always use PIO)' 1372e7fc3baSArnd Bergmann help 1382e7fc3baSArnd Bergmann All data is copied between memory and FIFO by the CPU. 1392e7fc3baSArnd Bergmann DMA controllers are ignored. 1402e7fc3baSArnd Bergmann 1412e7fc3baSArnd Bergmann Do not choose this unless DMA support for your SOC or board 1422e7fc3baSArnd Bergmann is unavailable (or unstable). When DMA is enabled at compile time, 1432e7fc3baSArnd Bergmann you can still disable it at run time using the "use_dma=n" module 1442e7fc3baSArnd Bergmann parameter. 1452e7fc3baSArnd Bergmann 1462e7fc3baSArnd Bergmannendchoice 147c6bde9b5SFelipe Contreras 148c6bde9b5SFelipe Contrerasendif # USB_MUSB_HDRC 149