[U-Boot] [PATCH v2 0/3] usb: arrange Kconfig entries for USB host support

We have CONFIG_USB_GADGET, while we do not have an option to turn on/off USB host support.
In Linux, CONFIG_USB is used to enable the USB host support, but it is used in U-Boot to enable the whole USB sub-system. So, as an alternative, this commit adds CONFIG_USB_HOST and I think it makes sense enough.
Changes in v2: - Fix a typo CONIFG_ -> CONFIG_
Masahiro Yamada (3): usb: add CONFIG_USB_OHCI_HCD in Kconfig usb: add CONFIG_USB_UHCI_HCD in Kconfig usb: add (move) CONFIG_USB_HOST to Kconfig
configs/axs103_defconfig | 1 + drivers/usb/host/Kconfig | 59 +++++++++++++++++++++++++++++++++++-------- include/configs/am43xx_evm.h | 1 - include/configs/am57xx_evm.h | 1 - include/configs/cm_t43.h | 1 - include/configs/cm_t54.h | 1 - include/configs/dra7xx_evm.h | 1 - include/configs/duovero.h | 1 - include/configs/omap4_panda.h | 1 - include/configs/omap5_uevm.h | 1 - 10 files changed, 50 insertions(+), 18 deletions(-)

Add this option as a common config for all OHCI controllers. Its help message was copied from Linux. Also, I moved it below EHCI to respect the order in Linux's Kconfig.
Add CONFIG_USB_OHCI_HCD=y to axs103_defconfig, which is the only user of OHCI_GENERIC.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
Changes in v2: - Fix a typo CONIFG_ -> CONFIG_
configs/axs103_defconfig | 1 + drivers/usb/host/Kconfig | 35 +++++++++++++++++++++++++---------- 2 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/configs/axs103_defconfig b/configs/axs103_defconfig index c8474de..109b021 100644 --- a/configs/axs103_defconfig +++ b/configs/axs103_defconfig @@ -25,6 +25,7 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_SYS_NS16550=y CONFIG_USB=y CONFIG_DM_USB=y +CONFIG_USB_OHCI_HCD=y CONFIG_USB_OHCI_GENERIC=y CONFIG_USB_STORAGE=y CONFIG_USE_PRIVATE_LIBGCC=y diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 5092251..8e87f77 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -24,15 +24,7 @@ config USB_XHCI_DWC3 Say Y or if your system has a Dual Role SuperSpeed USB controller based on the DesignWare USB3 IP Core.
-endif - -config USB_OHCI_GENERIC - bool "Support for generic OHCI USB controller" - depends on OF_CONTROL - depends on DM_USB - default n - ---help--- - Enables support for generic OHCI controller. +endif # USB_XHCI_HCD
config USB_EHCI_HCD bool "EHCI HCD (USB 2.0) support" @@ -100,4 +92,27 @@ config USB_EHCI_GENERIC ---help--- Enables support for generic EHCI controller.
-endif +endif # USB_EHCI_HCD + +config USB_OHCI_HCD + bool "OHCI HCD (USB 1.1) support" + ---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_GENERIC + bool "Support for generic OHCI USB controller" + depends on OF_CONTROL + depends on DM_USB + ---help--- + Enables support for generic OHCI controller. + +endif # USB_OHCI_HCD

There is no UHCI driver entry in Kconfig for now, but we have some UHCI drivers, for example, LEON. This is a placeholder in case we want to move them to Kconfig in the future.
The help message was copied from Linux.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
Changes in v2: None
drivers/usb/host/Kconfig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 8e87f77..156dae4 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -116,3 +116,20 @@ config USB_OHCI_GENERIC Enables support for generic OHCI controller.
endif # USB_OHCI_HCD + +config USB_UHCI_HCD + bool "UHCI HCD (most Intel and VIA) support" + ---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

