| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 1 | # | 
 | 2 | # USB Dual Role (OTG-ready) Controller Drivers | 
 | 3 | # for silicon based on Mentor Graphics INVENTRA designs | 
 | 4 | # | 
 | 5 |  | 
 | 6 | comment "Enable Host or Gadget support to see Inventra options" | 
 | 7 | 	depends on !USB && USB_GADGET=n | 
 | 8 |  | 
 | 9 | # (M)HDRC = (Multipoint) Highspeed Dual-Role Controller | 
 | 10 | config USB_MUSB_HDRC | 
| Mike Frysinger | b20cf90 | 2009-09-16 21:10:53 -0400 | [diff] [blame] | 11 | 	depends on (USB || USB_GADGET) | 
| Sonic Zhang | 1c47cb0 | 2009-11-16 20:04:21 -0500 | [diff] [blame] | 12 | 	depends on (ARM || (BF54x && !BF544) || (BF52x && !BF522 && !BF523)) | 
| Cliff Cai | 8ba63a2 | 2009-11-16 20:05:03 -0500 | [diff] [blame] | 13 | 	select NOP_USB_XCEIV if (ARCH_DAVINCI || MACH_OMAP3EVM || BLACKFIN) | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 14 | 	select TWL4030_USB if MACH_OMAP_3430SDP | 
| Hema HK | 4c42fbc | 2010-12-10 18:09:35 +0530 | [diff] [blame] | 15 | 	select TWL6030_USB if MACH_OMAP_4430SDP || MACH_OMAP4_PANDA | 
| David Brownell | 37daa92 | 2009-01-24 17:56:25 -0800 | [diff] [blame] | 16 | 	select USB_OTG_UTILS | 
| Felipe Balbi | 7a180e7 | 2011-03-22 11:31:37 +0200 | [diff] [blame] | 17 | 	bool 'Inventra Highspeed Dual Role Controller (TI, ADI, ...)' | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 18 | 	help | 
 | 19 | 	  Say Y here if your system has a dual role high speed USB | 
 | 20 | 	  controller based on the Mentor Graphics silicon IP.  Then | 
 | 21 | 	  configure options to match your silicon and the board | 
 | 22 | 	  it's being used with, including the USB peripheral role, | 
 | 23 | 	  or the USB host role, or both. | 
 | 24 |  | 
| David Brownell | a227fd7 | 2009-02-24 15:31:54 -0800 | [diff] [blame] | 25 | 	  Texas Instruments familiies using this IP include DaVinci | 
 | 26 | 	  (35x, 644x ...), OMAP 243x, OMAP 3, and TUSB 6010. | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 27 |  | 
| Bryan Wu | 085ad40 | 2008-12-02 21:33:49 +0200 | [diff] [blame] | 28 | 	  Analog Devices parts using this IP include Blackfin BF54x, | 
 | 29 | 	  BF525 and BF527. | 
 | 30 |  | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 31 | 	  If you do not know what this is, please say N. | 
 | 32 |  | 
| Felipe Balbi | 7a180e7 | 2011-03-22 11:31:37 +0200 | [diff] [blame] | 33 | #	  To compile this driver as a module, choose M here; the | 
 | 34 | #	  module will be called "musb-hdrc". | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 35 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 36 | choice | 
 | 37 | 	prompt "Platform Glue Layer" | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 38 | 	depends on USB_MUSB_HDRC | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 39 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 40 | config USB_MUSB_DAVINCI | 
 | 41 | 	bool "DaVinci" | 
 | 42 | 	depends on ARCH_DAVINCI_DMx | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 43 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 44 | config USB_MUSB_DA8XX | 
 | 45 | 	bool "DA8xx/OMAP-L1x" | 
 | 46 | 	depends on ARCH_DAVINCI_DA8XX | 
| Sergei Shtylyov | 3ee076d | 2010-09-24 13:44:03 +0300 | [diff] [blame] | 47 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 48 | config USB_MUSB_TUSB6010 | 
 | 49 | 	bool "TUSB6010" | 
 | 50 | 	depends on ARCH_OMAP | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 51 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 52 | config USB_MUSB_OMAP2PLUS | 
 | 53 | 	bool "OMAP2430 and onwards" | 
 | 54 | 	depends on ARCH_OMAP2PLUS | 
