From: Tom Rini Date: Fri, 9 Jul 2021 14:11:56 +0000 (-0400) Subject: usb: Enforce DM_USB migration for USB_HOST devices. X-Git-Url: http://git.dujemihanovic.xyz/img/static/git-favicon.png?a=commitdiff_plain;h=be5c0608b86852891fd61ec358b0238499bb86ca;p=u-boot.git usb: Enforce DM_USB migration for USB_HOST devices. As the deadline for migration to DM_USB, when using a USB host controller has now gone two years past the deadline, enforce migration. This is done by: - Ensuring that all host controller options (other than the very legacy old MUSB ones) now select USB_HOST. USB_HOST now enforces DM_USB and OF_CONTROL. - Remove other parts of Kconfig logic that had platforms pick DM_USB. - To keep Kconfig happy, have some select statements test for USB_HOST as well. - Re-order some Kconfig entries and menus so that we can cleanly pick host or gadget roles. For the various HCD options that have platform glue options, group them together and update dependencies in some cases. - As SPL_DM_USB is not required, on platforms that had not yet enabled it, disable it. Cc: Marek Vasut Cc: Icenowy Zheng Cc: Samuel Holland Cc: FUKAUMI Naoki Cc: Andre Przywara Cc: Jagan Teki Signed-off-by: Tom Rini --- diff --git a/Makefile b/Makefile index bc404c8f98..79a5c8ccbf 100644 --- a/Makefile +++ b/Makefile @@ -1125,8 +1125,6 @@ ifneq ($(CONFIG_DM),y) @echo >&2 "See doc/driver-model/migration.rst for more info." @echo >&2 "====================================================" endif - $(call deprecated,CONFIG_DM_USB CONFIG_OF_CONTROL CONFIG_BLK,\ - USB,v2019.07,$(CONFIG_USB)) $(call deprecated,CONFIG_DM_PCI,PCI,v2019.07,$(CONFIG_PCI)) $(call deprecated,CONFIG_DM_VIDEO,video,v2019.07,\ $(CONFIG_LCD)$(CONFIG_VIDEO)) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 7f493a8e8f..9de97cc101 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -984,7 +984,7 @@ config ARCH_SUNXI select BINMAN select CMD_GPIO select CMD_MMC if MMC - select CMD_USB if DISTRO_DEFAULTS + select CMD_USB if DISTRO_DEFAULTS && USB_HOST select CLK select DM select DM_ETH @@ -993,7 +993,6 @@ config ARCH_SUNXI select DM_MMC if MMC select DM_SCSI if SCSI select DM_SERIAL - select DM_USB if DISTRO_DEFAULTS select GPIO_EXTRA_HEADER select OF_BOARD_SETUP select OF_CONTROL @@ -1006,8 +1005,8 @@ config ARCH_SUNXI select SYS_NS16550 select SYS_THUMB_BUILD if !ARM64 select USB if DISTRO_DEFAULTS - select USB_KEYBOARD if DISTRO_DEFAULTS - select USB_STORAGE if DISTRO_DEFAULTS + select USB_KEYBOARD if DISTRO_DEFAULTS && USB_HOST + select USB_STORAGE if DISTRO_DEFAULTS && USB_HOST select SPL_USE_TINY_PRINTF select USE_PREBOOT select SYS_RELOC_GD_ENV_ADDR @@ -1035,7 +1034,6 @@ config ARCH_U8500 select DM_GPIO select DM_MMC if MMC select DM_SERIAL - select DM_USB if USB select OF_CONTROL select SYSRESET select TIMER @@ -1078,7 +1076,6 @@ config ARCH_ZYNQ select DM_SERIAL select DM_SPI select DM_SPI_FLASH - select DM_USB if USB select GPIO_EXTRA_HEADER select OF_CONTROL select SPI @@ -1122,7 +1119,6 @@ config ARCH_ZYNQMP select DM_SERIAL select DM_SPI if SPI select DM_SPI_FLASH if DM_SPI - select DM_USB if USB select FIRMWARE select GPIO_EXTRA_HEADER select OF_CONTROL @@ -1177,7 +1173,6 @@ config TARGET_VEXPRESS64_JUNO select DM_ETH select BLK select USB - select DM_USB config TARGET_TOTAL_COMPUTE bool "Support Total Compute Platform" @@ -1343,7 +1338,6 @@ config TARGET_POPLAR select ARM64 select DM select DM_SERIAL - select DM_USB select GPIO_EXTRA_HEADER select OF_CONTROL select PL01X_SERIAL @@ -1681,7 +1675,6 @@ config TARGET_SL28 select DM_SCSI select DM_SERIAL select DM_SPI - select DM_USB select GPIO_EXTRA_HEADER select SPL_DM if SPL select SPL_DM_SPI if SPL @@ -1708,7 +1701,6 @@ config ARCH_UNIPHIER select DM_MTD select DM_RESET select DM_SERIAL - select DM_USB select OF_BOARD_SETUP select OF_CONTROL select OF_LIBFDT @@ -1809,7 +1801,6 @@ config ARCH_ROCKCHIP select DM_SERIAL select DM_SPI select DM_SPI_FLASH - select DM_USB if USB select ENABLE_ARM_SOC_BOOT0_HOOK select OF_CONTROL select SPI diff --git a/arch/arm/mach-imx/mx5/Kconfig b/arch/arm/mach-imx/mx5/Kconfig index 580b45818f..494e2136dc 100644 --- a/arch/arm/mach-imx/mx5/Kconfig +++ b/arch/arm/mach-imx/mx5/Kconfig @@ -29,7 +29,6 @@ config TARGET_KP_IMX53 select DM_SERIAL select DM_MMC select BLK - select DM_USB select DM_REGULATOR select MX53 imply CMD_DM diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig index 23cab3932b..a03eca8165 100644 --- a/arch/arm/mach-imx/mx6/Kconfig +++ b/arch/arm/mach-imx/mx6/Kconfig @@ -239,7 +239,6 @@ config TARGET_KOSAGI_NOVENA select DM_MMC select DM_PCI select DM_SCSI - select DM_USB select DM_VIDEO select OF_CONTROL select SUPPORT_SPL @@ -556,7 +555,6 @@ config TARGET_KP_IMX6Q_TPC select DM_SERIAL select DM_I2C select DM_GPIO - select DM_USB select SUPPORT_SPL select SPL_SEPARATE_BSS if SPL imply CMD_DM diff --git a/arch/arm/mach-omap2/am33xx/Kconfig b/arch/arm/mach-omap2/am33xx/Kconfig index 11e54cd293..53abc92a5f 100644 --- a/arch/arm/mach-omap2/am33xx/Kconfig +++ b/arch/arm/mach-omap2/am33xx/Kconfig @@ -94,7 +94,6 @@ config TARGET_AM335X_GUARDIAN select DM select DM_SERIAL select DM_GPIO - select DM_USB config TARGET_AM335X_SL50 bool "Support am335x_sl50" diff --git a/board/tqc/tqma6/Kconfig b/board/tqc/tqma6/Kconfig index 0cf6d83038..a2a5905290 100644 --- a/board/tqc/tqma6/Kconfig +++ b/board/tqc/tqma6/Kconfig @@ -65,7 +65,6 @@ config MBA6 bool "TQMa6 on MBa6 Starterkit" select DM_ETH select USB - select DM_USB select CMD_USB select USB_STORAGE select USB_HOST_ETHER diff --git a/configs/devkit3250_defconfig b/configs/devkit3250_defconfig index c0354bce1a..2034cd11d5 100644 --- a/configs/devkit3250_defconfig +++ b/configs/devkit3250_defconfig @@ -57,5 +57,6 @@ CONFIG_CONS_INDEX=5 CONFIG_SYS_NS16550=y CONFIG_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y diff --git a/configs/draco_defconfig b/configs/draco_defconfig index 5ee0449fc7..5d9a6aa8a3 100644 --- a/configs/draco_defconfig +++ b/configs/draco_defconfig @@ -90,6 +90,7 @@ CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_OMAP3_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_MUSB_HOST=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_DSPS=y diff --git a/configs/etamin_defconfig b/configs/etamin_defconfig index ee4e6cccac..36d96e5d95 100644 --- a/configs/etamin_defconfig +++ b/configs/etamin_defconfig @@ -91,6 +91,7 @@ CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_OMAP3_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_MUSB_HOST=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_DSPS=y diff --git a/configs/imx6dl_mamoj_defconfig b/configs/imx6dl_mamoj_defconfig index a163f42d57..48f0c0356d 100644 --- a/configs/imx6dl_mamoj_defconfig +++ b/configs/imx6dl_mamoj_defconfig @@ -52,6 +52,7 @@ CONFIG_PINCTRL_IMX6=y CONFIG_MXC_UART=y CONFIG_IMX_THERMAL=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_GADGET=y CONFIG_USB_GADGET_MANUFACTURER="FSL" CONFIG_USB_GADGET_VENDOR_NUM=0x0525 diff --git a/configs/k2e_evm_defconfig b/configs/k2e_evm_defconfig index 2798d56489..44cba295f4 100644 --- a/configs/k2e_evm_defconfig +++ b/configs/k2e_evm_defconfig @@ -76,6 +76,7 @@ CONFIG_DM_SPI=y CONFIG_DAVINCI_SPI=y CONFIG_USB=y CONFIG_DM_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_DWC3=y diff --git a/configs/k2hk_evm_defconfig b/configs/k2hk_evm_defconfig index 6745da1315..2392aec37c 100644 --- a/configs/k2hk_evm_defconfig +++ b/configs/k2hk_evm_defconfig @@ -76,6 +76,7 @@ CONFIG_DM_SPI=y CONFIG_DAVINCI_SPI=y CONFIG_USB=y CONFIG_DM_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_DWC3=y diff --git a/configs/k2l_evm_defconfig b/configs/k2l_evm_defconfig index f23bdbf917..021129be24 100644 --- a/configs/k2l_evm_defconfig +++ b/configs/k2l_evm_defconfig @@ -76,6 +76,7 @@ CONFIG_DM_SPI=y CONFIG_DAVINCI_SPI=y CONFIG_USB=y CONFIG_DM_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_XHCI_HCD=y CONFIG_USB_XHCI_DWC3=y CONFIG_USB_DWC3=y diff --git a/configs/pxm2_defconfig b/configs/pxm2_defconfig index 7de4cdb52c..44e9dc795e 100644 --- a/configs/pxm2_defconfig +++ b/configs/pxm2_defconfig @@ -90,6 +90,7 @@ CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_OMAP3_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_MUSB_HOST=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_DSPS=y diff --git a/configs/rastaban_defconfig b/configs/rastaban_defconfig index 5448386082..5401892203 100644 --- a/configs/rastaban_defconfig +++ b/configs/rastaban_defconfig @@ -90,6 +90,7 @@ CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_OMAP3_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_MUSB_HOST=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_DSPS=y diff --git a/configs/rut_defconfig b/configs/rut_defconfig index fa5250e037..91da734338 100644 --- a/configs/rut_defconfig +++ b/configs/rut_defconfig @@ -90,6 +90,7 @@ CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_OMAP3_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_MUSB_HOST=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_DSPS=y diff --git a/configs/sniper_defconfig b/configs/sniper_defconfig index b64f7bb620..c52e7cbd88 100644 --- a/configs/sniper_defconfig +++ b/configs/sniper_defconfig @@ -31,7 +31,6 @@ CONFIG_SYS_OMAP24_I2C_SPEED=400000 CONFIG_TWL4030_INPUT=y CONFIG_MMC_OMAP_HS=y CONFIG_CONS_INDEX=3 -CONFIG_USB=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_OMAP2PLUS=y CONFIG_TWL4030_USB=y diff --git a/configs/socrates_defconfig b/configs/socrates_defconfig index cdf8630da1..1631b4f162 100644 --- a/configs/socrates_defconfig +++ b/configs/socrates_defconfig @@ -73,5 +73,6 @@ CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_DM_USB=y # CONFIG_USB_EHCI_HCD is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_PCI=y CONFIG_USB_STORAGE=y diff --git a/configs/thuban_defconfig b/configs/thuban_defconfig index 67e1e6826f..c9a99ca6e2 100644 --- a/configs/thuban_defconfig +++ b/configs/thuban_defconfig @@ -90,6 +90,7 @@ CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_OMAP3_SPI=y CONFIG_USB=y +# CONFIG_SPL_DM_USB is not set CONFIG_USB_MUSB_HOST=y CONFIG_USB_MUSB_GADGET=y CONFIG_USB_MUSB_DSPS=y diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index 1e6dad8692..4023332dd9 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig @@ -1,7 +1,7 @@ config BLK bool "Support block devices" depends on DM - default y if DM_MMC + default y if DM_MMC || DM_USB help Enable support for block devices, such as SCSI, MMC and USB flash sticks. These provide a block-level interface which permits diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig index f6975730bf..ab1d061bd0 100644 --- a/drivers/usb/Kconfig +++ b/drivers/usb/Kconfig @@ -34,8 +34,8 @@ menuconfig USB if USB config DM_USB - bool "Enable driver model for USB" - depends on USB && DM + bool + depends on DM && OF_CONTROL help Enable driver model for USB. The USB interface is then implemented by the USB uclass. Multiple USB controllers of different types @@ -48,7 +48,7 @@ config DM_USB automatically probed when found on the bus. config SPL_DM_USB - bool "Enable driver model for USB in SPL" + bool "Enable driver model for USB host most in SPL" depends on SPL_DM && DM_USB default y @@ -84,6 +84,8 @@ source "drivers/usb/phy/Kconfig" source "drivers/usb/ulpi/Kconfig" +if USB_HOST + comment "USB peripherals" config USB_STORAGE @@ -129,8 +131,10 @@ endchoice endif -source "drivers/usb/gadget/Kconfig" - source "drivers/usb/eth/Kconfig" endif + +source "drivers/usb/gadget/Kconfig" + +endif diff --git a/drivers/usb/cdns3/Kconfig b/drivers/usb/cdns3/Kconfig index 4cf59c70d4..05785fc4fe 100644 --- a/drivers/usb/cdns3/Kconfig +++ b/drivers/usb/cdns3/Kconfig @@ -1,6 +1,6 @@ config USB_CDNS3 tristate "Cadence USB3 Dual-Role Controller" - depends on USB_HOST || USB_GADGET + depends on USB_XHCI_HCD || USB_GADGET help Say Y here if your system has a Cadence USB3 dual-role controller. It supports: Host-only, and Peripheral-only. diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig index 802ee508d9..93707e05fb 100644 --- a/drivers/usb/dwc3/Kconfig +++ b/drivers/usb/dwc3/Kconfig @@ -1,6 +1,6 @@ config USB_DWC3 bool "DesignWare USB3 DRD Core Support" - depends on USB_HOST || USB_GADGET + depends on USB_XHCI_HCD || USB_GADGET help Say Y here if your system has a Dual Role SuperSpeed USB controller based on the DesignWare USB3 IP Core. diff --git a/drivers/usb/emul/Kconfig b/drivers/usb/emul/Kconfig index ae1ab23a3d..279f6c6d74 100644 --- a/drivers/usb/emul/Kconfig +++ b/drivers/usb/emul/Kconfig @@ -1,6 +1,8 @@ config USB_EMUL bool "Support for USB device emulation" - depends on DM_USB && SANDBOX + depends on SANDBOX + select DM_USB + select USB_HOST help Since sandbox does not have access to a real USB bus, it is possible to use device emulators instead. This allows testing of the USB diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig index 4a3b22e6de..327ea863b1 100644 --- a/drivers/usb/gadget/Kconfig +++ b/drivers/usb/gadget/Kconfig @@ -15,6 +15,8 @@ menuconfig USB_GADGET bool "USB Gadget Support" + depends on DM + select DM_USB help USB is a master/slave protocol, organized with one master host (such as a PC) controlling up to 127 peripheral devices. diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index f34cba2395..427b360af1 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -5,9 +5,11 @@ comment "USB Host Controller Drivers" config USB_HOST bool + select DM_USB 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 @@ -107,6 +109,7 @@ endif # USB_XHCI_HCD 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 ---help--- The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0 @@ -217,7 +220,6 @@ config USB_EHCI_ZYNQ config USB_EHCI_GENERIC bool "Support for generic EHCI USB controller" - depends on OF_CONTROL depends on DM_USB default ARCH_SUNXI default n @@ -234,6 +236,8 @@ endif # USB_EHCI_HCD config USB_OHCI_HCD bool "OHCI HCD (USB 1.1) support" + depends on DM && OF_CONTROL + select USB_HOST ---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 @@ -244,21 +248,17 @@ config USB_OHCI_HCD 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 DM_USB - default n + depends on PCI help Enables support for the PCI-based OHCI controller. -if USB_OHCI_HCD - config USB_OHCI_GENERIC bool "Support for generic OHCI USB controller" - depends on OF_CONTROL - depends on DM_USB default ARCH_SUNXI - select USB_HOST ---help--- Enables support for generic OHCI controller. @@ -289,6 +289,7 @@ 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 @@ -311,8 +312,7 @@ endif # USB_DWC2 config USB_R8A66597_HCD bool "Renesas R8A66597 USB Core support" - depends on OF_CONTROL - depends on DM_USB + depends on DM && OF_CONTROL select USB_HOST ---help--- This enables support for the on-chip Renesas R8A66597 USB 2.0 diff --git a/drivers/usb/mtu3/Kconfig b/drivers/usb/mtu3/Kconfig index a2a5991713..5ec498ec95 100644 --- a/drivers/usb/mtu3/Kconfig +++ b/drivers/usb/mtu3/Kconfig @@ -4,7 +4,7 @@ config USB_MTU3 bool "MediaTek USB3 Dual Role controller" - depends on USB_HOST || USB_GADGET + depends on USB_XHCI_HCD || USB_GADGET depends on ARCH_MEDIATEK help Say Y here if your system runs on MediaTek SoCs with diff --git a/drivers/usb/musb-new/Kconfig b/drivers/usb/musb-new/Kconfig index 81ceea9740..a9a7c2675e 100644 --- a/drivers/usb/musb-new/Kconfig +++ b/drivers/usb/musb-new/Kconfig @@ -5,22 +5,26 @@ comment "MUSB Controller Driver" config USB_MUSB_HOST bool "MUSB host mode support" + depends on DM && OF_CONTROL select SPL_SPRINTF if SPL select TPL_SPRINTF if TPL + select USB_HOST help Enables the MUSB USB dual-role controller in host mode. config USB_MUSB_GADGET bool "MUSB gadget mode support" + depends on USB_GADGET select USB_GADGET_DUALSPEED select SPL_SPRINTF if SPL select TPL_SPRINTF if TPL help Enables the MUSB USB dual-role controller in gadget mode. +if USB_MUSB_HOST || USB_MUSB_GADGET config USB_MUSB_DA8XX bool "Enable DA8xx MUSB Controller" - depends on DM_USB + depends on ARCH_DAVINCI help Say y here to enable support for the dual role high speed USB controller based on the Mentor Graphics @@ -28,7 +32,7 @@ config USB_MUSB_DA8XX config USB_MUSB_TI bool "Enable TI OTG USB controller" - depends on DM_USB + depends on AM33XX select USB_MUSB_DSPS default n help @@ -46,10 +50,9 @@ config USB_MUSB_AM35X config USB_MUSB_DSPS bool "TI DSPS platforms" -if USB_MUSB_HOST || USB_MUSB_GADGET config USB_MUSB_MT85XX bool "Enable Mediatek MT85XX DRC USB controller" - depends on DM_USB && ARCH_MEDIATEK + depends on ARCH_MEDIATEK default n help Say y to enable Mediatek MT85XX USB DRC controller support @@ -59,7 +62,7 @@ config USB_MUSB_MT85XX config USB_MUSB_PIC32 bool "Enable Microchip PIC32 DRC USB controller" - depends on DM_USB && MACH_PIC32 + depends on MACH_PIC32 help Say y to enable PIC32 USB DRC controller support if it is available on your Microchip PIC32 platform.