1# 2# USB Host Controller Drivers 3# 4comment "USB Host Controller Drivers" 5 6config USB_HOST 7 bool 8 select DM_USB 9 10config USB_XHCI_HCD 11 bool "xHCI HCD (USB 3.0) support" 12 depends on DM && OF_CONTROL 13 select USB_HOST 14 ---help--- 15 The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0 16 "SuperSpeed" host controller hardware. 17 18if USB_XHCI_HCD 19 20config USB_XHCI_DWC3 21 bool "DesignWare USB3 DRD Core Support" 22 help 23 Say Y or if your system has a Dual Role SuperSpeed 24 USB controller based on the DesignWare USB3 IP Core. 25 26config USB_XHCI_DWC3_OF_SIMPLE 27 bool "DesignWare USB3 DRD Generic OF Simple Glue Layer" 28 depends on DM_USB 29 default y if ARCH_ROCKCHIP 30 default y if DRA7XX 31 help 32 Support USB2/3 functionality in simple SoC integrations with 33 USB controller based on the DesignWare USB3 IP Core. 34 35config USB_XHCI_MTK 36 bool "Support for MediaTek on-chip xHCI USB controller" 37 depends on ARCH_MEDIATEK 38 help 39 Enables support for the on-chip xHCI controller on MediaTek SoCs. 40 41config USB_XHCI_MVEBU 42 bool "MVEBU USB 3.0 support" 43 default y 44 depends on ARCH_MVEBU 45 select DM_REGULATOR 46 help 47 Choose this option to add support for USB 3.0 driver on mvebu 48 SoCs, which includes Armada8K, Armada3700 and other Armada 49 family SoCs. 50 51config USB_XHCI_OCTEON 52 bool "Support for Marvell Octeon family on-chip xHCI USB controller" 53 depends on ARCH_OCTEON 54 default y 55 help 56 Enables support for the on-chip xHCI controller on Marvell Octeon 57 family SoCs. This is a driver for the dwc3 to provide the glue logic 58 to configure the controller. 59 60config USB_XHCI_OMAP 61 bool "Support for TI OMAP family xHCI USB controller" 62 depends on ARCH_OMAP2PLUS 63 help 64 Enables support for the on-chip xHCI controller found on some TI SoC 65 families. Note that some families have multiple contollers while 66 others only have something such as DesignWare-based controllers. 67 Consult the SoC documentation to determine if this option applies 68 to your hardware. 69 70config USB_XHCI_PCI 71 bool "Support for PCI-based xHCI USB controller" 72 depends on DM_USB 73 default y if X86 74 help 75 Enables support for the PCI-based xHCI controller. 76 77config USB_XHCI_RCAR 78 bool "Renesas RCar USB 3.0 support" 79 default y 80 depends on ARCH_RMOBILE 81 help 82 Choose this option to add support for USB 3.0 driver on Renesas 83 RCar Gen3 SoCs. 84 85config USB_XHCI_STI 86 bool "Support for STMicroelectronics STiH407 family on-chip xHCI USB controller" 87 depends on ARCH_STI 88 default y 89 help 90 Enables support for the on-chip xHCI controller on STMicroelectronics 91 STiH407 family SoCs. This is a driver for the dwc3 to provide the glue logic 92 to configure the controller. 93 94config USB_XHCI_DRA7XX_INDEX 95 int "DRA7XX xHCI USB index" 96 range 0 1 97 default 0 98 depends on DRA7XX 99 help 100 Select the DRA7XX xHCI USB index. 101 Current supported values: 0, 1. 102 103config USB_XHCI_FSL 104 bool "Support for NXP Layerscape on-chip xHCI USB controller" 105 default y if ARCH_LS1021A || FSL_LSCH3 || FSL_LSCH2 106 depends on !SPL_NO_USB 107 help 108 Enables support for the on-chip xHCI controller on NXP Layerscape SoCs. 109 110config USB_XHCI_BRCM 111 bool "Broadcom USB3 Host XHCI controller" 112 depends on DM_USB 113 help 114 USB controller based on the Broadcom USB3 IP Core. 115 Supports USB2/3 functionality. 116 117endif # USB_XHCI_HCD 118 119config USB_EHCI_HCD 120 bool "EHCI HCD (USB 2.0) support" 121 default y if ARCH_MX5 || ARCH_MX6 122 depends on DM && OF_CONTROL 123 select USB_HOST 124 ---help--- 125 The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0 126 "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware. 127 If your USB host controller supports USB 2.0, you will likely want to 128 configure this Host Controller Driver. 129 130 EHCI controllers are packaged with "companion" host controllers (OHCI 131 or UHCI) to handle USB 1.1 devices connected to root hub ports. Ports 132 will connect to EHCI if the device is high speed, otherwise they 133 connect to a companion controller. If you configure EHCI, you should 134 probably configure the OHCI (for NEC and some other vendors) USB Host 135 Controller Driver or UHCI (for Via motherboards) Host Controller 136 Driver too. 137 138 You may want to read <file:Documentation/usb/ehci.txt>. 139 140if USB_EHCI_HCD 141 142config USB_EHCI_IS_TDI 143 bool 144 145config USB_EHCI_ATMEL 146 bool "Support for Atmel on-chip EHCI USB controller" 147 depends on ARCH_AT91 148 default y 149 ---help--- 150 Enables support for the on-chip EHCI controller on Atmel chips. 151 152config USB_EHCI_MARVELL 153 bool "Support for Marvell on-chip EHCI USB controller" 154 depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X 155 default y 156 select USB_EHCI_IS_TDI if !ARM64 157 ---help--- 158 Enables support for the on-chip EHCI controller on MVEBU SoCs. 159 160config USB_EHCI_MX5 161 bool "Support for i.MX5 on-chip EHCI USB controller" 162 depends on ARCH_MX5 163 help 164 Enables support for the on-chip EHCI controller on i.MX5 SoCs. 165 166config USB_EHCI_MX6 167 bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller" 168 depends on ARCH_MX6 || ARCH_MX7ULP || ARCH_IMXRT 169 default y 170 ---help--- 171 Enables support for the on-chip EHCI controller on i.MX6 SoCs. 172 173config USB_EHCI_MX7 174 bool "Support for i.MX7 on-chip EHCI USB controller" 175 depends on ARCH_MX7 || IMX8M 176 select PHY if IMX8M 177 select NOP_PHY if IMX8M 178 default y 179 ---help--- 180 Enables support for the on-chip EHCI controller on i.MX7 SoCs. 181 182config USB_EHCI_MXS 183 bool "Support for i.MX23 EHCI USB controller" 184 depends on ARCH_MX23 185 default y 186 select USB_EHCI_IS_TDI 187 help 188 Enables support for the on-chip EHCI controller on i.MX23 SoCs. 189 190config USB_EHCI_OMAP 191 bool "Support for OMAP3+ on-chip EHCI USB controller" 192 depends on ARCH_OMAP2PLUS 193 default y 194 ---help--- 195 Enables support for the on-chip EHCI controller on OMAP3 and later 196 SoCs. 197 198if USB_EHCI_OMAP 199 200config HAS_OMAP_EHCI_PHY1_RESET_GPIO 201 bool "PHY #1 requires a GPIO hold to it in RESET while PHY settles" 202 help 203 Enable this to be able to configure the GPIO number used to hold the 204 PHY in RESET for enough time until the PHY is settled and ready. 205 206config OMAP_EHCI_PHY1_RESET_GPIO 207 int "GPIO number to hold PHY #1 in RESET" 208 depends on HAS_OMAP_EHCI_PHY1_RESET_GPIO 209 210config HAS_OMAP_EHCI_PHY2_RESET_GPIO 211 bool "PHY #2 requires a GPIO hold to it in RESET while PHY settles" 212 help 213 Enable this to be able to configure the GPIO number used to hold the 214 PHY in RESET for enough time until the PHY is settled and ready. 215 216config OMAP_EHCI_PHY2_RESET_GPIO 217 int "GPIO number to hold PHY #2 in RESET" 218 depends on HAS_OMAP_EHCI_PHY2_RESET_GPIO 219 220config HAS_OMAP_EHCI_PHY3_RESET_GPIO 221 bool "PHY #3 requires a GPIO hold to it in RESET while PHY settles" 222 help 223 Enable this to be able to configure the GPIO number used to hold the 224 PHY in RESET for enough time until the PHY is settled and ready. 225 226config OMAP_EHCI_PHY3_RESET_GPIO 227 int "GPIO number to hold PHY #3 in RESET" 228 depends on HAS_OMAP_EHCI_PHY3_RESET_GPIO 229 230endif 231 232config USB_EHCI_VF 233 bool "Support for Vybrid on-chip EHCI USB controller" 234 depends on ARCH_VF610 235 default y 236 help 237 Enables support for the on-chip EHCI controller on Vybrid SoCs. 238 239if USB_EHCI_MX6 || USB_EHCI_MX7 240 241config MXC_USB_OTG_HACTIVE 242 bool "USB Power pin high active" 243 ---help--- 244 Set the USB Power pin polarity to be high active (PWR_POL) 245 246endif 247 248config USB_EHCI_MSM 249 bool "Support for Qualcomm on-chip EHCI USB controller" 250 depends on DM_USB 251 select USB_ULPI_VIEWPORT 252 select MSM8916_USB_PHY 253 ---help--- 254 Enables support for the on-chip EHCI controller on Qualcomm 255 Snapdragon SoCs. 256 257config USB_EHCI_PCI 258 bool "Support for PCI-based EHCI USB controller" 259 default y if X86 260 help 261 Enables support for the PCI-based EHCI controller. 262 263config USB_EHCI_TEGRA 264 bool "Support for NVIDIA Tegra on-chip EHCI USB controller" 265 depends on ARCH_TEGRA 266 select USB_EHCI_IS_TDI 267 ---help--- 268 Enable support for Tegra on-chip EHCI USB controller 269 270config USB_EHCI_ZYNQ 271 bool "Support for Xilinx Zynq on-chip EHCI USB controller" 272 default y if ARCH_ZYNQ 273 select USB_EHCI_IS_TDI 274 ---help--- 275 Enable support for Zynq on-chip EHCI USB controller 276 277config USB_EHCI_GENERIC 278 bool "Support for generic EHCI USB controller" 279 depends on DM_USB 280 default ARCH_SUNXI 281 ---help--- 282 Enables support for generic EHCI controller. 283 284config USB_EHCI_FSL 285 bool "Support for FSL on-chip EHCI USB controller" 286 select CONFIG_EHCI_HCD_INIT_AFTER_RESET 287 ---help--- 288 Enables support for the on-chip EHCI controller on FSL chips. 289endif # USB_EHCI_HCD 290 291config USB_OHCI_HCD 292 bool "OHCI HCD (USB 1.1) support" 293 depends on DM && OF_CONTROL 294 select USB_HOST 295 ---help--- 296 The Open Host Controller Interface (OHCI) is a standard for accessing 297 USB 1.1 host controller hardware. It does more in hardware than Intel's 298 UHCI specification. If your USB host controller follows the OHCI spec, 299 say Y. On most non-x86 systems, and on x86 hardware that's not using a 300 USB controller from Intel or VIA, this is appropriate. If your host 301 controller doesn't use PCI, this is probably appropriate. For a PCI 302 based system where you're not sure, the "lspci -v" entry will list the 303 right "prog-if" for your USB controller(s): EHCI, OHCI, or UHCI. 304 305if USB_OHCI_HCD 306 307config USB_OHCI_PCI 308 bool "Support for PCI-based OHCI USB controller" 309 depends on PCI 310 help 311 Enables support for the PCI-based OHCI controller. 312 313config USB_OHCI_GENERIC 314 bool "Support for generic OHCI USB controller" 315 default ARCH_SUNXI 316 ---help--- 317 Enables support for generic OHCI controller. 318 319config USB_OHCI_DA8XX 320 bool "Support for da850 OHCI USB controller" 321 help 322 Enable support for the da850 USB controller. 323 324endif # USB_OHCI_HCD 325 326config USB_UHCI_HCD 327 bool "UHCI HCD (most Intel and VIA) support" 328 select USB_HOST 329 ---help--- 330 The Universal Host Controller Interface is a standard by Intel for 331 accessing the USB hardware in the PC (which is also called the USB 332 host controller). If your USB host controller conforms to this 333 standard, you may want to say Y, but see below. All recent boards 334 with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX, 335 i810, i820) conform to this standard. Also all VIA PCI chipsets 336 (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro 337 133) and LEON/GRLIB SoCs with the GRUSBHC controller. 338 If unsure, say Y. 339 340if USB_UHCI_HCD 341 342endif # USB_UHCI_HCD 343 344config USB_DWC2 345 bool "DesignWare USB2 Core support" 346 depends on DM && OF_CONTROL 347 select USB_HOST 348 ---help--- 349 The DesignWare USB 2.0 controller is compliant with the 350 USB-Implementers Forum (USB-IF) USB 2.0 specifications. 351 Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps) 352 operation is compliant to the controller Supplement. If you want to 353 enable this controller in host mode, say Y. 354 355if USB_DWC2 356config USB_DWC2_BUFFER_SIZE 357 int "Data buffer size in kB" 358 default 64 359 ---help--- 360 By default 64 kB buffer is used but if amount of RAM avaialble on 361 the target is not enough to accommodate allocation of buffer of 362 that size it is possible to shrink it. Smaller sizes should be fine 363 because larger transactions could be split in smaller ones. 364 365endif # USB_DWC2 366 367config USB_R8A66597_HCD 368 bool "Renesas R8A66597 USB Core support" 369 depends on DM && OF_CONTROL 370 select USB_HOST 371 ---help--- 372 This enables support for the on-chip Renesas R8A66597 USB 2.0 373 controller, present in various RZ and SH SoCs. 374