| Bryan Wu | 085ad40 | 2008-12-02 21:33:49 +0200 | [diff] [blame] | 55 |  | 
| Ajay Kumar Gupta | eb83092 | 2010-10-19 10:08:12 +0300 | [diff] [blame] | 56 | config USB_MUSB_AM35X | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 57 | 	bool "AM35x" | 
 | 58 | 	depends on ARCH_OMAP | 
| Ajay Kumar Gupta | eb83092 | 2010-10-19 10:08:12 +0300 | [diff] [blame] | 59 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 60 | config USB_MUSB_BLACKFIN | 
 | 61 | 	bool "Blackfin" | 
 | 62 | 	depends on (BF54x && !BF544) || (BF52x && ! BF522 && !BF523) | 
 | 63 |  | 
| Mian Yousaf Kaukab | 4bc36fd | 2010-12-09 13:05:01 +0100 | [diff] [blame] | 64 | config USB_MUSB_UX500 | 
 | 65 | 	bool "U8500 and U5500" | 
 | 66 | 	depends on (ARCH_U8500 && AB8500_USB) || (ARCH_U5500) | 
 | 67 |  | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 68 | endchoice | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 69 |  | 
 | 70 | choice | 
 | 71 | 	prompt "Driver Mode" | 
 | 72 | 	depends on USB_MUSB_HDRC | 
 | 73 | 	help | 
 | 74 | 	  Dual-Role devices can support both host and peripheral roles, | 
 | 75 | 	  as well as a the special "OTG Device" role which can switch | 
 | 76 | 	  between both roles as needed. | 
 | 77 |  | 
 | 78 | # use USB_MUSB_HDRC_HCD not USB_MUSB_HOST to #ifdef host side support; | 
 | 79 | # OTG needs both roles, not just USB_MUSB_HOST. | 
 | 80 | config USB_MUSB_HOST | 
 | 81 | 	depends on USB | 
 | 82 | 	bool "USB Host" | 
 | 83 | 	help | 
 | 84 | 	  Say Y here if your system supports the USB host role. | 
 | 85 | 	  If it has a USB "A" (rectangular), "Mini-A" (uncommon), | 
 | 86 | 	  or "Mini-AB" connector, it supports the host role. | 
 | 87 | 	  (With a "Mini-AB" connector, you should enable USB OTG.) | 
 | 88 |  | 
 | 89 | # use USB_GADGET_MUSB_HDRC not USB_MUSB_PERIPHERAL to #ifdef peripheral | 
 | 90 | # side support ... OTG needs both roles | 
 | 91 | config USB_MUSB_PERIPHERAL | 
 | 92 | 	depends on USB_GADGET | 
 | 93 | 	bool "USB Peripheral (gadget stack)" | 
 | 94 | 	select USB_GADGET_MUSB_HDRC | 
 | 95 | 	help | 
 | 96 | 	  Say Y here if your system supports the USB peripheral role. | 
 | 97 | 	  If it has a USB "B" (squarish), "Mini-B", or "Mini-AB" | 
 | 98 | 	  connector, it supports the peripheral role. | 
 | 99 | 	  (With a "Mini-AB" connector, you should enable USB OTG.) | 
 | 100 |  | 
 | 101 | config USB_MUSB_OTG | 
 | 102 | 	depends on USB && USB_GADGET && PM && EXPERIMENTAL | 
 | 103 | 	bool "Both host and peripheral:  USB OTG (On The Go) Device" | 
 | 104 | 	select USB_GADGET_MUSB_HDRC | 
 | 105 | 	select USB_OTG | 
 | 106 | 	help | 
 | 107 | 	   The most notable feature of USB OTG is support for a | 
 | 108 | 	   "Dual-Role" device, which can act as either a device | 
 | 109 | 	   or a host.  The initial role choice can be changed | 
 | 110 | 	   later, when two dual-role devices talk to each other. | 
 | 111 |  | 
 | 112 | 	   At this writing, the OTG support in this driver is incomplete, | 
 | 113 | 	   omitting the mandatory HNP or SRP protocols.  However, some | 
 | 114 | 	   of the cable based role switching works.  (That is, grounding | 
 | 115 | 	   the ID pin switches the controller to host mode, while leaving | 
 | 116 | 	   it floating leaves it in peripheral mode.) | 
 | 117 |  | 
 | 118 | 	   Select this if your system has a Mini-AB connector, or | 
 | 119 | 	   to simplify certain kinds of configuration. | 
 | 120 |  | 
 | 121 | 	   To implement your OTG Targeted Peripherals List (TPL), enable | 
 | 122 | 	   USB_OTG_WHITELIST and update "drivers/usb/core/otg_whitelist.h" | 
 | 123 | 	   to match your requirements. | 
 | 124 |  | 
 | 125 | endchoice | 
 | 126 |  | 
 | 127 | # enable peripheral support (including with OTG) | 
 | 128 | config USB_GADGET_MUSB_HDRC | 
 | 129 | 	bool | 
 | 130 | 	depends on USB_MUSB_HDRC && (USB_MUSB_PERIPHERAL || USB_MUSB_OTG) | 
 | 131 | #	default y | 
 | 132 | #	select USB_GADGET_DUALSPEED | 
 | 133 | #	select USB_GADGET_SELECTED | 
 | 134 |  | 
 | 135 | # enables host support (including with OTG) | 
 | 136 | config USB_MUSB_HDRC_HCD | 
 | 137 | 	bool | 
 | 138 | 	depends on USB_MUSB_HDRC && (USB_MUSB_HOST || USB_MUSB_OTG) | 
 | 139 | 	select USB_OTG if USB_GADGET_MUSB_HDRC | 
 | 140 | 	default y | 
 | 141 |  | 
 | 142 |  | 
 | 143 | config MUSB_PIO_ONLY | 
 | 144 | 	bool 'Disable DMA (always use PIO)' | 
 | 145 | 	depends on USB_MUSB_HDRC | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 146 | 	default USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 147 | 	help | 
 | 148 | 	  All data is copied between memory and FIFO by the CPU. | 
 | 149 | 	  DMA controllers are ignored. | 
 | 150 |  | 
 | 151 | 	  Do not select 'n' here unless DMA support for your SOC or board | 
 | 152 | 	  is unavailable (or unstable).  When DMA is enabled at compile time, | 
 | 153 | 	  you can still disable it at run time using the "use_dma=n" module | 
 | 154 | 	  parameter. | 
 | 155 |  | 
 | 156 | config USB_INVENTRA_DMA | 
 | 157 | 	bool | 
 | 158 | 	depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 159 | 	default USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 160 | 	help | 
 | 161 | 	  Enable DMA transfers using Mentor's engine. | 
 | 162 |  | 
 | 163 | config USB_TI_CPPI_DMA | 
 | 164 | 	bool | 
 | 165 | 	depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 166 | 	default USB_MUSB_DAVINCI | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 167 | 	help | 
 | 168 | 	  Enable DMA transfers when TI CPPI DMA is available. | 
 | 169 |  | 
 | 170 | config USB_TUSB_OMAP_DMA | 
 | 171 | 	bool | 
 | 172 | 	depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY | 
