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*54a605f4SFelipe Contreras tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' 962285963SFelipe Balbi depends on USB && USB_GADGET 108ba63a22SCliff Cai select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN) 11550a7375SFelipe Balbi select TWL4030_USB if MACH_OMAP_3430SDP 124c42fbc9SHema HK select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA 1337daa925SDavid Brownell select USB_OTG_UTILS 140de174b5SLuciano Coelho select USB_GADGET_DUALSPEED 15550a7375SFelipe Balbi help 16550a7375SFelipe Balbi Say Y here if your system has a dual role high speed USB 17550a7375SFelipe Balbi controller based on the Mentor Graphics silicon IP. Then 18550a7375SFelipe Balbi configure options to match your silicon and the board 19550a7375SFelipe Balbi it's being used with, including the USB peripheral role, 20550a7375SFelipe Balbi or the USB host role, or both. 21550a7375SFelipe Balbi 22a227fd7dSDavid Brownell Texas Instruments familiies using this IP include DaVinci 23a227fd7dSDavid Brownell (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010. 24550a7375SFelipe Balbi 25085ad406SBryan Wu Analog Devices parts using this IP include Blackfin BF54x, 26085ad406SBryan Wu BF525 and BF527. 27085ad406SBryan Wu 28550a7375SFelipe Balbi If you do not know what this is, please say N. 29550a7375SFelipe Balbi 301376d92fSFelipe Balbi To compile this driver as a module, choose M here; the 311376d92fSFelipe Balbi module will be called "musb-hdrc". 32550a7375SFelipe Balbi 337c925546SFelipe Balbichoice 347c925546SFelipe Balbi prompt "Platform Glue Layer" 35550a7375SFelipe Balbi depends on USB_MUSB_HDRC 36550a7375SFelipe Balbi 377c925546SFelipe Balbiconfig USB_MUSB_DAVINCI 381376d92fSFelipe Balbi tristate "DaVinci" 397c925546SFelipe Balbi depends on ARCH_DAVINCI_DMx 40550a7375SFelipe Balbi 417c925546SFelipe Balbiconfig USB_MUSB_DA8XX 421376d92fSFelipe Balbi tristate "DA8xx/OMAP-L1x" 437c925546SFelipe Balbi depends on ARCH_DAVINCI_DA8XX 443ee076deSSergei Shtylyov 457c925546SFelipe Balbiconfig USB_MUSB_TUSB6010 461376d92fSFelipe Balbi tristate "TUSB6010" 47550a7375SFelipe Balbi 487c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS 491376d92fSFelipe Balbi tristate "OMAP2430 and onwards" 507c925546SFelipe Balbi depends on ARCH_OMAP2PLUS 51085ad406SBryan Wu 52eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X 531376d92fSFelipe Balbi tristate "AM35x" 547c925546SFelipe Balbi depends on ARCH_OMAP 55eb83092cSAjay Kumar Gupta 567c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN 571376d92fSFelipe Balbi tristate "Blackfin" 587c925546SFelipe Balbi depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) 597c925546SFelipe Balbi 604bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500 611376d92fSFelipe Balbi tristate "U8500 and U5500" 62d0678594SMian Yousaf Kaukab depends on (ARCH_U8500 && AB8500_USB) 634bc36fd3SMian Yousaf Kaukab 647c925546SFelipe Balbiendchoice 65550a7375SFelipe Balbi 662e7fc3baSArnd Bergmannchoice 672e7fc3baSArnd Bergmann prompt 'MUSB DMA mode' 682e7fc3baSArnd Bergmann default USB_UX500_DMA if USB_MUSB_UX500 692e7fc3baSArnd Bergmann default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 702e7fc3baSArnd Bergmann default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI 712e7fc3baSArnd Bergmann default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010 722e7fc3baSArnd Bergmann default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X 73550a7375SFelipe Balbi help 742e7fc3baSArnd Bergmann Unfortunately, only one option can be enabled here. Ideally one 752e7fc3baSArnd Bergmann should be able to build all these drivers into one kernel to 762e7fc3baSArnd Bergmann allow using DMA on multiplatform kernels. 77550a7375SFelipe Balbi 78d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA 792e7fc3baSArnd Bergmann bool 'ST Ericsson U8500 and U5500' 802e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 812e7fc3baSArnd Bergmann depends on USB_MUSB_UX500 82d2389440SMian Yousaf Kaukab help 83d2389440SMian Yousaf Kaukab Enable DMA transfers on UX500 platforms. 84d2389440SMian Yousaf Kaukab 85550a7375SFelipe Balbiconfig USB_INVENTRA_DMA 862e7fc3baSArnd Bergmann bool 'Inventra' 872e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 882e7fc3baSArnd Bergmann depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 89550a7375SFelipe Balbi help 90550a7375SFelipe Balbi Enable DMA transfers using Mentor's engine. 91550a7375SFelipe Balbi 92550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA 932e7fc3baSArnd Bergmann bool 'TI CPPI (Davinci)' 942e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 952e7fc3baSArnd Bergmann depends on USB_MUSB_DAVINCI 96550a7375SFelipe Balbi help 97550a7375SFelipe Balbi Enable DMA transfers when TI CPPI DMA is available. 98550a7375SFelipe Balbi 99550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA 1002e7fc3baSArnd Bergmann bool 'TUSB 6010' 1012e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 1027c925546SFelipe Balbi depends on USB_MUSB_TUSB6010 103550a7375SFelipe Balbi depends on ARCH_OMAP 104550a7375SFelipe Balbi help 105550a7375SFelipe Balbi Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 106550a7375SFelipe Balbi 1072e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY 1082e7fc3baSArnd Bergmann bool 'Disable DMA (always use PIO)' 1092e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 1102e7fc3baSArnd Bergmann help 1112e7fc3baSArnd Bergmann All data is copied between memory and FIFO by the CPU. 1122e7fc3baSArnd Bergmann DMA controllers are ignored. 1132e7fc3baSArnd Bergmann 1142e7fc3baSArnd Bergmann Do not choose this unless DMA support for your SOC or board 1152e7fc3baSArnd Bergmann is unavailable (or unstable). When DMA is enabled at compile time, 1162e7fc3baSArnd Bergmann you can still disable it at run time using the "use_dma=n" module 1172e7fc3baSArnd Bergmann parameter. 1182e7fc3baSArnd Bergmann 1192e7fc3baSArnd Bergmannendchoice 120