# # 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 ARCH_ROCKCHIP 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 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_RMOBILE 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 . 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 select EHCI_HCD_INIT_AFTER_RESET if ARCH_MX7 select PHY if IMX8M select NOP_PHY if IMX8M 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 default n ---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 default n ---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