| # | |
| # USB Host Controller Drivers | |
| # | |
| comment "USB Host Controller Drivers" | |
| config USB_HOST | |
| bool | |
| select DM_USB | |
| help | |
| Enable access to USB (Universal Serial Bus) host devices so that | |
| SPL can load U-Boot from a connected USB peripheral, such as a USB | |
| flash stick. While USB takes a little longer to start up than most | |
| buses, it is very flexible since many different types of storage | |
| device can be attached. | |
| config SPL_USB_HOST | |
| bool "Support USB host drivers" | |
| depends on SPL | |
| help | |
| For detailed help see USB_HOST Kconfig symbol. This option enables | |
| the drivers in drivers/usb/host as part of an SPL build. | |
| config USB_XHCI_HCD | |
| bool "xHCI HCD (USB 3.0) support" | |
| depends on DM && OF_CONTROL | |
| select USB_HOST | |
| ---help--- | |
| The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0 | |
| "SuperSpeed" host controller hardware. | |
| if USB_XHCI_HCD | |
| config USB_XHCI_DWC3 | |
| bool "DesignWare USB3 DRD Core Support" | |
| help | |
| Say Y or if your system has a Dual Role SuperSpeed | |
| USB controller based on the DesignWare USB3 IP Core. | |
| config USB_XHCI_DWC3_OF_SIMPLE | |
| bool "DesignWare USB3 DRD Generic OF Simple Glue Layer" | |
| depends on DM_USB | |
| default y if DRA7XX | |
| help | |
| Support USB2/3 functionality in simple SoC integrations with | |
| USB controller based on the DesignWare USB3 IP Core. | |
| config USB_XHCI_EXYNOS | |
| bool "Support for Samsung Exynos5 family on-chip xHCI USB controller" | |
| depends on ARCH_EXYNOS5 | |
| default y | |
| help | |
| Enables support for he on-chip xHCI controller on Samsung Exynos5 | |
| SoCs. | |
| config USB_XHCI_MTK | |
| bool "Support for MediaTek on-chip xHCI USB controller" | |
| depends on ARCH_MEDIATEK || SOC_MT7621 | |
| help | |
| Enables support for the on-chip xHCI controller on MediaTek SoCs. | |
| config USB_XHCI_MVEBU | |
| bool "MVEBU USB 3.0 support" | |
| default y | |
| depends on ARCH_MVEBU | |
| select DM_REGULATOR | |
| help | |
| Choose this option to add support for USB 3.0 driver on mvebu | |
| SoCs, which includes Armada8K, Armada3700 and other Armada | |
| family SoCs. | |
| config USB_XHCI_OCTEON | |
| bool "Support for Marvell Octeon family on-chip xHCI USB controller" | |
| depends on ARCH_OCTEON | |
| default y | |
| help | |
| Enables support for the on-chip xHCI controller on Marvell Octeon | |
| family SoCs. This is a driver for the dwc3 to provide the glue logic | |
| to configure the controller. | |
| config USB_XHCI_OMAP | |
| bool "Support for TI OMAP family xHCI USB controller" | |
| depends on ARCH_OMAP2PLUS | |
| help | |
| Enables support for the on-chip xHCI controller found on some TI SoC | |
| families. Note that some families have multiple contollers while | |
| others only have something such as DesignWare-based controllers. | |
| Consult the SoC documentation to determine if this option applies | |
| to your hardware. | |
| config USB_XHCI_PCI | |
| bool "Support for PCI-based xHCI USB controller" | |
| depends on DM_USB && PCI | |
| default y if X86 | |
| help | |
| Enables support for the PCI-based xHCI controller. | |
| config USB_XHCI_RCAR | |
| bool "Renesas RCar USB 3.0 support" | |
| default y | |
| depends on ARCH_RENESAS | |
| help | |
| Choose this option to add support for USB 3.0 driver on Renesas | |
| RCar Gen3 SoCs. | |
| config USB_XHCI_STI | |
| bool "Support for STMicroelectronics STiH407 family on-chip xHCI USB controller" | |
| depends on ARCH_STI | |
| default y | |
| help | |
| Enables support for the on-chip xHCI controller on STMicroelectronics | |
| STiH407 family SoCs. This is a driver for the dwc3 to provide the glue logic | |
| to configure the controller. | |
| config USB_XHCI_DRA7XX_INDEX | |
| int "DRA7XX xHCI USB index" | |
| range 0 1 | |
| default 0 | |
| depends on DRA7XX | |
| help | |
| Select the DRA7XX xHCI USB index. | |
| Current supported values: 0, 1. | |
| config USB_XHCI_FSL | |
| bool "Support for NXP Layerscape on-chip xHCI USB controller" | |
| default y if ARCH_LS1021A || FSL_LSCH3 || FSL_LSCH2 | |
| depends on !SPL_NO_USB | |
| help | |
| Enables support for the on-chip xHCI controller on NXP Layerscape SoCs. | |
| config USB_XHCI_BRCM | |
| bool "Broadcom USB3 Host XHCI controller" | |
| depends on DM_USB | |
| help | |
| USB controller based on the Broadcom USB3 IP Core. | |
| Supports USB2/3 functionality. | |
| endif # USB_XHCI_HCD | |
| config EHCI_DESC_BIG_ENDIAN | |
| bool | |
| config EHCI_MMIO_BIG_ENDIAN | |
| bool | |
| config USB_EHCI_HCD | |
| bool "EHCI HCD (USB 2.0) support" | |
| default y if ARCH_MX5 || ARCH_MX6 | |
| depends on DM && OF_CONTROL | |
| select USB_HOST | |
| select EHCI_DESC_BIG_ENDIAN if SYS_BIG_ENDIAN | |
| select EHCI_MMIO_BIG_ENDIAN if SYS_BIG_ENDIAN | |
| ---help--- | |
| The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0 | |
| "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware. | |
| If your USB host controller supports USB 2.0, you will likely want to | |
| configure this Host Controller Driver. | |
| EHCI controllers are packaged with "companion" host controllers (OHCI | |
| or UHCI) to handle USB 1.1 devices connected to root hub ports. Ports | |
| will connect to EHCI if the device is high speed, otherwise they | |
| connect to a companion controller. If you configure EHCI, you should | |
| probably configure the OHCI (for NEC and some other vendors) USB Host | |
| Controller Driver or UHCI (for Via motherboards) Host Controller | |
| Driver too. | |
| You may want to read <file:Documentation/usb/ehci.txt>. | |
| if USB_EHCI_HCD | |
| config USB_EHCI_IS_TDI | |
| bool | |
| config USB_EHCI_ATMEL | |
| bool "Support for Atmel on-chip EHCI USB controller" | |
| depends on ARCH_AT91 | |
| default y | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on Atmel chips. | |
| config USB_EHCI_EXYNOS | |
| bool "Support for Samsung Exynos EHCI USB controller" | |
| depends on ARCH_EXYNOS | |
| default y | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on Samsung Exynos | |
| SoCs. | |
| config USB_EHCI_MARVELL | |
| bool "Support for Marvell on-chip EHCI USB controller" | |
| depends on ARCH_MVEBU || ARCH_KIRKWOOD || ARCH_ORION5X | |
| default y | |
| select USB_EHCI_IS_TDI if !ARM64 | |
| select USB_EHCI_IS_TDI if ALLEYCAT_5 | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on MVEBU SoCs. | |
| config USB_EHCI_MX5 | |
| bool "Support for i.MX5 on-chip EHCI USB controller" | |
| depends on ARCH_MX5 | |
| help | |
| Enables support for the on-chip EHCI controller on i.MX5 SoCs. | |
| config USB_EHCI_MX6 | |
| bool "Support for i.MX6/i.MX7ULP on-chip EHCI USB controller" | |
| depends on ARCH_MX6 || ARCH_MX7ULP || ARCH_IMXRT | |
| select EHCI_HCD_INIT_AFTER_RESET | |
| default y | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on i.MX6 SoCs. | |
| config USB_EHCI_MX7 | |
| bool "Support for i.MX7 on-chip EHCI USB controller" | |
| depends on ARCH_MX7 || IMX8M || IMX93 | |
| select EHCI_HCD_INIT_AFTER_RESET if ARCH_MX7 | |
| select PHY if IMX8M || IMX93 | |
| select NOP_PHY if IMX8M || IMX93 | |
| default y | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on i.MX7 SoCs. | |
| config USB_EHCI_MXS | |
| bool "Support for i.MX23/i.MX28 EHCI USB controller" | |
| depends on ARCH_MX23 || ARCH_MX28 | |
| default y | |
| select USB_EHCI_IS_TDI | |
| help | |
| Enables support for the on-chip EHCI controller on i.MX23 and | |
| i.MX28 SoCs. | |
| config USB_EHCI_NPCM | |
| bool "Support for Nuvoton NPCM on-chip EHCI USB controller" | |
| depends on ARCH_NPCM | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on | |
| Nuvoton NPCM chips. | |
| config USB_EHCI_OMAP | |
| bool "Support for OMAP3+ on-chip EHCI USB controller" | |
| depends on ARCH_OMAP2PLUS | |
| select PHY | |
| imply NOP_PHY | |
| default y | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on OMAP3 and later | |
| SoCs. | |
| config USB_EHCI_VF | |
| bool "Support for Vybrid on-chip EHCI USB controller" | |
| depends on ARCH_VF610 | |
| default y | |
| help | |
| Enables support for the on-chip EHCI controller on Vybrid SoCs. | |
| if USB_EHCI_MX6 || USB_EHCI_MX7 | |
| config MXC_USB_OTG_HACTIVE | |
| bool "USB Power pin high active" | |
| ---help--- | |
| Set the USB Power pin polarity to be high active (PWR_POL) | |
| endif | |
| config USB_EHCI_MSM | |
| bool "Support for Qualcomm on-chip EHCI USB controller" | |
| depends on DM_USB | |
| select USB_ULPI_VIEWPORT | |
| select MSM8916_USB_PHY | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on Qualcomm | |
| Snapdragon SoCs. | |
| config USB_EHCI_PCI | |
| bool "Support for PCI-based EHCI USB controller" | |
| default y if X86 | |
| help | |
| Enables support for the PCI-based EHCI controller. | |
| config USB_EHCI_TEGRA | |
| bool "Support for NVIDIA Tegra on-chip EHCI USB controller" | |
| depends on ARCH_TEGRA | |
| select USB_EHCI_IS_TDI | |
| ---help--- | |
| Enable support for Tegra on-chip EHCI USB controller | |
| config USB_EHCI_ZYNQ | |
| bool "Support for Xilinx Zynq on-chip EHCI USB controller" | |
| default y if ARCH_ZYNQ | |
| select USB_EHCI_IS_TDI | |
| ---help--- | |
| Enable support for Zynq on-chip EHCI USB controller | |
| config USB_EHCI_GENERIC | |
| bool "Support for generic EHCI USB controller" | |
| depends on DM_USB | |
| default ARCH_SUNXI | |
| ---help--- | |
| Enables support for generic EHCI controller. | |
| config EHCI_HCD_INIT_AFTER_RESET | |
| bool | |
| config USB_EHCI_FSL | |
| bool "Support for FSL on-chip EHCI USB controller" | |
| select EHCI_HCD_INIT_AFTER_RESET | |
| select SYS_FSL_USB_INTERNAL_UTMI_PHY if MPC85xx && \ | |
| !(ARCH_B4860 || ARCH_B4420 || ARCH_P4080 || ARCH_P1020 || ARCH_P2020) | |
| ---help--- | |
| Enables support for the on-chip EHCI controller on FSL chips. | |
| config SYS_FSL_USB_INTERNAL_UTMI_PHY | |
| bool | |
| depends on USB_EHCI_FSL | |
| config USB_EHCI_TXFIFO_THRESH | |
| hex | |
| depends on USB_EHCI_TEGRA | |
| default 0x10 | |
| help | |
| This parameter affects a TXFILLTUNING field that controls how much | |
| data is sent to the latency fifo before it is sent to the wire. | |
| Without this parameter, the default (2) causes occasional Data Buffer | |
| Errors in OUT packets depending on the buffer address and size. | |
| endif # USB_EHCI_HCD | |
| config USB_OHCI_NEW | |
| bool | |
| config SYS_USB_OHCI_CPU_INIT | |
| bool | |
| config USB_OHCI_HCD | |
| bool "OHCI HCD (USB 1.1) support" | |
| depends on DM && OF_CONTROL | |
| select USB_HOST | |
| select USB_OHCI_NEW | |
| ---help--- | |
| The Open Host Controller Interface (OHCI) is a standard for accessing | |
| USB 1.1 host controller hardware. It does more in hardware than Intel's | |
| UHCI specification. If your USB host controller follows the OHCI spec, | |
| say Y. On most non-x86 systems, and on x86 hardware that's not using a | |
| USB controller from Intel or VIA, this is appropriate. If your host | |
| controller doesn't use PCI, this is probably appropriate. For a PCI | |
| based system where you're not sure, the "lspci -v" entry will list the | |
| right "prog-if" for your USB controller(s): EHCI, OHCI, or UHCI. | |
| if USB_OHCI_HCD | |
| config USB_OHCI_PCI | |
| bool "Support for PCI-based OHCI USB controller" | |
| depends on PCI | |
| help | |
| Enables support for the PCI-based OHCI controller. | |
| config USB_OHCI_GENERIC | |
| bool "Support for generic OHCI USB controller" | |
| default ARCH_SUNXI | |
| ---help--- | |
| Enables support for generic OHCI controller. | |
| config USB_OHCI_DA8XX | |
| bool "Support for da850 OHCI USB controller" | |
| help | |
| Enable support for the da850 USB controller. | |
| config USB_OHCI_NPCM | |
| bool "Support for Nuvoton NPCM on-chip OHCI USB controller" | |
| depends on ARCH_NPCM | |
| ---help--- | |
| Enables support for the on-chip OHCI controller on | |
| Nuvoton NPCM chips. | |
| endif # USB_OHCI_HCD | |
| config SYS_USB_OHCI_SLOT_NAME | |
| string "Display name for the OHCI controller" | |
| depends on USB_OHCI_NEW && !DM_USB | |
| config SYS_OHCI_SWAP_REG_ACCESS | |
| bool "Perform byte swapping on OHCI controller register accesses" | |
| depends on USB_OHCI_NEW | |
| config USB_UHCI_HCD | |
| bool "UHCI HCD (most Intel and VIA) support" | |
| select USB_HOST | |
| ---help--- | |
| The Universal Host Controller Interface is a standard by Intel for | |
| accessing the USB hardware in the PC (which is also called the USB | |
| host controller). If your USB host controller conforms to this | |
| standard, you may want to say Y, but see below. All recent boards | |
| with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX, | |
| i810, i820) conform to this standard. Also all VIA PCI chipsets | |
| (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro | |
| 133) and LEON/GRLIB SoCs with the GRUSBHC controller. | |
| If unsure, say Y. | |
| if USB_UHCI_HCD | |
| endif # USB_UHCI_HCD | |
| config USB_DWC2 | |
| bool "DesignWare USB2 Core support" | |
| depends on DM && OF_CONTROL | |
| select USB_HOST | |
| ---help--- | |
| The DesignWare USB 2.0 controller is compliant with the | |
| USB-Implementers Forum (USB-IF) USB 2.0 specifications. | |
| Hi-Speed (480 Mbps), Full-Speed (12 Mbps), and Low-Speed (1.5 Mbps) | |
| operation is compliant to the controller Supplement. If you want to | |
| enable this controller in host mode, say Y. | |
| if USB_DWC2 | |
| config USB_DWC2_BUFFER_SIZE | |
| int "Data buffer size in kB" | |
| default 64 | |
| ---help--- | |
| By default 64 kB buffer is used but if amount of RAM avaialble on | |
| the target is not enough to accommodate allocation of buffer of | |
| that size it is possible to shrink it. Smaller sizes should be fine | |
| because larger transactions could be split in smaller ones. | |
| endif # USB_DWC2 | |
| config USB_R8A66597_HCD | |
| bool "Renesas R8A66597 USB Core support" | |
| depends on DM && OF_CONTROL | |
| select USB_HOST | |
| ---help--- | |
| This enables support for the on-chip Renesas R8A66597 USB 2.0 | |
| controller, present in various RZ and SH SoCs. | |
| config USB_ATMEL | |
| bool "AT91 OHCI USB support" | |
| depends on ARCH_AT91 | |
| select SYS_USB_OHCI_CPU_INIT | |
| select USB_OHCI_NEW | |
| choice | |
| prompt "Clock for OHCI" | |
| depends on USB_ATMEL | |
| config USB_ATMEL_CLK_SEL_PLLB | |
| bool "PLLB" | |
| config USB_ATMEL_CLK_SEL_UPLL | |
| bool "UPLL" | |
| endchoice | |
| config USB_OHCI_LPC32XX | |
| bool "LPC32xx USB OHCI support" | |
| depends on ARCH_LPC32XX | |
| select SYS_USB_OHCI_CPU_INIT | |
| select USB_OHCI_NEW | |
| config USB_MAX_CONTROLLER_COUNT | |
| int "Maximum number of USB host controllers" | |
| depends on USB_EHCI_FSL || USB_XHCI_FSL || \ | |
| (SPL_USB_HOST && !DM_SPL_USB) || (USB_HOST && !DM_USB) | |
| default 1 |