The meaning of CONFIG_USB in U-Boot is different from that in Linux.
As you see in drivers/usb/Kconfig of Linux, CONFIG_USB enables the USB host controller support, while CONFIG_USB_SUPPORT is used to enable the whole of the USB sub-system.
When I added CONFIG_USB into Kconfig by commit 6e7e9294d321 ("usb: add basic USB configs in Kconfig"), I planned to follow the Linux's convention, i.e. CONFIG_USB to enable/disable the USB host support.
Then, commit 68f7c5db2d1e ("usb: Generic USB Kconfig option, that fits both host and gadget and comments") changed the logic of the CONFIG_USB to point to the whole of the USB sub-system. As a result, currently we do not have an option for USB host.
This commit adds CONFIG_USB_HOST, which will be useful to compile in the USB host support code.
CONFIG_USB_HOST is not referenced at all, but strangely some boards define it in board headers. I removed them because USB_HOST will be selected in Kconfig going forward.
Signed-off-by: Masahiro Yamada yamada.masahiro@socionext.com ---
Changes in v2: None
drivers/usb/host/Kconfig | 7 +++++++ include/configs/am43xx_evm.h | 1 - include/configs/am57xx_evm.h | 1 - include/configs/cm_t43.h | 1 - include/configs/cm_t54.h | 1 - include/configs/dra7xx_evm.h | 1 - include/configs/duovero.h | 1 - include/configs/omap4_panda.h | 1 - include/configs/omap5_uevm.h | 1 - 9 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index 156dae4..02ae5cc 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -3,8 +3,12 @@ # comment "USB Host Controller Drivers"
+config USB_HOST + bool + config USB_XHCI_HCD bool "xHCI HCD (USB 3.0) support" + select USB_HOST ---help--- The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0 "SuperSpeed" host controller hardware. @@ -28,6 +32,7 @@ endif # USB_XHCI_HCD
config USB_EHCI_HCD bool "EHCI HCD (USB 2.0) support" + select USB_HOST ---help--- The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0 "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware. @@ -112,6 +117,7 @@ config USB_OHCI_GENERIC bool "Support for generic OHCI USB controller" depends on OF_CONTROL depends on DM_USB + select USB_HOST ---help--- Enables support for generic OHCI controller.
@@ -119,6 +125,7 @@ endif # USB_OHCI_HCD
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 diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h index 361704b..0467953 100644 --- a/include/configs/am43xx_evm.h +++ b/include/configs/am43xx_evm.h @@ -98,7 +98,6 @@
#if defined(CONFIG_SPL_USB_HOST_SUPPORT) || !defined(CONFIG_SPL_BUILD) #define CONFIG_SYS_USB_FAT_BOOT_PARTITION 1 -#define CONFIG_USB_HOST #define CONFIG_USB_XHCI_OMAP #define CONFIG_USB_STORAGE #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h index 2db199d..c9dcfe5 100644 --- a/include/configs/am57xx_evm.h +++ b/include/configs/am57xx_evm.h @@ -63,7 +63,6 @@ #define CONFIG_SUPPORT_EMMC_BOOT
/* USB xHCI HOST */ -#define CONFIG_USB_HOST #define CONFIG_USB_XHCI_OMAP #define CONFIG_USB_STORAGE #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 diff --git a/include/configs/cm_t43.h b/include/configs/cm_t43.h index 9bb975a..5d94f13 100644 --- a/include/configs/cm_t43.h +++ b/include/configs/cm_t43.h @@ -60,7 +60,6 @@ #define CONFIG_SYS_RX_ETH_BUFFER 64
/* USB support */ -#define CONFIG_USB_HOST #define CONFIG_USB_XHCI_OMAP #define CONFIG_USB_STORAGE #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 diff --git a/include/configs/cm_t54.h b/include/configs/cm_t54.h index 68851ee..8e9444e 100644 --- a/include/configs/cm_t54.h +++ b/include/configs/cm_t54.h @@ -69,7 +69,6 @@ #define CONFIG_SYS_SCSI_MAX_DEVICE (CONFIG_SYS_SCSI_MAX_SCSI_ID * \ CONFIG_SYS_SCSI_MAX_LUN) /* USB UHH support options */ -#define CONFIG_USB_HOST #define CONFIG_USB_EHCI #define CONFIG_USB_EHCI_OMAP #define CONFIG_USB_STORAGE diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h index 0d51aeb..c8f1d5f 100644 --- a/include/configs/dra7xx_evm.h +++ b/include/configs/dra7xx_evm.h @@ -210,7 +210,6 @@ #define CONFIG_SUPPORT_EMMC_BOOT
/* USB xHCI HOST */ -#define CONFIG_USB_HOST #define CONFIG_USB_XHCI_OMAP #define CONFIG_USB_STORAGE #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2 diff --git a/include/configs/duovero.h b/include/configs/duovero.h index 98afe27..299c0d5 100644 --- a/include/configs/duovero.h +++ b/include/configs/duovero.h @@ -29,7 +29,6 @@ #define CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
/* USB UHH support options */ -#define CONFIG_USB_HOST #define CONFIG_USB_EHCI #define CONFIG_USB_EHCI_OMAP #define CONFIG_USB_STORAGE diff --git a/include/configs/omap4_panda.h b/include/configs/omap4_panda.h index 0d62ccd..ffa22c3 100644 --- a/include/configs/omap4_panda.h +++ b/include/configs/omap4_panda.h @@ -17,7 +17,6 @@ */
/* USB UHH support options */ -#define CONFIG_USB_HOST #define CONFIG_USB_EHCI #define CONFIG_USB_EHCI_OMAP #define CONFIG_USB_STORAGE diff --git a/include/configs/omap5_uevm.h b/include/configs/omap5_uevm.h index 4ddc492..2bf955a 100644 --- a/include/configs/omap5_uevm.h +++ b/include/configs/omap5_uevm.h @@ -88,7 +88,6 @@ #define CONFIG_SYS_I2C_TCA642X_ADDR 0x22
/* USB UHH support options */ -#define CONFIG_USB_HOST #define CONFIG_USB_EHCI #define CONFIG_USB_EHCI_OMAP #define CONFIG_USB_STORAGE

On 07/31/2016 05:16 PM, Masahiro Yamada wrote:
We have CONFIG_USB_GADGET, while we do not have an option to turn on/off USB host support.
In Linux, CONFIG_USB is used to enable the USB host support, but it is used in U-Boot to enable the whole USB sub-system. So, as an alternative, this commit adds CONFIG_USB_HOST and I think it makes sense enough.
Hi, I applied all three, but please address the CONFIG_USB_OHCI_NEW from Alexey in a separate patch.
Changes in v2:
- Fix a typo CONIFG_ -> CONFIG_
Masahiro Yamada (3): usb: add CONFIG_USB_OHCI_HCD in Kconfig usb: add CONFIG_USB_UHCI_HCD in Kconfig usb: add (move) CONFIG_USB_HOST to Kconfig
configs/axs103_defconfig | 1 + drivers/usb/host/Kconfig | 59 +++++++++++++++++++++++++++++++++++-------- include/configs/am43xx_evm.h | 1 - include/configs/am57xx_evm.h | 1 - include/configs/cm_t43.h | 1 - include/configs/cm_t54.h | 1 - include/configs/dra7xx_evm.h | 1 - include/configs/duovero.h | 1 - include/configs/omap4_panda.h | 1 - include/configs/omap5_uevm.h | 1 - 10 files changed, 50 insertions(+), 18 deletions(-)
participants (2)
-
Marek Vasut
-
Masahiro Yamada