| Felipe Balbi | 7c92554 | 2010-12-01 14:23:48 +0200 | [diff] [blame] | 173 | 	depends on USB_MUSB_TUSB6010 | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 174 | 	depends on ARCH_OMAP | 
 | 175 | 	default y | 
 | 176 | 	help | 
 | 177 | 	  Enable DMA transfers on TUSB 6010 when OMAP DMA is available. | 
 | 178 |  | 
| Felipe Balbi | e8164f6 | 2008-08-10 21:22:35 +0300 | [diff] [blame] | 179 | config	USB_MUSB_DEBUG | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 180 | 	depends on USB_MUSB_HDRC | 
| Felipe Balbi | e8164f6 | 2008-08-10 21:22:35 +0300 | [diff] [blame] | 181 | 	bool "Enable debugging messages" | 
 | 182 | 	default n | 
| Felipe Balbi | 550a737 | 2008-07-24 12:27:36 +0300 | [diff] [blame] | 183 | 	help | 
| Felipe Balbi | e8164f6 | 2008-08-10 21:22:35 +0300 | [diff] [blame] | 184 | 	  This enables musb debugging. To set the logging level use the debug | 
 | 185 | 	  module parameter. Starting at level 3, per-transfer (urb, usb_request, | 
 | 186 | 	  packet, or dma transfer) tracing may kick in. |