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 862285963SFelipe Balbi depends on USB && USB_GADGET 91c47cb01SSonic Zhang depends on (ARM || (BF54x && !BF544) || (BF52x && !BF522 && !BF523)) 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 151376d92fSFelipe Balbi tristate 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' 16550a7375SFelipe Balbi help 17550a7375SFelipe Balbi Say Y here if your system has a dual role high speed USB 18550a7375SFelipe Balbi controller based on the Mentor Graphics silicon IP. Then 19550a7375SFelipe Balbi configure options to match your silicon and the board 20550a7375SFelipe Balbi it's being used with, including the USB peripheral role, 21550a7375SFelipe Balbi or the USB host role, or both. 22550a7375SFelipe Balbi 23a227fd7dSDavid Brownell Texas Instruments familiies using this IP include DaVinci 24a227fd7dSDavid Brownell (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010. 25550a7375SFelipe Balbi 26085ad406SBryan Wu Analog Devices parts using this IP include Blackfin BF54x, 27085ad406SBryan Wu BF525 and BF527. 28085ad406SBryan Wu 29550a7375SFelipe Balbi If you do not know what this is, please say N. 30550a7375SFelipe Balbi 311376d92fSFelipe Balbi To compile this driver as a module, choose M here; the 321376d92fSFelipe Balbi module will be called "musb-hdrc". 33550a7375SFelipe Balbi 347c925546SFelipe Balbichoice 357c925546SFelipe Balbi prompt "Platform Glue Layer" 36550a7375SFelipe Balbi depends on USB_MUSB_HDRC 37550a7375SFelipe Balbi 387c925546SFelipe Balbiconfig USB_MUSB_DAVINCI 391376d92fSFelipe Balbi tristate "DaVinci" 407c925546SFelipe Balbi depends on ARCH_DAVINCI_DMx 41550a7375SFelipe Balbi 427c925546SFelipe Balbiconfig USB_MUSB_DA8XX 431376d92fSFelipe Balbi tristate "DA8xx/OMAP-L1x" 447c925546SFelipe Balbi depends on ARCH_DAVINCI_DA8XX 453ee076deSSergei Shtylyov 467c925546SFelipe Balbiconfig USB_MUSB_TUSB6010 471376d92fSFelipe Balbi tristate "TUSB6010" 487c925546SFelipe Balbi depends on ARCH_OMAP 49550a7375SFelipe Balbi 507c925546SFelipe Balbiconfig USB_MUSB_OMAP2PLUS 511376d92fSFelipe Balbi tristate "OMAP2430 and onwards" 527c925546SFelipe Balbi depends on ARCH_OMAP2PLUS 53085ad406SBryan Wu 54eb83092cSAjay Kumar Guptaconfig USB_MUSB_AM35X 551376d92fSFelipe Balbi tristate "AM35x" 567c925546SFelipe Balbi depends on ARCH_OMAP 57eb83092cSAjay Kumar Gupta 587c925546SFelipe Balbiconfig USB_MUSB_BLACKFIN 591376d92fSFelipe Balbi tristate "Blackfin" 607c925546SFelipe Balbi depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) 617c925546SFelipe Balbi 624bc36fd3SMian Yousaf Kaukabconfig USB_MUSB_UX500 631376d92fSFelipe Balbi tristate "U8500 and U5500" 64d0678594SMian Yousaf Kaukab depends on (ARCH_U8500 && AB8500_USB) 654bc36fd3SMian Yousaf Kaukab 667c925546SFelipe Balbiendchoice 67550a7375SFelipe Balbi 68*2e7fc3baSArnd Bergmannchoice 69*2e7fc3baSArnd Bergmann prompt 'MUSB DMA mode' 70*2e7fc3baSArnd Bergmann default USB_UX500_DMA if USB_MUSB_UX500 71*2e7fc3baSArnd Bergmann default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 72*2e7fc3baSArnd Bergmann default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI 73*2e7fc3baSArnd Bergmann default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010 74*2e7fc3baSArnd Bergmann default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X 75550a7375SFelipe Balbi help 76*2e7fc3baSArnd Bergmann Unfortunately, only one option can be enabled here. Ideally one 77*2e7fc3baSArnd Bergmann should be able to build all these drivers into one kernel to 78*2e7fc3baSArnd Bergmann allow using DMA on multiplatform kernels. 79550a7375SFelipe Balbi 80d2389440SMian Yousaf Kaukabconfig USB_UX500_DMA 81*2e7fc3baSArnd Bergmann bool 'ST Ericsson U8500 and U5500' 82*2e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 83*2e7fc3baSArnd Bergmann depends on USB_MUSB_UX500 84d2389440SMian Yousaf Kaukab help 85d2389440SMian Yousaf Kaukab Enable DMA transfers on UX500 platforms. 86d2389440SMian Yousaf Kaukab 87550a7375SFelipe Balbiconfig USB_INVENTRA_DMA 88*2e7fc3baSArnd Bergmann bool 'Inventra' 89*2e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 90*2e7fc3baSArnd Bergmann depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN 91550a7375SFelipe Balbi help 92550a7375SFelipe Balbi Enable DMA transfers using Mentor's engine. 93550a7375SFelipe Balbi 94550a7375SFelipe Balbiconfig USB_TI_CPPI_DMA 95*2e7fc3baSArnd Bergmann bool 'TI CPPI (Davinci)' 96*2e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 97*2e7fc3baSArnd Bergmann depends on USB_MUSB_DAVINCI 98550a7375SFelipe Balbi help 99550a7375SFelipe Balbi Enable DMA transfers when TI CPPI DMA is available. 100550a7375SFelipe Balbi 101550a7375SFelipe Balbiconfig USB_TUSB_OMAP_DMA 102*2e7fc3baSArnd Bergmann bool 'TUSB 6010' 103*2e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 1047c925546SFelipe Balbi depends on USB_MUSB_TUSB6010 105550a7375SFelipe Balbi depends on ARCH_OMAP 106550a7375SFelipe Balbi help 107550a7375SFelipe Balbi Enable DMA transfers on TUSB 6010 when OMAP DMA is available. 108550a7375SFelipe Balbi 109*2e7fc3baSArnd Bergmannconfig MUSB_PIO_ONLY 110*2e7fc3baSArnd Bergmann bool 'Disable DMA (always use PIO)' 111*2e7fc3baSArnd Bergmann depends on USB_MUSB_HDRC 112*2e7fc3baSArnd Bergmann help 113*2e7fc3baSArnd Bergmann All data is copied between memory and FIFO by the CPU. 114*2e7fc3baSArnd Bergmann DMA controllers are ignored. 115*2e7fc3baSArnd Bergmann 116*2e7fc3baSArnd Bergmann Do not choose this unless DMA support for your SOC or board 117*2e7fc3baSArnd Bergmann is unavailable (or unstable). When DMA is enabled at compile time, 118*2e7fc3baSArnd Bergmann you can still disable it at run time using the "use_dma=n" module 119*2e7fc3baSArnd Bergmann parameter. 120*2e7fc3baSArnd Bergmann 121*2e7fc3baSArnd Bergmannendchoice 122