* [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
@ 2016-05-16 12:51 Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig Masahiro Yamada
` (13 more replies)
0 siblings, 14 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Masahiro Yamada (13):
configs: blackfin: move CONFIG_USB to defconfig
usb: move CONFIG_USB_XHCI to Kconfig with renaming
usb: move CONFIG_USB_XHCI_DWC3 to Kconfig
usb: xhci: add struct devrequest declaration to xhci.h
usb: dwc3: change DWC3 core support code into a driver
usb: dwc3: add UniPhier specific glue layer
ARM: uniphier: switch over to USB DM
ARM: uniphier: enable DWC3 xHCI driver
usb: uniphier: remove UniPhier xHCI driver
ARM: uniphier: delete unnecessary xHCI pin-mux settings
ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG
ARM: dts: uniphier: add/update xHCI nodes
ARM: uniphier: enable Generic EHCI for PH1-Pro4
arch/arm/Kconfig | 1 +
arch/arm/dts/uniphier-ph1-ld20.dtsi | 17 ++++
arch/arm/dts/uniphier-ph1-pro4-ref.dts | 4 +
arch/arm/dts/uniphier-ph1-pro4.dtsi | 32 ++++--
arch/arm/dts/uniphier-ph1-pro5.dtsi | 32 ++++--
arch/arm/dts/uniphier-proxstream2.dtsi | 32 ++++--
arch/arm/mach-uniphier/clk/clk-pro4.c | 6 +-
arch/arm/mach-uniphier/clk/clk-pro5.c | 6 +-
arch/arm/mach-uniphier/clk/clk-pxs2.c | 6 +-
arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c | 12 ---
arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c | 11 ---
arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c | 7 --
arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c | 7 --
arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c | 11 ---
common/usb.c | 2 +-
configs/am437x_gp_evm_defconfig | 2 +
configs/am437x_sk_evm_defconfig | 2 +
configs/am43xx_evm_defconfig | 2 +
configs/am43xx_evm_ethboot_defconfig | 2 +
configs/am43xx_evm_qspiboot_defconfig | 2 +
configs/am43xx_evm_usbhost_boot_defconfig | 2 +
configs/am57xx_evm_defconfig | 3 +
configs/am57xx_evm_nodt_defconfig | 3 +
configs/bf526-ezbrd_defconfig | 1 +
configs/bf527-ezkit-v2_defconfig | 1 +
configs/bf527-ezkit_defconfig | 1 +
configs/bf548-ezkit_defconfig | 1 +
configs/cm_t43_defconfig | 3 +
configs/dra72_evm_defconfig | 2 +
configs/dra74_evm_defconfig | 2 +
configs/dra7xx_evm_defconfig | 2 +
configs/dra7xx_evm_qspiboot_defconfig | 2 +
configs/dra7xx_evm_uart3_defconfig | 2 +
configs/k2e_evm_defconfig | 3 +
configs/k2g_evm_defconfig | 3 +
configs/k2hk_evm_defconfig | 3 +
configs/k2l_evm_defconfig | 3 +
configs/ls1021aqds_ddr4_nor_defconfig | 3 +
configs/ls1021aqds_ddr4_nor_lpuart_defconfig | 3 +
configs/ls1021aqds_nand_defconfig | 3 +
configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 3 +
configs/ls1021aqds_nor_defconfig | 3 +
configs/ls1021aqds_nor_lpuart_defconfig | 3 +
configs/ls1021aqds_qspi_defconfig | 3 +
configs/ls1021aqds_sdcard_ifc_defconfig | 3 +
configs/ls1021aqds_sdcard_qspi_defconfig | 3 +
configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 3 +
configs/ls1021atwr_nor_defconfig | 3 +
configs/ls1021atwr_nor_lpuart_defconfig | 3 +
configs/ls1021atwr_qspi_defconfig | 3 +
configs/ls1021atwr_sdcard_ifc_defconfig | 3 +
configs/ls1021atwr_sdcard_qspi_defconfig | 3 +
configs/ls1043aqds_defconfig | 3 +
configs/ls1043aqds_lpuart_defconfig | 3 +
configs/ls1043aqds_nand_defconfig | 3 +
configs/ls1043aqds_nor_ddr3_defconfig | 3 +
configs/ls1043aqds_qspi_defconfig | 3 +
configs/ls1043aqds_sdcard_ifc_defconfig | 3 +
configs/ls1043aqds_sdcard_qspi_defconfig | 3 +
configs/ls1043ardb_SECURE_BOOT_defconfig | 3 +
configs/ls1043ardb_defconfig | 3 +
configs/ls1043ardb_nand_defconfig | 3 +
configs/ls1043ardb_sdcard_defconfig | 3 +
configs/ls2080aqds_SECURE_BOOT_defconfig | 3 +
configs/ls2080aqds_defconfig | 3 +
configs/ls2080aqds_nand_defconfig | 3 +
configs/ls2080ardb_SECURE_BOOT_defconfig | 3 +
configs/ls2080ardb_defconfig | 3 +
configs/ls2080ardb_nand_defconfig | 3 +
configs/odroid-xu3_defconfig | 2 +
configs/peach-pi_defconfig | 2 +
configs/peach-pit_defconfig | 2 +
configs/smdk5420_defconfig | 2 +
configs/uniphier_ld20_defconfig | 2 +
configs/uniphier_ld4_sld8_defconfig | 1 -
configs/uniphier_pro4_defconfig | 4 +
configs/uniphier_pxs2_ld6b_defconfig | 2 +
configs/uniphier_sld3_defconfig | 1 -
configs/xilinx_zynqmp_ep_defconfig | 2 +
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 2 +
configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 2 +
configs/xilinx_zynqmp_zcu102_defconfig | 2 +
configs/xilinx_zynqmp_zcu102_revB_defconfig | 2 +
drivers/usb/host/Kconfig | 24 ++---
drivers/usb/host/Makefile | 4 +-
drivers/usb/host/dwc3-uniphier.c | 119 +++++++++++++++++++++++
drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++-
drivers/usb/host/xhci-uniphier.c | 85 ----------------
drivers/usb/host/xhci.h | 2 +
include/configs/am43xx_evm.h | 2 -
include/configs/am57xx_evm.h | 2 -
include/configs/bf526-ezbrd.h | 1 -
include/configs/bf527-ezkit.h | 1 -
include/configs/bf548-ezkit.h | 1 -
include/configs/cm_t43.h | 2 -
include/configs/dra7xx_evm.h | 2 -
include/configs/ds414.h | 3 +-
include/configs/exynos5-common.h | 1 -
include/configs/exynos5420-common.h | 1 -
include/configs/ls1021aqds.h | 2 -
include/configs/ls1021atwr.h | 2 -
include/configs/ls1043aqds.h | 2 -
include/configs/ls1043ardb.h | 2 -
include/configs/ls2080aqds.h | 2 -
include/configs/ls2080ardb.h | 2 -
include/configs/smdk5420.h | 1 -
include/configs/ti_armv7_keystone2.h | 2 -
include/configs/xilinx_zynqmp.h | 2 -
include/fdtdec.h | 1 -
lib/fdtdec.c | 1 -
110 files changed, 479 insertions(+), 218 deletions(-)
create mode 100644 drivers/usb/host/dwc3-uniphier.c
delete mode 100644 drivers/usb/host/xhci-uniphier.c
--
1.9.1
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 17:41 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 02/13] usb: move CONFIG_USB_XHCI to Kconfig with renaming Masahiro Yamada
` (12 subsequent siblings)
13 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
These Blackfin boards are the last ones that define CONFIG_USB in
their headers.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2:
- Newly added
configs/bf526-ezbrd_defconfig | 1 +
configs/bf527-ezkit-v2_defconfig | 1 +
configs/bf527-ezkit_defconfig | 1 +
configs/bf548-ezkit_defconfig | 1 +
include/configs/bf526-ezbrd.h | 1 -
include/configs/bf527-ezkit.h | 1 -
include/configs/bf548-ezkit.h | 1 -
7 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/configs/bf526-ezbrd_defconfig b/configs/bf526-ezbrd_defconfig
index 85c2a6b..ea4f8e4 100644
--- a/configs/bf526-ezbrd_defconfig
+++ b/configs/bf526-ezbrd_defconfig
@@ -17,3 +17,4 @@ CONFIG_CMD_FAT=y
CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_SST=y
+CONFIG_USB=y
diff --git a/configs/bf527-ezkit-v2_defconfig b/configs/bf527-ezkit-v2_defconfig
index ff797f8..faac28d 100644
--- a/configs/bf527-ezkit-v2_defconfig
+++ b/configs/bf527-ezkit-v2_defconfig
@@ -17,4 +17,5 @@ CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_USB=y
CONFIG_LIB_RAND=y
diff --git a/configs/bf527-ezkit_defconfig b/configs/bf527-ezkit_defconfig
index eff2a12..d69b146 100644
--- a/configs/bf527-ezkit_defconfig
+++ b/configs/bf527-ezkit_defconfig
@@ -17,3 +17,4 @@ CONFIG_NET_RANDOM_ETHADDR=y
# CONFIG_NET_TFTP_VARS is not set
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_USB=y
diff --git a/configs/bf548-ezkit_defconfig b/configs/bf548-ezkit_defconfig
index 6d398ac..e4fa136 100644
--- a/configs/bf548-ezkit_defconfig
+++ b/configs/bf548-ezkit_defconfig
@@ -16,5 +16,6 @@ CONFIG_CMD_EXT2=y
CONFIG_CMD_FAT=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_USB=y
CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y
CONFIG_LIB_RAND=y
diff --git a/include/configs/bf526-ezbrd.h b/include/configs/bf526-ezbrd.h
index 74c3464..cf8ef8a 100644
--- a/include/configs/bf526-ezbrd.h
+++ b/include/configs/bf526-ezbrd.h
@@ -125,7 +125,6 @@
* USB Settings
*/
#if !defined(__ADSPBF522__) && !defined(__ADSPBF523__)
-#define CONFIG_USB
#define CONFIG_USB_MUSB_HCD
#define CONFIG_USB_BLACKFIN
#define CONFIG_USB_STORAGE
diff --git a/include/configs/bf527-ezkit.h b/include/configs/bf527-ezkit.h
index e268473..c958a94 100644
--- a/include/configs/bf527-ezkit.h
+++ b/include/configs/bf527-ezkit.h
@@ -128,7 +128,6 @@
* USB Settings
*/
#if !defined(__ADSPBF522__) && !defined(__ADSPBF523__)
-#define CONFIG_USB
#define CONFIG_USB_MUSB_HCD
#define CONFIG_USB_BLACKFIN
#define CONFIG_USB_STORAGE
diff --git a/include/configs/bf548-ezkit.h b/include/configs/bf548-ezkit.h
index 6830e4d..be28ea3 100644
--- a/include/configs/bf548-ezkit.h
+++ b/include/configs/bf548-ezkit.h
@@ -151,7 +151,6 @@
* USB Settings
*/
#if !defined(__ADSPBF544__)
-#define CONFIG_USB
#define CONFIG_USB_MUSB_HCD
#define CONFIG_USB_BLACKFIN
#define CONFIG_USB_STORAGE
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 02/13] usb: move CONFIG_USB_XHCI to Kconfig with renaming
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 17:42 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 03/13] usb: move CONFIG_USB_XHCI_DWC3 to Kconfig Masahiro Yamada
` (11 subsequent siblings)
13 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Move CONFIG_USB_XHCI to defconfig files for all boards, renaming it
into CONFIG_USB_XHCI_HCD.
As commented in the help of "config USB_XHCI" entry, this has been
a TODO for a long time; now CONFIG_USB_XHCI_HCD and CONFIG_USB_XHCI
have been unified in favor of the former.
Note:
Some boards define CONFIG_USB_XHCI in their headers without
CONFIG_USB, which does not meet the "depends on" in Kconfig.
I added CONFIG_USB=y for those boards when converting.
Otherwise, they would fail to build.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2:
- Newly added
common/usb.c | 2 +-
configs/am437x_gp_evm_defconfig | 1 +
configs/am437x_sk_evm_defconfig | 1 +
configs/am43xx_evm_defconfig | 1 +
configs/am43xx_evm_ethboot_defconfig | 1 +
configs/am43xx_evm_qspiboot_defconfig | 1 +
configs/am43xx_evm_usbhost_boot_defconfig | 1 +
configs/am57xx_evm_defconfig | 2 ++
configs/am57xx_evm_nodt_defconfig | 2 ++
configs/cm_t43_defconfig | 2 ++
configs/dra72_evm_defconfig | 1 +
configs/dra74_evm_defconfig | 1 +
configs/dra7xx_evm_defconfig | 1 +
configs/dra7xx_evm_qspiboot_defconfig | 1 +
configs/dra7xx_evm_uart3_defconfig | 1 +
configs/k2e_evm_defconfig | 2 ++
configs/k2g_evm_defconfig | 2 ++
configs/k2hk_evm_defconfig | 2 ++
configs/k2l_evm_defconfig | 2 ++
configs/ls1021aqds_ddr4_nor_defconfig | 2 ++
configs/ls1021aqds_ddr4_nor_lpuart_defconfig | 2 ++
configs/ls1021aqds_nand_defconfig | 2 ++
configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 2 ++
configs/ls1021aqds_nor_defconfig | 2 ++
configs/ls1021aqds_nor_lpuart_defconfig | 2 ++
configs/ls1021aqds_qspi_defconfig | 2 ++
configs/ls1021aqds_sdcard_ifc_defconfig | 2 ++
configs/ls1021aqds_sdcard_qspi_defconfig | 2 ++
configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 2 ++
configs/ls1021atwr_nor_defconfig | 2 ++
configs/ls1021atwr_nor_lpuart_defconfig | 2 ++
configs/ls1021atwr_qspi_defconfig | 2 ++
configs/ls1021atwr_sdcard_ifc_defconfig | 2 ++
configs/ls1021atwr_sdcard_qspi_defconfig | 2 ++
configs/ls1043aqds_defconfig | 2 ++
configs/ls1043aqds_lpuart_defconfig | 2 ++
configs/ls1043aqds_nand_defconfig | 2 ++
configs/ls1043aqds_nor_ddr3_defconfig | 2 ++
configs/ls1043aqds_qspi_defconfig | 2 ++
configs/ls1043aqds_sdcard_ifc_defconfig | 2 ++
configs/ls1043aqds_sdcard_qspi_defconfig | 2 ++
configs/ls1043ardb_SECURE_BOOT_defconfig | 2 ++
configs/ls1043ardb_defconfig | 2 ++
configs/ls1043ardb_nand_defconfig | 2 ++
configs/ls1043ardb_sdcard_defconfig | 2 ++
configs/ls2080aqds_SECURE_BOOT_defconfig | 2 ++
configs/ls2080aqds_defconfig | 2 ++
configs/ls2080aqds_nand_defconfig | 2 ++
configs/ls2080ardb_SECURE_BOOT_defconfig | 2 ++
configs/ls2080ardb_defconfig | 2 ++
configs/ls2080ardb_nand_defconfig | 2 ++
configs/odroid-xu3_defconfig | 1 +
configs/peach-pi_defconfig | 1 +
configs/peach-pit_defconfig | 1 +
configs/smdk5420_defconfig | 1 +
configs/xilinx_zynqmp_ep_defconfig | 1 +
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 1 +
configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 1 +
configs/xilinx_zynqmp_zcu102_defconfig | 1 +
configs/xilinx_zynqmp_zcu102_revB_defconfig | 1 +
drivers/usb/host/Kconfig | 6 ------
drivers/usb/host/Makefile | 2 +-
include/configs/am43xx_evm.h | 1 -
include/configs/am57xx_evm.h | 1 -
include/configs/cm_t43.h | 1 -
include/configs/dra7xx_evm.h | 1 -
include/configs/ds414.h | 3 +--
include/configs/exynos5420-common.h | 1 -
include/configs/ls1021aqds.h | 1 -
include/configs/ls1021atwr.h | 1 -
include/configs/ls1043aqds.h | 1 -
include/configs/ls1043ardb.h | 1 -
include/configs/ls2080aqds.h | 1 -
include/configs/ls2080ardb.h | 1 -
include/configs/smdk5420.h | 1 -
include/configs/ti_armv7_keystone2.h | 1 -
include/configs/xilinx_zynqmp.h | 1 -
77 files changed, 101 insertions(+), 24 deletions(-)
diff --git a/common/usb.c b/common/usb.c
index 8d9efe5..b3ba487 100644
--- a/common/usb.c
+++ b/common/usb.c
@@ -1182,7 +1182,7 @@ int usb_new_device(struct usb_device *dev)
* with the device. So a get_descriptor will fail before any
* of that is done for XHCI unlike EHCI.
*/
-#ifdef CONFIG_USB_XHCI
+#ifdef CONFIG_USB_XHCI_HCD
do_read = false;
#endif
err = usb_setup_device(dev, do_read, dev->parent);
diff --git a/configs/am437x_gp_evm_defconfig b/configs/am437x_gp_evm_defconfig
index 03b02ac..22620f0 100644
--- a/configs/am437x_gp_evm_defconfig
+++ b/configs/am437x_gp_evm_defconfig
@@ -38,6 +38,7 @@ CONFIG_TI_QSPI=y
CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am437x_sk_evm_defconfig b/configs/am437x_sk_evm_defconfig
index 48ec91f..6c96a17 100644
--- a/configs/am437x_sk_evm_defconfig
+++ b/configs/am437x_sk_evm_defconfig
@@ -42,6 +42,7 @@ CONFIG_TI_QSPI=y
CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_defconfig b/configs/am43xx_evm_defconfig
index a6ae011..91c43f7 100644
--- a/configs/am43xx_evm_defconfig
+++ b/configs/am43xx_evm_defconfig
@@ -29,6 +29,7 @@ CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_ethboot_defconfig b/configs/am43xx_evm_ethboot_defconfig
index 662556a..3df62d0 100644
--- a/configs/am43xx_evm_ethboot_defconfig
+++ b/configs/am43xx_evm_ethboot_defconfig
@@ -28,6 +28,7 @@ CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_qspiboot_defconfig b/configs/am43xx_evm_qspiboot_defconfig
index 00fa6be..37afd67 100644
--- a/configs/am43xx_evm_qspiboot_defconfig
+++ b/configs/am43xx_evm_qspiboot_defconfig
@@ -27,6 +27,7 @@ CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_usbhost_boot_defconfig b/configs/am43xx_evm_usbhost_boot_defconfig
index e3d6b57..294aed9 100644
--- a/configs/am43xx_evm_usbhost_boot_defconfig
+++ b/configs/am43xx_evm_usbhost_boot_defconfig
@@ -28,6 +28,7 @@ CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
index 8fc3ebb..947913f 100644
--- a/configs/am57xx_evm_defconfig
+++ b/configs/am57xx_evm_defconfig
@@ -32,3 +32,5 @@ CONFIG_DM_MMC=y
CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_BAR=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/am57xx_evm_nodt_defconfig b/configs/am57xx_evm_nodt_defconfig
index 47d103b..373aa9e 100644
--- a/configs/am57xx_evm_nodt_defconfig
+++ b/configs/am57xx_evm_nodt_defconfig
@@ -22,4 +22,6 @@ CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/cm_t43_defconfig b/configs/cm_t43_defconfig
index c926a3a..a8ffea7 100644
--- a/configs/cm_t43_defconfig
+++ b/configs/cm_t43_defconfig
@@ -37,4 +37,6 @@ CONFIG_SPI_FLASH_STMICRO=y
CONFIG_SPI_FLASH_SST=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/dra72_evm_defconfig b/configs/dra72_evm_defconfig
index 00c6ac3..789466e 100644
--- a/configs/dra72_evm_defconfig
+++ b/configs/dra72_evm_defconfig
@@ -42,6 +42,7 @@ CONFIG_TI_QSPI=y
CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra74_evm_defconfig b/configs/dra74_evm_defconfig
index a11dcd5..8f1c3f8 100644
--- a/configs/dra74_evm_defconfig
+++ b/configs/dra74_evm_defconfig
@@ -41,6 +41,7 @@ CONFIG_TI_QSPI=y
CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
index b6458ae..3d010ba 100644
--- a/configs/dra7xx_evm_defconfig
+++ b/configs/dra7xx_evm_defconfig
@@ -31,6 +31,7 @@ CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra7xx_evm_qspiboot_defconfig b/configs/dra7xx_evm_qspiboot_defconfig
index 8ebfe49..2c27a81 100644
--- a/configs/dra7xx_evm_qspiboot_defconfig
+++ b/configs/dra7xx_evm_qspiboot_defconfig
@@ -31,6 +31,7 @@ CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra7xx_evm_uart3_defconfig b/configs/dra7xx_evm_uart3_defconfig
index 54c7ba9..cdee5d3 100644
--- a/configs/dra7xx_evm_uart3_defconfig
+++ b/configs/dra7xx_evm_uart3_defconfig
@@ -32,6 +32,7 @@ CONFIG_SPI_FLASH_SPANSION=y
CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/k2e_evm_defconfig b/configs/k2e_evm_defconfig
index 044a9bf..b1d4018 100644
--- a/configs/k2e_evm_defconfig
+++ b/configs/k2e_evm_defconfig
@@ -32,3 +32,5 @@ CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_DM_ETH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/k2g_evm_defconfig b/configs/k2g_evm_defconfig
index d0b45ce..2c7167e 100644
--- a/configs/k2g_evm_defconfig
+++ b/configs/k2g_evm_defconfig
@@ -32,3 +32,5 @@ CONFIG_SPI_FLASH_STMICRO=y
CONFIG_DM_ETH=y
CONFIG_REMOTEPROC_TI_POWER=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/k2hk_evm_defconfig b/configs/k2hk_evm_defconfig
index 3975e80..410de64 100644
--- a/configs/k2hk_evm_defconfig
+++ b/configs/k2hk_evm_defconfig
@@ -32,3 +32,5 @@ CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_DM_ETH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/k2l_evm_defconfig b/configs/k2l_evm_defconfig
index 844dd57..91d7a04 100644
--- a/configs/k2l_evm_defconfig
+++ b/configs/k2l_evm_defconfig
@@ -32,3 +32,5 @@ CONFIG_SPI_FLASH=y
CONFIG_SPI_FLASH_STMICRO=y
CONFIG_DM_ETH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_ddr4_nor_defconfig b/configs/ls1021aqds_ddr4_nor_defconfig
index 6feb581..dbb2355 100644
--- a/configs/ls1021aqds_ddr4_nor_defconfig
+++ b/configs/ls1021aqds_ddr4_nor_defconfig
@@ -24,3 +24,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
index 563af48..8322188 100644
--- a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
+++ b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
@@ -24,3 +24,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_FSL_LPUART=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_nand_defconfig b/configs/ls1021aqds_nand_defconfig
index 0786f20..1c256cc 100644
--- a/configs/ls1021aqds_nand_defconfig
+++ b/configs/ls1021aqds_nand_defconfig
@@ -21,4 +21,6 @@ CONFIG_CMD_FAT=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
index 243fcdd..ef9a558 100644
--- a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
@@ -22,5 +22,7 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_RSA=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021aqds_nor_defconfig b/configs/ls1021aqds_nor_defconfig
index 3cecdfe..4f3496f 100644
--- a/configs/ls1021aqds_nor_defconfig
+++ b/configs/ls1021aqds_nor_defconfig
@@ -23,3 +23,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_nor_lpuart_defconfig b/configs/ls1021aqds_nor_lpuart_defconfig
index 75b763e..f7e32cd 100644
--- a/configs/ls1021aqds_nor_lpuart_defconfig
+++ b/configs/ls1021aqds_nor_lpuart_defconfig
@@ -24,3 +24,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_FSL_LPUART=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_qspi_defconfig b/configs/ls1021aqds_qspi_defconfig
index c47fbce..667711c 100644
--- a/configs/ls1021aqds_qspi_defconfig
+++ b/configs/ls1021aqds_qspi_defconfig
@@ -30,3 +30,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_sdcard_ifc_defconfig b/configs/ls1021aqds_sdcard_ifc_defconfig
index 61ab251..4577b29 100644
--- a/configs/ls1021aqds_sdcard_ifc_defconfig
+++ b/configs/ls1021aqds_sdcard_ifc_defconfig
@@ -22,3 +22,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021aqds_sdcard_qspi_defconfig b/configs/ls1021aqds_sdcard_qspi_defconfig
index bb88743..903a390 100644
--- a/configs/ls1021aqds_sdcard_qspi_defconfig
+++ b/configs/ls1021aqds_sdcard_qspi_defconfig
@@ -29,3 +29,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021atwr_nor_SECURE_BOOT_defconfig b/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
index a5cbb22..ef32055 100644
--- a/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
@@ -22,5 +22,7 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_RSA=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021atwr_nor_defconfig b/configs/ls1021atwr_nor_defconfig
index 465054f..6badd44 100644
--- a/configs/ls1021atwr_nor_defconfig
+++ b/configs/ls1021atwr_nor_defconfig
@@ -23,3 +23,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021atwr_nor_lpuart_defconfig b/configs/ls1021atwr_nor_lpuart_defconfig
index e96e31a..769740e 100644
--- a/configs/ls1021atwr_nor_lpuart_defconfig
+++ b/configs/ls1021atwr_nor_lpuart_defconfig
@@ -24,3 +24,5 @@ CONFIG_DM=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_FSL_LPUART=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021atwr_qspi_defconfig b/configs/ls1021atwr_qspi_defconfig
index 987638c..375f9a4 100644
--- a/configs/ls1021atwr_qspi_defconfig
+++ b/configs/ls1021atwr_qspi_defconfig
@@ -31,3 +31,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1021atwr_sdcard_ifc_defconfig b/configs/ls1021atwr_sdcard_ifc_defconfig
index df4d428..2d6357f 100644
--- a/configs/ls1021atwr_sdcard_ifc_defconfig
+++ b/configs/ls1021atwr_sdcard_ifc_defconfig
@@ -20,4 +20,6 @@ CONFIG_CMD_FAT=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021atwr_sdcard_qspi_defconfig b/configs/ls1021atwr_sdcard_qspi_defconfig
index 583325d..69cbb95 100644
--- a/configs/ls1021atwr_sdcard_qspi_defconfig
+++ b/configs/ls1021atwr_sdcard_qspi_defconfig
@@ -31,3 +31,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_defconfig b/configs/ls1043aqds_defconfig
index 346faf4..fa4270a 100644
--- a/configs/ls1043aqds_defconfig
+++ b/configs/ls1043aqds_defconfig
@@ -25,3 +25,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig
index 2c6ac35..2a845b6 100644
--- a/configs/ls1043aqds_lpuart_defconfig
+++ b/configs/ls1043aqds_lpuart_defconfig
@@ -26,3 +26,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_FSL_LPUART=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_nand_defconfig b/configs/ls1043aqds_nand_defconfig
index cc8d8fa..20dc98b 100644
--- a/configs/ls1043aqds_nand_defconfig
+++ b/configs/ls1043aqds_nand_defconfig
@@ -26,3 +26,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_nor_ddr3_defconfig b/configs/ls1043aqds_nor_ddr3_defconfig
index 7d0646c..829ed32 100644
--- a/configs/ls1043aqds_nor_ddr3_defconfig
+++ b/configs/ls1043aqds_nor_ddr3_defconfig
@@ -24,3 +24,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_qspi_defconfig b/configs/ls1043aqds_qspi_defconfig
index 8ea1416..b6b98e3 100644
--- a/configs/ls1043aqds_qspi_defconfig
+++ b/configs/ls1043aqds_qspi_defconfig
@@ -26,3 +26,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_sdcard_ifc_defconfig b/configs/ls1043aqds_sdcard_ifc_defconfig
index 7e5949d..40ae837 100644
--- a/configs/ls1043aqds_sdcard_ifc_defconfig
+++ b/configs/ls1043aqds_sdcard_ifc_defconfig
@@ -26,3 +26,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043aqds_sdcard_qspi_defconfig b/configs/ls1043aqds_sdcard_qspi_defconfig
index 609fd63..8228d22 100644
--- a/configs/ls1043aqds_sdcard_qspi_defconfig
+++ b/configs/ls1043aqds_sdcard_qspi_defconfig
@@ -27,3 +27,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043ardb_SECURE_BOOT_defconfig b/configs/ls1043ardb_SECURE_BOOT_defconfig
index cacee2f..9e4ab65 100644
--- a/configs/ls1043ardb_SECURE_BOOT_defconfig
+++ b/configs/ls1043ardb_SECURE_BOOT_defconfig
@@ -21,4 +21,6 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_RSA=y
diff --git a/configs/ls1043ardb_defconfig b/configs/ls1043ardb_defconfig
index 49d0740..37a67b9 100644
--- a/configs/ls1043ardb_defconfig
+++ b/configs/ls1043ardb_defconfig
@@ -21,3 +21,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043ardb_nand_defconfig b/configs/ls1043ardb_nand_defconfig
index d240cde..e847312 100644
--- a/configs/ls1043ardb_nand_defconfig
+++ b/configs/ls1043ardb_nand_defconfig
@@ -22,3 +22,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls1043ardb_sdcard_defconfig b/configs/ls1043ardb_sdcard_defconfig
index f853685..e8a516b 100644
--- a/configs/ls1043ardb_sdcard_defconfig
+++ b/configs/ls1043ardb_sdcard_defconfig
@@ -22,3 +22,5 @@ CONFIG_OF_CONTROL=y
CONFIG_DM=y
CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls2080aqds_SECURE_BOOT_defconfig b/configs/ls2080aqds_SECURE_BOOT_defconfig
index 216559c..dbf7bc1 100644
--- a/configs/ls2080aqds_SECURE_BOOT_defconfig
+++ b/configs/ls2080aqds_SECURE_BOOT_defconfig
@@ -29,4 +29,6 @@ CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_RSA=y
diff --git a/configs/ls2080aqds_defconfig b/configs/ls2080aqds_defconfig
index 854630a..e19aacf 100644
--- a/configs/ls2080aqds_defconfig
+++ b/configs/ls2080aqds_defconfig
@@ -29,3 +29,5 @@ CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls2080aqds_nand_defconfig b/configs/ls2080aqds_nand_defconfig
index 4f385a1..e2d532d 100644
--- a/configs/ls2080aqds_nand_defconfig
+++ b/configs/ls2080aqds_nand_defconfig
@@ -22,4 +22,6 @@ CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls2080ardb_SECURE_BOOT_defconfig b/configs/ls2080ardb_SECURE_BOOT_defconfig
index 41d30a6..5233379 100644
--- a/configs/ls2080ardb_SECURE_BOOT_defconfig
+++ b/configs/ls2080ardb_SECURE_BOOT_defconfig
@@ -29,4 +29,6 @@ CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_RSA=y
diff --git a/configs/ls2080ardb_defconfig b/configs/ls2080ardb_defconfig
index 2b775cd..becbff4 100644
--- a/configs/ls2080ardb_defconfig
+++ b/configs/ls2080ardb_defconfig
@@ -29,3 +29,5 @@ CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
diff --git a/configs/ls2080ardb_nand_defconfig b/configs/ls2080ardb_nand_defconfig
index 0f184c0..c90e73b 100644
--- a/configs/ls2080ardb_nand_defconfig
+++ b/configs/ls2080ardb_nand_defconfig
@@ -22,4 +22,6 @@ CONFIG_NET_RANDOM_ETHADDR=y
CONFIG_NETDEVICES=y
CONFIG_E1000=y
CONFIG_SYS_NS16550=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
index 8995cc2..e78f973 100644
--- a/configs/odroid-xu3_defconfig
+++ b/configs/odroid-xu3_defconfig
@@ -36,6 +36,7 @@ CONFIG_PMIC_S2MPS11=y
CONFIG_DM_REGULATOR=y
CONFIG_USB=y
CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_PHY_SAMSUNG=y
diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig
index c8c74c0..9a815d0 100644
--- a/configs/peach-pi_defconfig
+++ b/configs/peach-pi_defconfig
@@ -55,6 +55,7 @@ CONFIG_EXYNOS_SPI=y
CONFIG_TPM_TIS_INFINEON=y
CONFIG_USB=y
CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_VIDEO_BRIDGE=y
CONFIG_VIDEO_BRIDGE_PARADE_PS862X=y
CONFIG_TPM=y
diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
index c5fbf8c..5bea937 100644
--- a/configs/peach-pit_defconfig
+++ b/configs/peach-pit_defconfig
@@ -55,6 +55,7 @@ CONFIG_EXYNOS_SPI=y
CONFIG_TPM_TIS_INFINEON=y
CONFIG_USB=y
CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_VIDEO_BRIDGE=y
CONFIG_VIDEO_BRIDGE_PARADE_PS862X=y
CONFIG_TPM=y
diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig
index 40de7c1..ad599fc 100644
--- a/configs/smdk5420_defconfig
+++ b/configs/smdk5420_defconfig
@@ -36,4 +36,5 @@ CONFIG_DM_REGULATOR=y
CONFIG_EXYNOS_SPI=y
CONFIG_USB=y
CONFIG_DM_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_VIDEO_BRIDGE=y
diff --git a/configs/xilinx_zynqmp_ep_defconfig b/configs/xilinx_zynqmp_ep_defconfig
index b185593..484a0ca 100644
--- a/configs/xilinx_zynqmp_ep_defconfig
+++ b/configs/xilinx_zynqmp_ep_defconfig
@@ -47,6 +47,7 @@ CONFIG_NAND_ARASAN=y
CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_GADGET=y
diff --git a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
index cc08b03..6d5a018 100644
--- a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
+++ b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
@@ -41,6 +41,7 @@ CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
index 14d24a0..f9dc6f4 100644
--- a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
+++ b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
@@ -38,6 +38,7 @@ CONFIG_SPI_FLASH_SST=y
CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/configs/xilinx_zynqmp_zcu102_defconfig b/configs/xilinx_zynqmp_zcu102_defconfig
index 6f1cff8..0057b01 100644
--- a/configs/xilinx_zynqmp_zcu102_defconfig
+++ b/configs/xilinx_zynqmp_zcu102_defconfig
@@ -39,6 +39,7 @@ CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/configs/xilinx_zynqmp_zcu102_revB_defconfig b/configs/xilinx_zynqmp_zcu102_revB_defconfig
index a8982a0..93f5382 100644
--- a/configs/xilinx_zynqmp_zcu102_revB_defconfig
+++ b/configs/xilinx_zynqmp_zcu102_revB_defconfig
@@ -39,6 +39,7 @@ CONFIG_SPI_FLASH_WINBOND=y
CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index d2363c8..8a6f732 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -9,12 +9,6 @@ config USB_XHCI_HCD
The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
"SuperSpeed" host controller hardware.
-config USB_XHCI
- bool
- default USB_XHCI_HCD
- ---help---
- TODO: rename after most boards switch to Kconfig
-
if USB_XHCI_HCD
config USB_XHCI_UNIPHIER
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 507519e..620d114 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -54,7 +54,7 @@ obj-$(CONFIG_USB_EHCI_RMOBILE) += ehci-rmobile.o
obj-$(CONFIG_USB_EHCI_ZYNQ) += ehci-zynq.o
# xhci
-obj-$(CONFIG_USB_XHCI) += xhci.o xhci-mem.o xhci-ring.o
+obj-$(CONFIG_USB_XHCI_HCD) += xhci.o xhci-mem.o xhci-ring.o
obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o
obj-$(CONFIG_USB_XHCI_ZYNQMP) += xhci-zynqmp.o
obj-$(CONFIG_USB_XHCI_KEYSTONE) += xhci-keystone.o
diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h
index 5b49988..72ca819 100644
--- a/include/configs/am43xx_evm.h
+++ b/include/configs/am43xx_evm.h
@@ -108,7 +108,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
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_XHCI_OMAP
#define CONFIG_USB_STORAGE
diff --git a/include/configs/am57xx_evm.h b/include/configs/am57xx_evm.h
index 32d7d4d..a99b9db 100644
--- a/include/configs/am57xx_evm.h
+++ b/include/configs/am57xx_evm.h
@@ -65,7 +65,6 @@
/* USB xHCI HOST */
#define CONFIG_USB_HOST
#define CONFIG_USB_XHCI_DWC3
-#define CONFIG_USB_XHCI
#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 ee818ed..b943e19 100644
--- a/include/configs/cm_t43.h
+++ b/include/configs/cm_t43.h
@@ -61,7 +61,6 @@
/* USB support */
#define CONFIG_USB_HOST
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_OMAP
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_STORAGE
diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
index 79b6c09..abfb888 100644
--- a/include/configs/dra7xx_evm.h
+++ b/include/configs/dra7xx_evm.h
@@ -211,7 +211,6 @@
/* USB xHCI HOST */
#define CONFIG_USB_HOST
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_XHCI_OMAP
#define CONFIG_USB_STORAGE
diff --git a/include/configs/ds414.h b/include/configs/ds414.h
index 64c546c..23373cd 100644
--- a/include/configs/ds414.h
+++ b/include/configs/ds414.h
@@ -71,12 +71,11 @@
* - USB init fails, controller does not respond in time */
#if 0
#undef CONFIG_DM_USB
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_PCI
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#endif
-#if !defined(CONFIG_USB_XHCI)
+#if !defined(CONFIG_USB_XHCI_HCD)
#define CONFIG_USB_EHCI
#define CONFIG_USB_EHCI_MARVELL
#define CONFIG_EHCI_IS_TDI
diff --git a/include/configs/exynos5420-common.h b/include/configs/exynos5420-common.h
index cd86e06..16153eb 100644
--- a/include/configs/exynos5420-common.h
+++ b/include/configs/exynos5420-common.h
@@ -48,7 +48,6 @@
*/
#define CONFIG_CORE_COUNT 0x8
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_EXYNOS
#endif /* __CONFIG_EXYNOS5420_H */
diff --git a/include/configs/ls1021aqds.h b/include/configs/ls1021aqds.h
index f605ca6..ac32240 100644
--- a/include/configs/ls1021aqds.h
+++ b/include/configs/ls1021aqds.h
@@ -451,7 +451,6 @@ unsigned long get_board_ddr_clk(void);
#ifdef CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
#define CONFIG_USB_XHCI_DWC3
-#define CONFIG_USB_XHCI
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#endif
diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
index 32d2acc..c38d680 100644
--- a/include/configs/ls1021atwr.h
+++ b/include/configs/ls1021atwr.h
@@ -58,7 +58,6 @@
#ifdef CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
#define CONFIG_USB_XHCI_DWC3
-#define CONFIG_USB_XHCI
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#endif
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
index d71a229..e0a6368 100644
--- a/include/configs/ls1043aqds.h
+++ b/include/configs/ls1043aqds.h
@@ -388,7 +388,6 @@ unsigned long get_board_ddr_clk(void);
/* USB */
#define CONFIG_HAS_FSL_XHCI_USB
#ifdef CONFIG_HAS_FSL_XHCI_USB
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_FSL
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
index 6d35be2..ebf3507 100644
--- a/include/configs/ls1043ardb.h
+++ b/include/configs/ls1043ardb.h
@@ -277,7 +277,6 @@
/* USB */
#define CONFIG_HAS_FSL_XHCI_USB
#ifdef CONFIG_HAS_FSL_XHCI_USB
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_FSL
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
index 2d7567f..f7a9e18 100644
--- a/include/configs/ls2080aqds.h
+++ b/include/configs/ls2080aqds.h
@@ -383,7 +383,6 @@ unsigned long get_board_ddr_clk(void);
* USB
*/
#define CONFIG_HAS_FSL_XHCI_USB
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_FSL
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index 5bec509..d2de051 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -316,7 +316,6 @@ unsigned long get_board_sys_clk(void);
* USB
*/
#define CONFIG_HAS_FSL_XHCI_USB
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_FSL
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
diff --git a/include/configs/smdk5420.h b/include/configs/smdk5420.h
index 9cf886c..c15acec 100644
--- a/include/configs/smdk5420.h
+++ b/include/configs/smdk5420.h
@@ -31,7 +31,6 @@
#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
/* USB */
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_EXYNOS
/* DRAM Memory Banks */
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h
index 2c9028c..2292eb2 100644
--- a/include/configs/ti_armv7_keystone2.h
+++ b/include/configs/ti_armv7_keystone2.h
@@ -191,7 +191,6 @@
"-(ubifs)"
/* USB Configuration */
-#define CONFIG_USB_XHCI
#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_XHCI_KEYSTONE
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 060bca9..4312e84 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -102,7 +102,6 @@
#if defined(CONFIG_ZYNQMP_USB)
#define CONFIG_USB_XHCI_DWC3
-#define CONFIG_USB_XHCI
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 03/13] usb: move CONFIG_USB_XHCI_DWC3 to Kconfig
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 02/13] usb: move CONFIG_USB_XHCI to Kconfig with renaming Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 17:42 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 04/13] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
` (10 subsequent siblings)
13 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Create an entry for "config USB_XHCI_DWC3" in Kconfig and
switch over to it for all boards.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2:
- Newly added
configs/am437x_gp_evm_defconfig | 1 +
configs/am437x_sk_evm_defconfig | 1 +
configs/am43xx_evm_defconfig | 1 +
configs/am43xx_evm_ethboot_defconfig | 1 +
configs/am43xx_evm_qspiboot_defconfig | 1 +
configs/am43xx_evm_usbhost_boot_defconfig | 1 +
configs/am57xx_evm_defconfig | 1 +
configs/am57xx_evm_nodt_defconfig | 1 +
configs/cm_t43_defconfig | 1 +
configs/dra72_evm_defconfig | 1 +
configs/dra74_evm_defconfig | 1 +
configs/dra7xx_evm_defconfig | 1 +
configs/dra7xx_evm_qspiboot_defconfig | 1 +
configs/dra7xx_evm_uart3_defconfig | 1 +
configs/k2e_evm_defconfig | 1 +
configs/k2g_evm_defconfig | 1 +
configs/k2hk_evm_defconfig | 1 +
configs/k2l_evm_defconfig | 1 +
configs/ls1021aqds_ddr4_nor_defconfig | 1 +
configs/ls1021aqds_ddr4_nor_lpuart_defconfig | 1 +
configs/ls1021aqds_nand_defconfig | 1 +
configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 1 +
configs/ls1021aqds_nor_defconfig | 1 +
configs/ls1021aqds_nor_lpuart_defconfig | 1 +
configs/ls1021aqds_qspi_defconfig | 1 +
configs/ls1021aqds_sdcard_ifc_defconfig | 1 +
configs/ls1021aqds_sdcard_qspi_defconfig | 1 +
configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 1 +
configs/ls1021atwr_nor_defconfig | 1 +
configs/ls1021atwr_nor_lpuart_defconfig | 1 +
configs/ls1021atwr_qspi_defconfig | 1 +
configs/ls1021atwr_sdcard_ifc_defconfig | 1 +
configs/ls1021atwr_sdcard_qspi_defconfig | 1 +
configs/ls1043aqds_defconfig | 1 +
configs/ls1043aqds_lpuart_defconfig | 1 +
configs/ls1043aqds_nand_defconfig | 1 +
configs/ls1043aqds_nor_ddr3_defconfig | 1 +
configs/ls1043aqds_qspi_defconfig | 1 +
configs/ls1043aqds_sdcard_ifc_defconfig | 1 +
configs/ls1043aqds_sdcard_qspi_defconfig | 1 +
configs/ls1043ardb_SECURE_BOOT_defconfig | 1 +
configs/ls1043ardb_defconfig | 1 +
configs/ls1043ardb_nand_defconfig | 1 +
configs/ls1043ardb_sdcard_defconfig | 1 +
configs/ls2080aqds_SECURE_BOOT_defconfig | 1 +
configs/ls2080aqds_defconfig | 1 +
configs/ls2080aqds_nand_defconfig | 1 +
configs/ls2080ardb_SECURE_BOOT_defconfig | 1 +
configs/ls2080ardb_defconfig | 1 +
configs/ls2080ardb_nand_defconfig | 1 +
configs/odroid-xu3_defconfig | 1 +
configs/peach-pi_defconfig | 1 +
configs/peach-pit_defconfig | 1 +
configs/smdk5420_defconfig | 1 +
configs/xilinx_zynqmp_ep_defconfig | 1 +
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 1 +
configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 1 +
configs/xilinx_zynqmp_zcu102_defconfig | 1 +
configs/xilinx_zynqmp_zcu102_revB_defconfig | 1 +
drivers/usb/host/Kconfig | 6 ++++++
include/configs/am43xx_evm.h | 1 -
include/configs/am57xx_evm.h | 1 -
include/configs/cm_t43.h | 1 -
include/configs/dra7xx_evm.h | 1 -
include/configs/exynos5-common.h | 1 -
include/configs/ls1021aqds.h | 1 -
include/configs/ls1021atwr.h | 1 -
include/configs/ls1043aqds.h | 1 -
include/configs/ls1043ardb.h | 1 -
include/configs/ls2080aqds.h | 1 -
include/configs/ls2080ardb.h | 1 -
include/configs/ti_armv7_keystone2.h | 1 -
include/configs/xilinx_zynqmp.h | 1 -
73 files changed, 65 insertions(+), 13 deletions(-)
diff --git a/configs/am437x_gp_evm_defconfig b/configs/am437x_gp_evm_defconfig
index 22620f0..f911281 100644
--- a/configs/am437x_gp_evm_defconfig
+++ b/configs/am437x_gp_evm_defconfig
@@ -39,6 +39,7 @@ CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am437x_sk_evm_defconfig b/configs/am437x_sk_evm_defconfig
index 6c96a17..b9e0aae 100644
--- a/configs/am437x_sk_evm_defconfig
+++ b/configs/am437x_sk_evm_defconfig
@@ -43,6 +43,7 @@ CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_defconfig b/configs/am43xx_evm_defconfig
index 91c43f7..43ee43f 100644
--- a/configs/am43xx_evm_defconfig
+++ b/configs/am43xx_evm_defconfig
@@ -30,6 +30,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_ethboot_defconfig b/configs/am43xx_evm_ethboot_defconfig
index 3df62d0..6b37f59 100644
--- a/configs/am43xx_evm_ethboot_defconfig
+++ b/configs/am43xx_evm_ethboot_defconfig
@@ -29,6 +29,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_qspiboot_defconfig b/configs/am43xx_evm_qspiboot_defconfig
index 37afd67..8e15cf7 100644
--- a/configs/am43xx_evm_qspiboot_defconfig
+++ b/configs/am43xx_evm_qspiboot_defconfig
@@ -28,6 +28,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am43xx_evm_usbhost_boot_defconfig b/configs/am43xx_evm_usbhost_boot_defconfig
index 294aed9..a1dd8c9 100644
--- a/configs/am43xx_evm_usbhost_boot_defconfig
+++ b/configs/am43xx_evm_usbhost_boot_defconfig
@@ -29,6 +29,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig
index 947913f..123472c 100644
--- a/configs/am57xx_evm_defconfig
+++ b/configs/am57xx_evm_defconfig
@@ -34,3 +34,4 @@ CONFIG_SPI_FLASH_BAR=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/am57xx_evm_nodt_defconfig b/configs/am57xx_evm_nodt_defconfig
index 373aa9e..1cf82d2 100644
--- a/configs/am57xx_evm_nodt_defconfig
+++ b/configs/am57xx_evm_nodt_defconfig
@@ -24,4 +24,5 @@ CONFIG_CMD_FS_GENERIC=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/cm_t43_defconfig b/configs/cm_t43_defconfig
index a8ffea7..b80ca0d 100644
--- a/configs/cm_t43_defconfig
+++ b/configs/cm_t43_defconfig
@@ -39,4 +39,5 @@ CONFIG_SPI_FLASH_WINBOND=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/dra72_evm_defconfig b/configs/dra72_evm_defconfig
index 789466e..8f9668f 100644
--- a/configs/dra72_evm_defconfig
+++ b/configs/dra72_evm_defconfig
@@ -43,6 +43,7 @@ CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra74_evm_defconfig b/configs/dra74_evm_defconfig
index 8f1c3f8..918e754 100644
--- a/configs/dra74_evm_defconfig
+++ b/configs/dra74_evm_defconfig
@@ -42,6 +42,7 @@ CONFIG_TIMER=y
CONFIG_OMAP_TIMER=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
index 3d010ba..9b2dcf9 100644
--- a/configs/dra7xx_evm_defconfig
+++ b/configs/dra7xx_evm_defconfig
@@ -32,6 +32,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra7xx_evm_qspiboot_defconfig b/configs/dra7xx_evm_qspiboot_defconfig
index 2c27a81..92aa2cf 100644
--- a/configs/dra7xx_evm_qspiboot_defconfig
+++ b/configs/dra7xx_evm_qspiboot_defconfig
@@ -32,6 +32,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/dra7xx_evm_uart3_defconfig b/configs/dra7xx_evm_uart3_defconfig
index cdee5d3..31a6b6f 100644
--- a/configs/dra7xx_evm_uart3_defconfig
+++ b/configs/dra7xx_evm_uart3_defconfig
@@ -33,6 +33,7 @@ CONFIG_SYS_NS16550=y
CONFIG_TI_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_OMAP=y
diff --git a/configs/k2e_evm_defconfig b/configs/k2e_evm_defconfig
index b1d4018..9fcdfe9 100644
--- a/configs/k2e_evm_defconfig
+++ b/configs/k2e_evm_defconfig
@@ -34,3 +34,4 @@ CONFIG_DM_ETH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/k2g_evm_defconfig b/configs/k2g_evm_defconfig
index 2c7167e..8efa58c 100644
--- a/configs/k2g_evm_defconfig
+++ b/configs/k2g_evm_defconfig
@@ -34,3 +34,4 @@ CONFIG_REMOTEPROC_TI_POWER=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/k2hk_evm_defconfig b/configs/k2hk_evm_defconfig
index 410de64..278eaf3 100644
--- a/configs/k2hk_evm_defconfig
+++ b/configs/k2hk_evm_defconfig
@@ -34,3 +34,4 @@ CONFIG_DM_ETH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/k2l_evm_defconfig b/configs/k2l_evm_defconfig
index 91d7a04..8417e0a 100644
--- a/configs/k2l_evm_defconfig
+++ b/configs/k2l_evm_defconfig
@@ -34,3 +34,4 @@ CONFIG_DM_ETH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_ddr4_nor_defconfig b/configs/ls1021aqds_ddr4_nor_defconfig
index dbb2355..85cadb0 100644
--- a/configs/ls1021aqds_ddr4_nor_defconfig
+++ b/configs/ls1021aqds_ddr4_nor_defconfig
@@ -26,3 +26,4 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
index 8322188..e267968 100644
--- a/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
+++ b/configs/ls1021aqds_ddr4_nor_lpuart_defconfig
@@ -26,3 +26,4 @@ CONFIG_E1000=y
CONFIG_FSL_LPUART=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_nand_defconfig b/configs/ls1021aqds_nand_defconfig
index 1c256cc..30168d7 100644
--- a/configs/ls1021aqds_nand_defconfig
+++ b/configs/ls1021aqds_nand_defconfig
@@ -23,4 +23,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
index ef9a558..243604f 100644
--- a/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021aqds_nor_SECURE_BOOT_defconfig
@@ -24,5 +24,6 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_RSA=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021aqds_nor_defconfig b/configs/ls1021aqds_nor_defconfig
index 4f3496f..53ea1c3 100644
--- a/configs/ls1021aqds_nor_defconfig
+++ b/configs/ls1021aqds_nor_defconfig
@@ -25,3 +25,4 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_nor_lpuart_defconfig b/configs/ls1021aqds_nor_lpuart_defconfig
index f7e32cd..3429f55 100644
--- a/configs/ls1021aqds_nor_lpuart_defconfig
+++ b/configs/ls1021aqds_nor_lpuart_defconfig
@@ -26,3 +26,4 @@ CONFIG_E1000=y
CONFIG_FSL_LPUART=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_qspi_defconfig b/configs/ls1021aqds_qspi_defconfig
index 667711c..71afa59 100644
--- a/configs/ls1021aqds_qspi_defconfig
+++ b/configs/ls1021aqds_qspi_defconfig
@@ -32,3 +32,4 @@ CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_sdcard_ifc_defconfig b/configs/ls1021aqds_sdcard_ifc_defconfig
index 4577b29..1b8cdd1 100644
--- a/configs/ls1021aqds_sdcard_ifc_defconfig
+++ b/configs/ls1021aqds_sdcard_ifc_defconfig
@@ -24,3 +24,4 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021aqds_sdcard_qspi_defconfig b/configs/ls1021aqds_sdcard_qspi_defconfig
index 903a390..fb692c3 100644
--- a/configs/ls1021aqds_sdcard_qspi_defconfig
+++ b/configs/ls1021aqds_sdcard_qspi_defconfig
@@ -31,3 +31,4 @@ CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021atwr_nor_SECURE_BOOT_defconfig b/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
index ef32055..b34a062 100644
--- a/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
+++ b/configs/ls1021atwr_nor_SECURE_BOOT_defconfig
@@ -24,5 +24,6 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_RSA=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021atwr_nor_defconfig b/configs/ls1021atwr_nor_defconfig
index 6badd44..f34fe90 100644
--- a/configs/ls1021atwr_nor_defconfig
+++ b/configs/ls1021atwr_nor_defconfig
@@ -25,3 +25,4 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021atwr_nor_lpuart_defconfig b/configs/ls1021atwr_nor_lpuart_defconfig
index 769740e..3dcddb5 100644
--- a/configs/ls1021atwr_nor_lpuart_defconfig
+++ b/configs/ls1021atwr_nor_lpuart_defconfig
@@ -26,3 +26,4 @@ CONFIG_E1000=y
CONFIG_FSL_LPUART=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021atwr_qspi_defconfig b/configs/ls1021atwr_qspi_defconfig
index 375f9a4..715a492 100644
--- a/configs/ls1021atwr_qspi_defconfig
+++ b/configs/ls1021atwr_qspi_defconfig
@@ -33,3 +33,4 @@ CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1021atwr_sdcard_ifc_defconfig b/configs/ls1021atwr_sdcard_ifc_defconfig
index 2d6357f..09fbe39 100644
--- a/configs/ls1021atwr_sdcard_ifc_defconfig
+++ b/configs/ls1021atwr_sdcard_ifc_defconfig
@@ -22,4 +22,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls1021atwr_sdcard_qspi_defconfig b/configs/ls1021atwr_sdcard_qspi_defconfig
index 69cbb95..c6af3a1 100644
--- a/configs/ls1021atwr_sdcard_qspi_defconfig
+++ b/configs/ls1021atwr_sdcard_qspi_defconfig
@@ -33,3 +33,4 @@ CONFIG_FSL_DSPI=y
CONFIG_FSL_QSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_defconfig b/configs/ls1043aqds_defconfig
index fa4270a..1fbfd38 100644
--- a/configs/ls1043aqds_defconfig
+++ b/configs/ls1043aqds_defconfig
@@ -27,3 +27,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_lpuart_defconfig b/configs/ls1043aqds_lpuart_defconfig
index 2a845b6..6b628d3 100644
--- a/configs/ls1043aqds_lpuart_defconfig
+++ b/configs/ls1043aqds_lpuart_defconfig
@@ -28,3 +28,4 @@ CONFIG_SPI_FLASH=y
CONFIG_FSL_LPUART=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_nand_defconfig b/configs/ls1043aqds_nand_defconfig
index 20dc98b..90f870a 100644
--- a/configs/ls1043aqds_nand_defconfig
+++ b/configs/ls1043aqds_nand_defconfig
@@ -28,3 +28,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_nor_ddr3_defconfig b/configs/ls1043aqds_nor_ddr3_defconfig
index 829ed32..813c269 100644
--- a/configs/ls1043aqds_nor_ddr3_defconfig
+++ b/configs/ls1043aqds_nor_ddr3_defconfig
@@ -26,3 +26,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_qspi_defconfig b/configs/ls1043aqds_qspi_defconfig
index b6b98e3..e665ba4 100644
--- a/configs/ls1043aqds_qspi_defconfig
+++ b/configs/ls1043aqds_qspi_defconfig
@@ -28,3 +28,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_sdcard_ifc_defconfig b/configs/ls1043aqds_sdcard_ifc_defconfig
index 40ae837..03a263a 100644
--- a/configs/ls1043aqds_sdcard_ifc_defconfig
+++ b/configs/ls1043aqds_sdcard_ifc_defconfig
@@ -28,3 +28,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043aqds_sdcard_qspi_defconfig b/configs/ls1043aqds_sdcard_qspi_defconfig
index 8228d22..0062f5c 100644
--- a/configs/ls1043aqds_sdcard_qspi_defconfig
+++ b/configs/ls1043aqds_sdcard_qspi_defconfig
@@ -29,3 +29,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043ardb_SECURE_BOOT_defconfig b/configs/ls1043ardb_SECURE_BOOT_defconfig
index 9e4ab65..bace827 100644
--- a/configs/ls1043ardb_SECURE_BOOT_defconfig
+++ b/configs/ls1043ardb_SECURE_BOOT_defconfig
@@ -23,4 +23,5 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_RSA=y
diff --git a/configs/ls1043ardb_defconfig b/configs/ls1043ardb_defconfig
index 37a67b9..48a89ab 100644
--- a/configs/ls1043ardb_defconfig
+++ b/configs/ls1043ardb_defconfig
@@ -23,3 +23,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043ardb_nand_defconfig b/configs/ls1043ardb_nand_defconfig
index e847312..627a90d 100644
--- a/configs/ls1043ardb_nand_defconfig
+++ b/configs/ls1043ardb_nand_defconfig
@@ -24,3 +24,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls1043ardb_sdcard_defconfig b/configs/ls1043ardb_sdcard_defconfig
index e8a516b..c676a91 100644
--- a/configs/ls1043ardb_sdcard_defconfig
+++ b/configs/ls1043ardb_sdcard_defconfig
@@ -24,3 +24,4 @@ CONFIG_SPI_FLASH=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls2080aqds_SECURE_BOOT_defconfig b/configs/ls2080aqds_SECURE_BOOT_defconfig
index dbf7bc1..5fc6e6f 100644
--- a/configs/ls2080aqds_SECURE_BOOT_defconfig
+++ b/configs/ls2080aqds_SECURE_BOOT_defconfig
@@ -31,4 +31,5 @@ CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_RSA=y
diff --git a/configs/ls2080aqds_defconfig b/configs/ls2080aqds_defconfig
index e19aacf..5f440ae 100644
--- a/configs/ls2080aqds_defconfig
+++ b/configs/ls2080aqds_defconfig
@@ -31,3 +31,4 @@ CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls2080aqds_nand_defconfig b/configs/ls2080aqds_nand_defconfig
index e2d532d..e6841c9 100644
--- a/configs/ls2080aqds_nand_defconfig
+++ b/configs/ls2080aqds_nand_defconfig
@@ -24,4 +24,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/ls2080ardb_SECURE_BOOT_defconfig b/configs/ls2080ardb_SECURE_BOOT_defconfig
index 5233379..632a639 100644
--- a/configs/ls2080ardb_SECURE_BOOT_defconfig
+++ b/configs/ls2080ardb_SECURE_BOOT_defconfig
@@ -31,4 +31,5 @@ CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_RSA=y
diff --git a/configs/ls2080ardb_defconfig b/configs/ls2080ardb_defconfig
index becbff4..6cc6795 100644
--- a/configs/ls2080ardb_defconfig
+++ b/configs/ls2080ardb_defconfig
@@ -31,3 +31,4 @@ CONFIG_SYS_NS16550=y
CONFIG_FSL_DSPI=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
diff --git a/configs/ls2080ardb_nand_defconfig b/configs/ls2080ardb_nand_defconfig
index c90e73b..46adbfc 100644
--- a/configs/ls2080ardb_nand_defconfig
+++ b/configs/ls2080ardb_nand_defconfig
@@ -24,4 +24,5 @@ CONFIG_E1000=y
CONFIG_SYS_NS16550=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_OF_LIBFDT=y
diff --git a/configs/odroid-xu3_defconfig b/configs/odroid-xu3_defconfig
index e78f973..49cfa8c 100644
--- a/configs/odroid-xu3_defconfig
+++ b/configs/odroid-xu3_defconfig
@@ -37,6 +37,7 @@ CONFIG_DM_REGULATOR=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_PHY_SAMSUNG=y
diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig
index 9a815d0..3c403ba 100644
--- a/configs/peach-pi_defconfig
+++ b/configs/peach-pi_defconfig
@@ -56,6 +56,7 @@ CONFIG_TPM_TIS_INFINEON=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_VIDEO_BRIDGE=y
CONFIG_VIDEO_BRIDGE_PARADE_PS862X=y
CONFIG_TPM=y
diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig
index 5bea937..bfa3614 100644
--- a/configs/peach-pit_defconfig
+++ b/configs/peach-pit_defconfig
@@ -56,6 +56,7 @@ CONFIG_TPM_TIS_INFINEON=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_VIDEO_BRIDGE=y
CONFIG_VIDEO_BRIDGE_PARADE_PS862X=y
CONFIG_TPM=y
diff --git a/configs/smdk5420_defconfig b/configs/smdk5420_defconfig
index ad599fc..3bda611 100644
--- a/configs/smdk5420_defconfig
+++ b/configs/smdk5420_defconfig
@@ -37,4 +37,5 @@ CONFIG_EXYNOS_SPI=y
CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_VIDEO_BRIDGE=y
diff --git a/configs/xilinx_zynqmp_ep_defconfig b/configs/xilinx_zynqmp_ep_defconfig
index 484a0ca..231ef13 100644
--- a/configs/xilinx_zynqmp_ep_defconfig
+++ b/configs/xilinx_zynqmp_ep_defconfig
@@ -48,6 +48,7 @@ CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_GADGET=y
diff --git a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
index 6d5a018..98937f2 100644
--- a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
+++ b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
@@ -42,6 +42,7 @@ CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
index f9dc6f4..bb47632 100644
--- a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
+++ b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
@@ -39,6 +39,7 @@ CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/configs/xilinx_zynqmp_zcu102_defconfig b/configs/xilinx_zynqmp_zcu102_defconfig
index 0057b01..edc3264 100644
--- a/configs/xilinx_zynqmp_zcu102_defconfig
+++ b/configs/xilinx_zynqmp_zcu102_defconfig
@@ -40,6 +40,7 @@ CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/configs/xilinx_zynqmp_zcu102_revB_defconfig b/configs/xilinx_zynqmp_zcu102_revB_defconfig
index 93f5382..9ce414d 100644
--- a/configs/xilinx_zynqmp_zcu102_revB_defconfig
+++ b/configs/xilinx_zynqmp_zcu102_revB_defconfig
@@ -40,6 +40,7 @@ CONFIG_DM_ETH=y
CONFIG_ZYNQ_GEM=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_ULPI_VIEWPORT=y
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 8a6f732..89580cc 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -18,6 +18,12 @@ config USB_XHCI_UNIPHIER
---help---
Enables support for the on-chip xHCI controller on UniPhier SoCs.
+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.
+
endif
config USB_OHCI_GENERIC
diff --git a/include/configs/am43xx_evm.h b/include/configs/am43xx_evm.h
index 72ca819..84aa3bb 100644
--- a/include/configs/am43xx_evm.h
+++ b/include/configs/am43xx_evm.h
@@ -108,7 +108,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_DWC3
#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 a99b9db..f25bf0d 100644
--- a/include/configs/am57xx_evm.h
+++ b/include/configs/am57xx_evm.h
@@ -64,7 +64,6 @@
/* USB xHCI HOST */
#define CONFIG_USB_HOST
-#define CONFIG_USB_XHCI_DWC3
#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 b943e19..f199661 100644
--- a/include/configs/cm_t43.h
+++ b/include/configs/cm_t43.h
@@ -62,7 +62,6 @@
/* USB support */
#define CONFIG_USB_HOST
#define CONFIG_USB_XHCI_OMAP
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_STORAGE
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_OMAP_USB_PHY
diff --git a/include/configs/dra7xx_evm.h b/include/configs/dra7xx_evm.h
index abfb888..2393efb 100644
--- a/include/configs/dra7xx_evm.h
+++ b/include/configs/dra7xx_evm.h
@@ -211,7 +211,6 @@
/* USB xHCI HOST */
#define CONFIG_USB_HOST
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_XHCI_OMAP
#define CONFIG_USB_STORAGE
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
diff --git a/include/configs/exynos5-common.h b/include/configs/exynos5-common.h
index b2ff4dd..e614a7f 100644
--- a/include/configs/exynos5-common.h
+++ b/include/configs/exynos5-common.h
@@ -157,7 +157,6 @@
/* USB */
#define CONFIG_USB_STORAGE
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
diff --git a/include/configs/ls1021aqds.h b/include/configs/ls1021aqds.h
index ac32240..1edf798 100644
--- a/include/configs/ls1021aqds.h
+++ b/include/configs/ls1021aqds.h
@@ -450,7 +450,6 @@ unsigned long get_board_ddr_clk(void);
#ifdef CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#endif
diff --git a/include/configs/ls1021atwr.h b/include/configs/ls1021atwr.h
index c38d680..30f5655 100644
--- a/include/configs/ls1021atwr.h
+++ b/include/configs/ls1021atwr.h
@@ -57,7 +57,6 @@
#ifdef CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#endif
diff --git a/include/configs/ls1043aqds.h b/include/configs/ls1043aqds.h
index e0a6368..4570938 100644
--- a/include/configs/ls1043aqds.h
+++ b/include/configs/ls1043aqds.h
@@ -389,7 +389,6 @@ unsigned long get_board_ddr_clk(void);
#define CONFIG_HAS_FSL_XHCI_USB
#ifdef CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
diff --git a/include/configs/ls1043ardb.h b/include/configs/ls1043ardb.h
index ebf3507..5aa8d51 100644
--- a/include/configs/ls1043ardb.h
+++ b/include/configs/ls1043ardb.h
@@ -278,7 +278,6 @@
#define CONFIG_HAS_FSL_XHCI_USB
#ifdef CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
diff --git a/include/configs/ls2080aqds.h b/include/configs/ls2080aqds.h
index f7a9e18..121a9a0 100644
--- a/include/configs/ls2080aqds.h
+++ b/include/configs/ls2080aqds.h
@@ -384,7 +384,6 @@ unsigned long get_board_ddr_clk(void);
*/
#define CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h
index d2de051..f8bb175 100644
--- a/include/configs/ls2080ardb.h
+++ b/include/configs/ls2080ardb.h
@@ -317,7 +317,6 @@ unsigned long get_board_sys_clk(void);
*/
#define CONFIG_HAS_FSL_XHCI_USB
#define CONFIG_USB_XHCI_FSL
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h
index 2292eb2..707106f 100644
--- a/include/configs/ti_armv7_keystone2.h
+++ b/include/configs/ti_armv7_keystone2.h
@@ -191,7 +191,6 @@
"-(ubifs)"
/* USB Configuration */
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_XHCI_KEYSTONE
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
index 4312e84..d0bf025 100644
--- a/include/configs/xilinx_zynqmp.h
+++ b/include/configs/xilinx_zynqmp.h
@@ -101,7 +101,6 @@
#define CONFIG_SYS_LOAD_ADDR 0x8000000
#if defined(CONFIG_ZYNQMP_USB)
-#define CONFIG_USB_XHCI_DWC3
#define CONFIG_USB_MAX_CONTROLLER_COUNT 1
#define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS 2
#define CONFIG_USB_STORAGE
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 04/13] usb: xhci: add struct devrequest declaration to xhci.h
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (2 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 03/13] usb: move CONFIG_USB_XHCI_DWC3 to Kconfig Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 17:42 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver Masahiro Yamada
` (9 subsequent siblings)
13 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
If xhci.h is included without include/usb.h, the compiler
complains like follows:
warning: 'struct devrequest' declared inside parameter list
We have two options to teach the compiler that devrequest is
a structure:
[1] Declare "struct devrequest;" in xhci.h
[2] Include <include/usb.h> from xhci.h
This commit takes [1] because nothing else in xhci.h depends on
include/usb.h. [2] would require the compiler additional header
parsing.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2:
- Rephrase git-log
drivers/usb/host/xhci.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 2afa386..16dd61a 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1252,6 +1252,8 @@ void xhci_acknowledge_event(struct xhci_ctrl *ctrl);
union xhci_trb *xhci_wait_for_event(struct xhci_ctrl *ctrl, trb_type expected);
int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe,
int length, void *buffer);
+
+struct devrequest;
int xhci_ctrl_tx(struct usb_device *udev, unsigned long pipe,
struct devrequest *req, int length, void *buffer);
int xhci_check_maxpacket(struct usb_device *udev);
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (3 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 04/13] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 17:45 ` Marek Vasut
2016-05-17 8:20 ` Roger Quadros
2016-05-16 12:51 ` [U-Boot] [PATCH v2 06/13] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
` (8 subsequent siblings)
13 siblings, 2 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Synopsys DWC3 IP generally works with an SoC-specific glue layer.
DT binding for that is like this:
usb3_glue {
compatible = "foo,dwc3";
...
usb3 {
compatible = "snps,dwc3";
...
};
};
The glue layer initializes some SoC-specific parts, then populates
the child DWC3 core. To see how it works, refer to
drivers/usb/dwc3/dwc3-exynos.c
drivers/usb/dwc3/dwc3-keystone.c
drivers/usb/dwc3/dwc3-omap.c
drivers/usb/dwc3/dwc3-st.c
of Linux Kernel.
This commit implements a driver compatible with "snps,dwc3", allowing
to use the same binding in U-Boot. The glue layer can be simply
implemented based on Simple Bus Uclass.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
---
Changes in v2: None
drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 70 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
index 33961cd..c7c8324 100644
--- a/drivers/usb/host/xhci-dwc3.c
+++ b/drivers/usb/host/xhci-dwc3.c
@@ -9,8 +9,13 @@
*/
#include <common.h>
-#include <asm/io.h>
+#include <dm/device.h>
+#include <mapmem.h>
+#include <linux/io.h>
#include <linux/usb/dwc3.h>
+#include <linux/sizes.h>
+
+#include "xhci.h"
void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
{
@@ -97,3 +102,67 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
GFLADJ_30MHZ(val));
}
+
+struct dwc3_priv {
+ struct xhci_ctrl ctrl; /* should be the first member */
+ void __iomem *regs;
+};
+
+static int dwc3_probe(struct udevice *dev)
+{
+ struct dwc3_priv *priv = dev_get_priv(dev);
+ struct xhci_hccr *hccr;
+ struct xhci_hcor *hcor;
+ fdt_addr_t base;
+ int ret;
+
+ base = dev_get_addr(dev);
+ if (base == FDT_ADDR_T_NONE)
+ return -EINVAL;
+
+ priv->regs = map_sysmem(base, SZ_32K);
+ if (!priv->regs)
+ return -ENOMEM;
+
+ hccr = priv->regs;
+
+ hcor = priv->regs + HC_LENGTH(xhci_readl(&hccr->cr_capbase));
+
+ ret = dwc3_core_init(priv->regs + DWC3_REG_OFFSET);
+ if (ret) {
+ puts("XHCI: failed to initialize controller\n");
+ return ret;
+ }
+
+ /* We are hard-coding DWC3 core to Host Mode */
+ dwc3_set_mode(priv->regs + DWC3_REG_OFFSET, DWC3_GCTL_PRTCAP_HOST);
+
+ return xhci_register(dev, hccr, hcor);
+}
+
+static int dwc3_remove(struct udevice *dev)
+{
+ struct dwc3_priv *priv = dev_get_priv(dev);
+
+ xhci_deregister(dev);
+ unmap_sysmem(priv->regs);
+
+ return 0;
+}
+
+static const struct udevice_id of_dwc3_match[] = {
+ { .compatible = "snps,dwc3" },
+ { .compatible = "synopsys,dwc3" },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(dwc3) = {
+ .name = "dwc3",
+ .id = UCLASS_USB,
+ .of_match = of_dwc3_match,
+ .probe = dwc3_probe,
+ .remove = dwc3_remove,
+ .ops = &xhci_usb_ops,
+ .priv_auto_alloc_size = sizeof(struct dwc3_priv),
+ .flags = DM_FLAG_ALLOC_PRIV_DMA,
+};
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 06/13] usb: dwc3: add UniPhier specific glue layer
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (4 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 17:45 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 07/13] ARM: uniphier: switch over to USB DM Masahiro Yamada
` (7 subsequent siblings)
13 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Add UniPhier platform specific glue layer to support USB3 Host mode
on Synopsys DWC3 IP.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
---
Changes in v2:
- Fix build error
- Add missing PHY reset deassert
drivers/usb/host/Kconfig | 7 +++
drivers/usb/host/Makefile | 1 +
drivers/usb/host/dwc3-uniphier.c | 119 +++++++++++++++++++++++++++++++++++++++
3 files changed, 127 insertions(+)
create mode 100644 drivers/usb/host/dwc3-uniphier.c
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 89580cc..a6645dd 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -24,6 +24,13 @@ config USB_XHCI_DWC3
Say Y or if your system has a Dual Role SuperSpeed
USB controller based on the DesignWare USB3 IP Core.
+config USB_DWC3_UNIPHIER
+ bool "DesignWare USB3 Host Support on UniPhier Platforms"
+ depends on ARCH_UNIPHIER && USB_XHCI_DWC3
+ help
+ Support of USB2/3 functionality in Socionext UniPhier platforms.
+ Say 'Y' here if you have one such device.
+
endif
config USB_OHCI_GENERIC
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 620d114..8b54fde 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -56,6 +56,7 @@ obj-$(CONFIG_USB_EHCI_ZYNQ) += ehci-zynq.o
# xhci
obj-$(CONFIG_USB_XHCI_HCD) += xhci.o xhci-mem.o xhci-ring.o
obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o
+obj-$(CONFIG_USB_DWC3_UNIPHIER) += dwc3-uniphier.o
obj-$(CONFIG_USB_XHCI_ZYNQMP) += xhci-zynqmp.o
obj-$(CONFIG_USB_XHCI_KEYSTONE) += xhci-keystone.o
obj-$(CONFIG_USB_XHCI_EXYNOS) += xhci-exynos5.o
diff --git a/drivers/usb/host/dwc3-uniphier.c b/drivers/usb/host/dwc3-uniphier.c
new file mode 100644
index 0000000..e0358ac
--- /dev/null
+++ b/drivers/usb/host/dwc3-uniphier.c
@@ -0,0 +1,119 @@
+/*
+ * UniPhier Specific Glue Layer for DWC3
+ *
+ * Copyright (C) 2016 Socionext Inc.
+ * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <mapmem.h>
+#include <dm/device.h>
+#include <linux/err.h>
+#include <linux/io.h>
+#include <linux/sizes.h>
+
+#define UNIPHIER_PRO4_DWC3_RESET 0x40
+#define UNIPHIER_PRO4_DWC3_RESET_XIOMMU BIT(5)
+#define UNIPHIER_PRO4_DWC3_RESET_XLINK BIT(4)
+#define UNIPHIER_PRO4_DWC3_RESET_PHY_SS BIT(2)
+
+#define UNIPHIER_PRO5_DWC3_RESET 0x00
+#define UNIPHIER_PRO5_DWC3_RESET_PHY_S1 BIT(17)
+#define UNIPHIER_PRO5_DWC3_RESET_PHY_S0 BIT(16)
+#define UNIPHIER_PRO5_DWC3_RESET_XLINK BIT(15)
+#define UNIPHIER_PRO5_DWC3_RESET_XIOMMU BIT(14)
+
+#define UNIPHIER_PXS2_DWC3_RESET 0x00
+#define UNIPHIER_PXS2_DWC3_RESET_XLINK BIT(15)
+
+static int uniphier_pro4_dwc3_init(void __iomem *regs)
+{
+ u32 tmp;
+
+ tmp = readl(regs + UNIPHIER_PRO4_DWC3_RESET);
+ tmp &= ~UNIPHIER_PRO4_DWC3_RESET_PHY_SS;
+ tmp |= UNIPHIER_PRO4_DWC3_RESET_XIOMMU | UNIPHIER_PRO4_DWC3_RESET_XLINK;
+ writel(tmp, regs + UNIPHIER_PRO4_DWC3_RESET);
+
+ return 0;
+}
+
+static int uniphier_pro5_dwc3_init(void __iomem *regs)
+{
+ u32 tmp;
+
+ tmp = readl(regs + UNIPHIER_PRO5_DWC3_RESET);
+ tmp &= ~(UNIPHIER_PRO5_DWC3_RESET_PHY_S1 |
+ UNIPHIER_PRO5_DWC3_RESET_PHY_S0);
+ tmp |= UNIPHIER_PRO5_DWC3_RESET_XLINK | UNIPHIER_PRO5_DWC3_RESET_XIOMMU;
+ writel(tmp, regs + UNIPHIER_PRO5_DWC3_RESET);
+
+ return 0;
+}
+
+static int uniphier_pxs2_dwc3_init(void __iomem *regs)
+{
+ u32 tmp;
+
+ tmp = readl(regs + UNIPHIER_PXS2_DWC3_RESET);
+ tmp |= UNIPHIER_PXS2_DWC3_RESET_XLINK;
+ writel(tmp, regs + UNIPHIER_PXS2_DWC3_RESET);
+
+ return 0;
+}
+
+static int uniphier_dwc3_probe(struct udevice *dev)
+{
+ fdt_addr_t base;
+ void __iomem *regs;
+ int (*init)(void __iomem *regs);
+ int ret;
+
+ base = dev_get_addr(dev);
+ if (base == FDT_ADDR_T_NONE)
+ return -EINVAL;
+
+ regs = map_sysmem(base, SZ_32K);
+ if (!regs)
+ return -ENOMEM;
+
+ init = (int (*)(void __iomem *regs))dev_get_driver_data(dev);
+ ret = init(regs);
+ if (ret) {
+ dev_err(dev, "failed to init glue layer\n");
+ return ret;
+ }
+
+ unmap_sysmem(regs);
+
+ return 0;
+}
+
+static const struct udevice_id uniphier_dwc3_match[] = {
+ {
+ .compatible = "socionext,uniphier-pro4-dwc3",
+ .data = (ulong)uniphier_pro4_dwc3_init,
+ },
+ {
+ .compatible = "socionext,uniphier-pro5-dwc3",
+ .data = (ulong)uniphier_pro5_dwc3_init,
+ },
+ {
+ .compatible = "socionext,uniphier-pxs2-dwc3",
+ .data = (ulong)uniphier_pxs2_dwc3_init,
+ },
+ {
+ .compatible = "socionext,uniphier-ld20-dwc3",
+ .data = (ulong)uniphier_pxs2_dwc3_init,
+ },
+ { /* sentinel */ }
+};
+
+U_BOOT_DRIVER(usb_xhci) = {
+ .name = "uniphier-dwc3",
+ .id = UCLASS_SIMPLE_BUS,
+ .of_match = uniphier_dwc3_match,
+ .probe = uniphier_dwc3_probe,
+};
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 07/13] ARM: uniphier: switch over to USB DM
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (5 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 06/13] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 08/13] ARM: uniphier: enable DWC3 xHCI driver Masahiro Yamada
` (6 subsequent siblings)
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Now UniPhier platform can completely switch over to Driver Model USB,
which allows ARCH_UNIPHIER select DM_USB. Drop CONFIG_DM_USB=y of
two of UniPhier defconfig files.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2: None
arch/arm/Kconfig | 1 +
configs/uniphier_ld4_sld8_defconfig | 1 -
configs/uniphier_sld3_defconfig | 1 -
3 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 6b65d8e..59410cb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -723,6 +723,7 @@ config ARCH_UNIPHIER
select DM_SERIAL
select DM_I2C
select DM_MMC
+ select DM_USB
help
Support for UniPhier SoC family developed by Socionext Inc.
(formerly, System LSI Business Division of Panasonic Corporation)
diff --git a/configs/uniphier_ld4_sld8_defconfig b/configs/uniphier_ld4_sld8_defconfig
index 22615a6..d13d112 100644
--- a/configs/uniphier_ld4_sld8_defconfig
+++ b/configs/uniphier_ld4_sld8_defconfig
@@ -31,7 +31,6 @@ CONFIG_PINCTRL=y
CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
-CONFIG_DM_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_STORAGE=y
diff --git a/configs/uniphier_sld3_defconfig b/configs/uniphier_sld3_defconfig
index 0965019..accbd8a 100644
--- a/configs/uniphier_sld3_defconfig
+++ b/configs/uniphier_sld3_defconfig
@@ -28,7 +28,6 @@ CONFIG_NAND_DENALI_SPARE_AREA_SKIP_BYTES=8
CONFIG_SPL_NAND_DENALI=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
-CONFIG_DM_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_STORAGE=y
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 08/13] ARM: uniphier: enable DWC3 xHCI driver
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (6 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 07/13] ARM: uniphier: switch over to USB DM Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 09/13] usb: uniphier: remove UniPhier " Masahiro Yamada
` (5 subsequent siblings)
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Enable CONFIGs for the DWC3 core and UniPhier specific glue layer.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2: None
configs/uniphier_ld20_defconfig | 2 ++
configs/uniphier_pro4_defconfig | 2 ++
configs/uniphier_pxs2_ld6b_defconfig | 2 ++
3 files changed, 6 insertions(+)
diff --git a/configs/uniphier_ld20_defconfig b/configs/uniphier_ld20_defconfig
index cbc65dd..ecf5649 100644
--- a/configs/uniphier_ld20_defconfig
+++ b/configs/uniphier_ld20_defconfig
@@ -27,4 +27,6 @@ CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
diff --git a/configs/uniphier_pro4_defconfig b/configs/uniphier_pro4_defconfig
index 18f4caf..c9d104b 100644
--- a/configs/uniphier_pro4_defconfig
+++ b/configs/uniphier_pro4_defconfig
@@ -31,4 +31,6 @@ CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
diff --git a/configs/uniphier_pxs2_ld6b_defconfig b/configs/uniphier_pxs2_ld6b_defconfig
index cf6d3e4..8356437 100644
--- a/configs/uniphier_pxs2_ld6b_defconfig
+++ b/configs/uniphier_pxs2_ld6b_defconfig
@@ -32,4 +32,6 @@ CONFIG_SPL_PINCTRL=y
CONFIG_UNIPHIER_SERIAL=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_DWC3_UNIPHIER=y
CONFIG_USB_STORAGE=y
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 09/13] usb: uniphier: remove UniPhier xHCI driver
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (7 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 08/13] ARM: uniphier: enable DWC3 xHCI driver Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 10/13] ARM: uniphier: delete unnecessary xHCI pin-mux settings Masahiro Yamada
` (4 subsequent siblings)
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
UniPhier platform switched to DWC3 core with UniPhier specific
glue layer to support USB3. This pre-DM driver is no longer
needed.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Marek Vasut <marex@denx.de>
---
Changes in v2: None
drivers/usb/host/Kconfig | 7 ----
drivers/usb/host/Makefile | 1 -
drivers/usb/host/xhci-uniphier.c | 85 ----------------------------------------
include/fdtdec.h | 1 -
lib/fdtdec.c | 1 -
5 files changed, 95 deletions(-)
delete mode 100644 drivers/usb/host/xhci-uniphier.c
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index a6645dd..3710588 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -11,13 +11,6 @@ config USB_XHCI_HCD
if USB_XHCI_HCD
-config USB_XHCI_UNIPHIER
- bool "Support for UniPhier on-chip xHCI USB controller"
- depends on ARCH_UNIPHIER
- default y
- ---help---
- Enables support for the on-chip xHCI controller on UniPhier SoCs.
-
config USB_XHCI_DWC3
bool "DesignWare USB3 DRD Core Support"
help
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 8b54fde..eb85650 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -63,7 +63,6 @@ obj-$(CONFIG_USB_XHCI_EXYNOS) += xhci-exynos5.o
obj-$(CONFIG_USB_XHCI_FSL) += xhci-fsl.o
obj-$(CONFIG_USB_XHCI_OMAP) += xhci-omap.o
obj-$(CONFIG_USB_XHCI_PCI) += xhci-pci.o
-obj-$(CONFIG_USB_XHCI_UNIPHIER) += xhci-uniphier.o
# designware
obj-$(CONFIG_USB_DWC2) += dwc2.o
diff --git a/drivers/usb/host/xhci-uniphier.c b/drivers/usb/host/xhci-uniphier.c
deleted file mode 100644
index 1b3f3d2..0000000
--- a/drivers/usb/host/xhci-uniphier.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * SPDX-License-Identifier: GPL-2.0+
- */
-
-#include <common.h>
-#include <linux/err.h>
-#include <linux/io.h>
-#include <usb.h>
-#include <fdtdec.h>
-#include "xhci.h"
-
-static int get_uniphier_xhci_base(int index, struct xhci_hccr **base)
-{
- DECLARE_GLOBAL_DATA_PTR;
- int node_list[2];
- fdt_addr_t addr;
- int count;
-
- count = fdtdec_find_aliases_for_id(gd->fdt_blob, "usb",
- COMPAT_SOCIONEXT_XHCI, node_list,
- ARRAY_SIZE(node_list));
-
- if (index >= count)
- return -ENODEV;
-
- addr = fdtdec_get_addr(gd->fdt_blob, node_list[index], "reg");
- if (addr == FDT_ADDR_T_NONE)
- return -ENODEV;
-
- *base = (struct xhci_hccr *)addr;
-
- return 0;
-}
-
-#define USB3_RST_CTRL 0x00100040
-#define IOMMU_RST_N (1 << 5)
-#define LINK_RST_N (1 << 4)
-
-static void uniphier_xhci_reset(void __iomem *base, int on)
-{
- u32 tmp;
-
- tmp = readl(base + USB3_RST_CTRL);
-
- if (on)
- tmp &= ~(IOMMU_RST_N | LINK_RST_N);
- else
- tmp |= IOMMU_RST_N | LINK_RST_N;
-
- writel(tmp, base + USB3_RST_CTRL);
-}
-
-int xhci_hcd_init(int index, struct xhci_hccr **hccr, struct xhci_hcor **hcor)
-{
- int ret;
- struct xhci_hccr *cr;
- struct xhci_hcor *or;
-
- ret = get_uniphier_xhci_base(index, &cr);
- if (ret < 0)
- return ret;
-
- uniphier_xhci_reset(cr, 0);
-
- or = (void *)cr + HC_LENGTH(xhci_readl(&cr->cr_capbase));
-
- *hccr = cr;
- *hcor = or;
-
- return 0;
-}
-
-void xhci_hcd_stop(int index)
-{
- int ret;
- struct xhci_hccr *cr;
-
- ret = get_uniphier_xhci_base(index, &cr);
- if (ret < 0)
- return;
-
- uniphier_xhci_reset(cr, 1);
-}
diff --git a/include/fdtdec.h b/include/fdtdec.h
index 37d482a..d1fddaa 100644
--- a/include/fdtdec.h
+++ b/include/fdtdec.h
@@ -158,7 +158,6 @@ enum fdt_compat_id {
COMPAT_AMS_AS3722, /* AMS AS3722 PMIC */
COMPAT_INTEL_ICH_SPI, /* Intel ICH7/9 SPI controller */
COMPAT_INTEL_QRK_MRC, /* Intel Quark MRC */
- COMPAT_SOCIONEXT_XHCI, /* Socionext UniPhier xHCI */
COMPAT_INTEL_PCH, /* Intel PCH */
COMPAT_ALTERA_SOCFPGA_DWMAC, /* SoCFPGA Ethernet controller */
COMPAT_ALTERA_SOCFPGA_DWMMC, /* SoCFPGA DWMMC controller */
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
index 70acc29..e316cc8 100644
--- a/lib/fdtdec.c
+++ b/lib/fdtdec.c
@@ -63,7 +63,6 @@ static const char * const compat_names[COMPAT_COUNT] = {
COMPAT(AMS_AS3722, "ams,as3722"),
COMPAT(INTEL_ICH_SPI, "intel,ich-spi"),
COMPAT(INTEL_QRK_MRC, "intel,quark-mrc"),
- COMPAT(SOCIONEXT_XHCI, "socionext,uniphier-xhci"),
COMPAT(COMPAT_INTEL_PCH, "intel,bd82x6x"),
COMPAT(ALTERA_SOCFPGA_DWMAC, "altr,socfpga-stmmac"),
COMPAT(ALTERA_SOCFPGA_DWMMC, "altr,socfpga-dw-mshc"),
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 10/13] ARM: uniphier: delete unnecessary xHCI pin-mux settings
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (8 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 09/13] usb: uniphier: remove UniPhier " Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 11/13] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG Masahiro Yamada
` (3 subsequent siblings)
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Now UniPhier platform switched over to the DM-based xHCI driver.
The pin-muxing for that is automatically cared by the pinctrl
driver. These ad-hoc pin-muxing code is no longer needed.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2: None
arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c | 12 ------------
arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c | 11 -----------
arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c | 7 -------
arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c | 7 -------
arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c | 11 -----------
5 files changed, 48 deletions(-)
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c
index 6066b16..0da280f 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c
@@ -31,16 +31,4 @@ void uniphier_ld20_pin_init(void)
sg_set_pinsel(17, 0, 8, 4); /* NFD7 -> NFD7 */
sg_set_iectrl_range(3, 17);
#endif
-
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(46, 0, 8, 4); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(47, 0, 8, 4); /* USB0OD -> USB0OD */
- sg_set_pinsel(48, 0, 8, 4); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(49, 0, 8, 4); /* USB1OD -> USB1OD */
- sg_set_pinsel(50, 0, 8, 4); /* USB2VBUS -> USB2VBUS */
- sg_set_pinsel(51, 0, 8, 4); /* USB2OD -> USB2OD */
- sg_set_pinsel(52, 0, 8, 4); /* USB3VBUS -> USB3VBUS */
- sg_set_pinsel(53, 0, 8, 4); /* USB3OD -> USB3OD */
- sg_set_iectrl_range(46, 53);
-#endif
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c
index 913722b..f3b7115 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c
@@ -32,15 +32,4 @@ void uniphier_ld6b_pin_init(void)
sg_set_pinsel(45, 0, 8, 4); /* NFD6 -> NFD6 */
sg_set_pinsel(46, 0, 8, 4); /* NFD7 -> NFD7 */
#endif
-
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(56, 0, 8, 4); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(57, 0, 8, 4); /* USB0OD -> USB0OD */
- sg_set_pinsel(58, 0, 8, 4); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(59, 0, 8, 4); /* USB1OD -> USB1OD */
- sg_set_pinsel(60, 0, 8, 4); /* USB2VBUS -> USB2VBUS */
- sg_set_pinsel(61, 0, 8, 4); /* USB2OD -> USB2OD */
- sg_set_pinsel(62, 0, 8, 4); /* USB3VBUS -> USB3VBUS */
- sg_set_pinsel(63, 0, 8, 4); /* USB3OD -> USB3OD */
-#endif
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c
index 3796491..871d3ef 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c
@@ -33,12 +33,5 @@ void uniphier_pro4_pin_init(void)
/* sg_set_pinsel(132, 1, 4, 8); */ /* TXD2 -> XNFCE1 */
#endif
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(180, 0, 4, 8); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(181, 0, 4, 8); /* USB0OD -> USB0OD */
- sg_set_pinsel(182, 0, 4, 8); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(183, 0, 4, 8); /* USB1OD -> USB1OD */
-#endif
-
writel(1, SG_LOADPINCTRL);
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c
index 32ba923..58dff18 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c
@@ -33,12 +33,5 @@ void uniphier_pro5_pin_init(void)
sg_set_pinsel(35, 0, 4, 8); /* NFD7 -> NFD7 */
#endif
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(124, 0, 4, 8); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(125, 0, 4, 8); /* USB0OD -> USB0OD */
- sg_set_pinsel(126, 0, 4, 8); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(127, 0, 4, 8); /* USB1OD -> USB1OD */
-#endif
-
writel(1, SG_LOADPINCTRL);
}
diff --git a/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c b/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c
index 2d62ab3..fc59205 100644
--- a/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c
+++ b/arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c
@@ -32,15 +32,4 @@ void uniphier_pxs2_pin_init(void)
sg_set_pinsel(45, 8, 8, 4); /* NFD6 -> NFD6 */
sg_set_pinsel(46, 8, 8, 4); /* NFD7 -> NFD7 */
#endif
-
-#ifdef CONFIG_USB_XHCI_UNIPHIER
- sg_set_pinsel(56, 8, 8, 4); /* USB0VBUS -> USB0VBUS */
- sg_set_pinsel(57, 8, 8, 4); /* USB0OD -> USB0OD */
- sg_set_pinsel(58, 8, 8, 4); /* USB1VBUS -> USB1VBUS */
- sg_set_pinsel(59, 8, 8, 4); /* USB1OD -> USB1OD */
- sg_set_pinsel(60, 8, 8, 4); /* USB2VBUS -> USB2VBUS */
- sg_set_pinsel(61, 8, 8, 4); /* USB2OD -> USB2OD */
- sg_set_pinsel(62, 8, 8, 4); /* USB3VBUS -> USB3VBUS */
- sg_set_pinsel(63, 8, 8, 4); /* USB3OD -> USB3OD */
-#endif
}
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 11/13] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (9 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 10/13] ARM: uniphier: delete unnecessary xHCI pin-mux settings Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 12/13] ARM: dts: uniphier: add/update xHCI nodes Masahiro Yamada
` (2 subsequent siblings)
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Now USB 3.0 feature is enabled/disabled by CONFIG_USB_DWC3_UNIPHIER.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2: None
arch/arm/mach-uniphier/clk/clk-pro4.c | 6 +++---
arch/arm/mach-uniphier/clk/clk-pro5.c | 6 +++---
arch/arm/mach-uniphier/clk/clk-pxs2.c | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/arch/arm/mach-uniphier/clk/clk-pro4.c b/arch/arm/mach-uniphier/clk/clk-pro4.c
index 8746d7d..6a01543 100644
--- a/arch/arm/mach-uniphier/clk/clk-pro4.c
+++ b/arch/arm/mach-uniphier/clk/clk-pro4.c
@@ -15,7 +15,7 @@ void uniphier_pro4_clk_init(void)
/* deassert reset */
tmp = readl(SC_RSTCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_USB3C0 |
SC_RSTCTRL_NRST_GIO;
#endif
@@ -31,7 +31,7 @@ void uniphier_pro4_clk_init(void)
writel(tmp, SC_RSTCTRL);
readl(SC_RSTCTRL); /* dummy read */
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp = readl(SC_RSTCTRL2);
tmp |= SC_RSTCTRL2_NRST_USB3B1 | SC_RSTCTRL2_NRST_USB3C1;
writel(tmp, SC_RSTCTRL2);
@@ -40,7 +40,7 @@ void uniphier_pro4_clk_init(void)
/* provide clocks */
tmp = readl(SC_CLKCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
SC_CLKCTRL_CEN_GIO;
#endif
diff --git a/arch/arm/mach-uniphier/clk/clk-pro5.c b/arch/arm/mach-uniphier/clk/clk-pro5.c
index 823bb06..dd86cad 100644
--- a/arch/arm/mach-uniphier/clk/clk-pro5.c
+++ b/arch/arm/mach-uniphier/clk/clk-pro5.c
@@ -15,7 +15,7 @@ void uniphier_pro5_clk_init(void)
/* deassert reset */
tmp = readl(SC_RSTCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
#endif
#ifdef CONFIG_NAND_DENALI
@@ -24,7 +24,7 @@ void uniphier_pro5_clk_init(void)
writel(tmp, SC_RSTCTRL);
readl(SC_RSTCTRL); /* dummy read */
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp = readl(SC_RSTCTRL2);
tmp |= SC_RSTCTRL2_NRST_USB3B1;
writel(tmp, SC_RSTCTRL2);
@@ -33,7 +33,7 @@ void uniphier_pro5_clk_init(void)
/* provide clocks */
tmp = readl(SC_CLKCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
SC_CLKCTRL_CEN_GIO;
#endif
diff --git a/arch/arm/mach-uniphier/clk/clk-pxs2.c b/arch/arm/mach-uniphier/clk/clk-pxs2.c
index 76bf856..3b50a20 100644
--- a/arch/arm/mach-uniphier/clk/clk-pxs2.c
+++ b/arch/arm/mach-uniphier/clk/clk-pxs2.c
@@ -15,7 +15,7 @@ void uniphier_pxs2_clk_init(void)
/* deassert reset */
tmp = readl(SC_RSTCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_RSTCTRL_NRST_USB3B0 | SC_RSTCTRL_NRST_GIO;
#endif
#ifdef CONFIG_UNIPHIER_ETH
@@ -27,7 +27,7 @@ void uniphier_pxs2_clk_init(void)
writel(tmp, SC_RSTCTRL);
readl(SC_RSTCTRL); /* dummy read */
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp = readl(SC_RSTCTRL2);
tmp |= SC_RSTCTRL2_NRST_USB3B1;
writel(tmp, SC_RSTCTRL2);
@@ -36,7 +36,7 @@ void uniphier_pxs2_clk_init(void)
/* provide clocks */
tmp = readl(SC_CLKCTRL);
-#ifdef CONFIG_USB_XHCI_UNIPHIER
+#ifdef CONFIG_USB_DWC3_UNIPHIER
tmp |= SC_CLKCTRL_CEN_USB31 | SC_CLKCTRL_CEN_USB30 |
SC_CLKCTRL_CEN_GIO;
#endif
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 12/13] ARM: dts: uniphier: add/update xHCI nodes
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (10 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 11/13] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 13/13] ARM: uniphier: enable Generic EHCI for PH1-Pro4 Masahiro Yamada
2016-05-16 14:46 ` [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Marek Vasut
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
Adjust xHCI nodes to use the DWC3 core and the SoC-specific glue
layer for former SoCs.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2: None
arch/arm/dts/uniphier-ph1-ld20.dtsi | 17 +++++++++++++++++
arch/arm/dts/uniphier-ph1-pro4-ref.dts | 4 ++++
arch/arm/dts/uniphier-ph1-pro4.dtsi | 32 ++++++++++++++++++++++++--------
arch/arm/dts/uniphier-ph1-pro5.dtsi | 32 ++++++++++++++++++++++++--------
arch/arm/dts/uniphier-proxstream2.dtsi | 32 ++++++++++++++++++++++++--------
5 files changed, 93 insertions(+), 24 deletions(-)
diff --git a/arch/arm/dts/uniphier-ph1-ld20.dtsi b/arch/arm/dts/uniphier-ph1-ld20.dtsi
index f9cc3c4..5e2b595 100644
--- a/arch/arm/dts/uniphier-ph1-ld20.dtsi
+++ b/arch/arm/dts/uniphier-ph1-ld20.dtsi
@@ -256,6 +256,23 @@
#interrupt-cells = <3>;
interrupts = <1 9 4>;
};
+
+ usb: usb at 65b00000 {
+ compatible = "socionext,uniphier-ld20-dwc3";
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
+ <&pinctrl_usb2>, <&pinctrl_usb3>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
+ };
};
};
diff --git a/arch/arm/dts/uniphier-ph1-pro4-ref.dts b/arch/arm/dts/uniphier-ph1-pro4-ref.dts
index 5be76e2..6cc5d1e 100644
--- a/arch/arm/dts/uniphier-ph1-pro4-ref.dts
+++ b/arch/arm/dts/uniphier-ph1-pro4-ref.dts
@@ -71,6 +71,10 @@
status = "okay";
};
+&usb1 {
+ status = "okay";
+};
+
&usb2 {
status = "okay";
};
diff --git a/arch/arm/dts/uniphier-ph1-pro4.dtsi b/arch/arm/dts/uniphier-ph1-pro4.dtsi
index d5767b6..7f42bc2 100644
--- a/arch/arm/dts/uniphier-ph1-pro4.dtsi
+++ b/arch/arm/dts/uniphier-ph1-pro4.dtsi
@@ -400,22 +400,38 @@
clocks = <&mio 4>, <&mio 6>;
};
- usb0: usb at 65a00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb0: usb at 65b00000 {
+ compatible = "socionext,uniphier-pro4-dwc3";
status = "disabled";
- reg = <0x65a00000 0x100>;
- interrupts = <0 134 4>;
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
};
- usb1: usb at 65c00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb1: usb at 65d00000 {
+ compatible = "socionext,uniphier-pro4-dwc3";
status = "disabled";
- reg = <0x65c00000 0x100>;
- interrupts = <0 137 4>;
+ reg = <0x65d00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>;
+ dwc3 at 65c00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65c00000 0x10000>;
+ interrupts = <0 137 4>;
+ tx-fifo-resize;
+ };
};
};
diff --git a/arch/arm/dts/uniphier-ph1-pro5.dtsi b/arch/arm/dts/uniphier-ph1-pro5.dtsi
index bd1b4b1..3036a76 100644
--- a/arch/arm/dts/uniphier-ph1-pro5.dtsi
+++ b/arch/arm/dts/uniphier-ph1-pro5.dtsi
@@ -379,22 +379,38 @@
bus-width = <4>;
};
- usb0: usb at 65a00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb0: usb at 65b00000 {
+ compatible = "socionext,uniphier-pro5-dwc3";
status = "disabled";
- reg = <0x65a00000 0x100>;
- interrupts = <0 134 4>;
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
};
- usb1: usb at 65c00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb1: usb at 65d00000 {
+ compatible = "socionext,uniphier-pro5-dwc3";
status = "disabled";
- reg = <0x65c00000 0x100>;
- interrupts = <0 137 4>;
+ reg = <0x65d00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb2>;
+ dwc3 at 65c00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65c00000 0x10000>;
+ interrupts = <0 137 4>;
+ tx-fifo-resize;
+ };
};
};
diff --git a/arch/arm/dts/uniphier-proxstream2.dtsi b/arch/arm/dts/uniphier-proxstream2.dtsi
index 12968bd..8cff09c 100644
--- a/arch/arm/dts/uniphier-proxstream2.dtsi
+++ b/arch/arm/dts/uniphier-proxstream2.dtsi
@@ -383,22 +383,38 @@
bus-width = <4>;
};
- usb0: usb at 65a00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb0: usb at 65b00000 {
+ compatible = "socionext,uniphier-pxs2-dwc3";
status = "disabled";
- reg = <0x65a00000 0x100>;
- interrupts = <0 134 4>;
+ reg = <0x65b00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
+ dwc3 at 65a00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65a00000 0x10000>;
+ interrupts = <0 134 4>;
+ tx-fifo-resize;
+ };
};
- usb1: usb at 65c00000 {
- compatible = "socionext,uniphier-xhci", "generic-xhci";
+ usb1: usb at 65d00000 {
+ compatible = "socionext,uniphier-pxs2-dwc3";
status = "disabled";
- reg = <0x65c00000 0x100>;
- interrupts = <0 137 4>;
+ reg = <0x65d00000 0x1000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
+ dwc3 at 65c00000 {
+ compatible = "snps,dwc3";
+ reg = <0x65c00000 0x10000>;
+ interrupts = <0 137 4>;
+ tx-fifo-resize;
+ };
};
};
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 13/13] ARM: uniphier: enable Generic EHCI for PH1-Pro4
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (11 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 12/13] ARM: dts: uniphier: add/update xHCI nodes Masahiro Yamada
@ 2016-05-16 12:51 ` Masahiro Yamada
2016-05-16 14:46 ` [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Marek Vasut
13 siblings, 0 replies; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-16 12:51 UTC (permalink / raw)
To: u-boot
On Driver Model USB, EHCI and xHCI can be enabled at the same time.
PH1-Pro4 SoC has two EHCI cores and two xHCI cores, so enable the
Generic EHCI driver.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
Changes in v2: None
configs/uniphier_pro4_defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/configs/uniphier_pro4_defconfig b/configs/uniphier_pro4_defconfig
index c9d104b..1e960b0 100644
--- a/configs/uniphier_pro4_defconfig
+++ b/configs/uniphier_pro4_defconfig
@@ -33,4 +33,6 @@ CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_DWC3_UNIPHIER=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_STORAGE=y
--
1.9.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
` (12 preceding siblings ...)
2016-05-16 12:51 ` [U-Boot] [PATCH v2 13/13] ARM: uniphier: enable Generic EHCI for PH1-Pro4 Masahiro Yamada
@ 2016-05-16 14:46 ` Marek Vasut
2016-05-17 11:01 ` Masahiro Yamada
13 siblings, 1 reply; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 14:46 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> Masahiro Yamada (13):
> configs: blackfin: move CONFIG_USB to defconfig
> usb: move CONFIG_USB_XHCI to Kconfig with renaming
> usb: move CONFIG_USB_XHCI_DWC3 to Kconfig
> usb: xhci: add struct devrequest declaration to xhci.h
> usb: dwc3: change DWC3 core support code into a driver
> usb: dwc3: add UniPhier specific glue layer
> ARM: uniphier: switch over to USB DM
> ARM: uniphier: enable DWC3 xHCI driver
> usb: uniphier: remove UniPhier xHCI driver
> ARM: uniphier: delete unnecessary xHCI pin-mux settings
> ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG
> ARM: dts: uniphier: add/update xHCI nodes
> ARM: uniphier: enable Generic EHCI for PH1-Pro4
>
> arch/arm/Kconfig | 1 +
> arch/arm/dts/uniphier-ph1-ld20.dtsi | 17 ++++
> arch/arm/dts/uniphier-ph1-pro4-ref.dts | 4 +
> arch/arm/dts/uniphier-ph1-pro4.dtsi | 32 ++++--
> arch/arm/dts/uniphier-ph1-pro5.dtsi | 32 ++++--
> arch/arm/dts/uniphier-proxstream2.dtsi | 32 ++++--
> arch/arm/mach-uniphier/clk/clk-pro4.c | 6 +-
> arch/arm/mach-uniphier/clk/clk-pro5.c | 6 +-
> arch/arm/mach-uniphier/clk/clk-pxs2.c | 6 +-
> arch/arm/mach-uniphier/pinctrl/pinctrl-ld20.c | 12 ---
> arch/arm/mach-uniphier/pinctrl/pinctrl-ld6b.c | 11 ---
> arch/arm/mach-uniphier/pinctrl/pinctrl-pro4.c | 7 --
> arch/arm/mach-uniphier/pinctrl/pinctrl-pro5.c | 7 --
> arch/arm/mach-uniphier/pinctrl/pinctrl-pxs2.c | 11 ---
> common/usb.c | 2 +-
> configs/am437x_gp_evm_defconfig | 2 +
> configs/am437x_sk_evm_defconfig | 2 +
> configs/am43xx_evm_defconfig | 2 +
> configs/am43xx_evm_ethboot_defconfig | 2 +
> configs/am43xx_evm_qspiboot_defconfig | 2 +
> configs/am43xx_evm_usbhost_boot_defconfig | 2 +
> configs/am57xx_evm_defconfig | 3 +
> configs/am57xx_evm_nodt_defconfig | 3 +
> configs/bf526-ezbrd_defconfig | 1 +
> configs/bf527-ezkit-v2_defconfig | 1 +
> configs/bf527-ezkit_defconfig | 1 +
> configs/bf548-ezkit_defconfig | 1 +
> configs/cm_t43_defconfig | 3 +
> configs/dra72_evm_defconfig | 2 +
> configs/dra74_evm_defconfig | 2 +
> configs/dra7xx_evm_defconfig | 2 +
> configs/dra7xx_evm_qspiboot_defconfig | 2 +
> configs/dra7xx_evm_uart3_defconfig | 2 +
> configs/k2e_evm_defconfig | 3 +
> configs/k2g_evm_defconfig | 3 +
> configs/k2hk_evm_defconfig | 3 +
> configs/k2l_evm_defconfig | 3 +
> configs/ls1021aqds_ddr4_nor_defconfig | 3 +
> configs/ls1021aqds_ddr4_nor_lpuart_defconfig | 3 +
> configs/ls1021aqds_nand_defconfig | 3 +
> configs/ls1021aqds_nor_SECURE_BOOT_defconfig | 3 +
> configs/ls1021aqds_nor_defconfig | 3 +
> configs/ls1021aqds_nor_lpuart_defconfig | 3 +
> configs/ls1021aqds_qspi_defconfig | 3 +
> configs/ls1021aqds_sdcard_ifc_defconfig | 3 +
> configs/ls1021aqds_sdcard_qspi_defconfig | 3 +
> configs/ls1021atwr_nor_SECURE_BOOT_defconfig | 3 +
> configs/ls1021atwr_nor_defconfig | 3 +
> configs/ls1021atwr_nor_lpuart_defconfig | 3 +
> configs/ls1021atwr_qspi_defconfig | 3 +
> configs/ls1021atwr_sdcard_ifc_defconfig | 3 +
> configs/ls1021atwr_sdcard_qspi_defconfig | 3 +
> configs/ls1043aqds_defconfig | 3 +
> configs/ls1043aqds_lpuart_defconfig | 3 +
> configs/ls1043aqds_nand_defconfig | 3 +
> configs/ls1043aqds_nor_ddr3_defconfig | 3 +
> configs/ls1043aqds_qspi_defconfig | 3 +
> configs/ls1043aqds_sdcard_ifc_defconfig | 3 +
> configs/ls1043aqds_sdcard_qspi_defconfig | 3 +
> configs/ls1043ardb_SECURE_BOOT_defconfig | 3 +
> configs/ls1043ardb_defconfig | 3 +
> configs/ls1043ardb_nand_defconfig | 3 +
> configs/ls1043ardb_sdcard_defconfig | 3 +
> configs/ls2080aqds_SECURE_BOOT_defconfig | 3 +
> configs/ls2080aqds_defconfig | 3 +
> configs/ls2080aqds_nand_defconfig | 3 +
> configs/ls2080ardb_SECURE_BOOT_defconfig | 3 +
> configs/ls2080ardb_defconfig | 3 +
> configs/ls2080ardb_nand_defconfig | 3 +
> configs/odroid-xu3_defconfig | 2 +
> configs/peach-pi_defconfig | 2 +
> configs/peach-pit_defconfig | 2 +
> configs/smdk5420_defconfig | 2 +
> configs/uniphier_ld20_defconfig | 2 +
> configs/uniphier_ld4_sld8_defconfig | 1 -
> configs/uniphier_pro4_defconfig | 4 +
> configs/uniphier_pxs2_ld6b_defconfig | 2 +
> configs/uniphier_sld3_defconfig | 1 -
> configs/xilinx_zynqmp_ep_defconfig | 2 +
> configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 2 +
> configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 2 +
> configs/xilinx_zynqmp_zcu102_defconfig | 2 +
> configs/xilinx_zynqmp_zcu102_revB_defconfig | 2 +
> drivers/usb/host/Kconfig | 24 ++---
> drivers/usb/host/Makefile | 4 +-
> drivers/usb/host/dwc3-uniphier.c | 119 +++++++++++++++++++++++
> drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++-
> drivers/usb/host/xhci-uniphier.c | 85 ----------------
> drivers/usb/host/xhci.h | 2 +
> include/configs/am43xx_evm.h | 2 -
> include/configs/am57xx_evm.h | 2 -
> include/configs/bf526-ezbrd.h | 1 -
> include/configs/bf527-ezkit.h | 1 -
> include/configs/bf548-ezkit.h | 1 -
> include/configs/cm_t43.h | 2 -
> include/configs/dra7xx_evm.h | 2 -
> include/configs/ds414.h | 3 +-
> include/configs/exynos5-common.h | 1 -
> include/configs/exynos5420-common.h | 1 -
> include/configs/ls1021aqds.h | 2 -
> include/configs/ls1021atwr.h | 2 -
> include/configs/ls1043aqds.h | 2 -
> include/configs/ls1043ardb.h | 2 -
> include/configs/ls2080aqds.h | 2 -
> include/configs/ls2080ardb.h | 2 -
> include/configs/smdk5420.h | 1 -
> include/configs/ti_armv7_keystone2.h | 2 -
> include/configs/xilinx_zynqmp.h | 2 -
> include/fdtdec.h | 1 -
> lib/fdtdec.c | 1 -
> 110 files changed, 479 insertions(+), 218 deletions(-)
> create mode 100644 drivers/usb/host/dwc3-uniphier.c
> delete mode 100644 drivers/usb/host/xhci-uniphier.c
>
CCing Roger, so he can check this series. I will review it later today
or tomorrow.
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig
2016-05-16 12:51 ` [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig Masahiro Yamada
@ 2016-05-16 17:41 ` Marek Vasut
0 siblings, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 17:41 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> These Blackfin boards are the last ones that define CONFIG_USB in
> their headers.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Applied, thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 02/13] usb: move CONFIG_USB_XHCI to Kconfig with renaming
2016-05-16 12:51 ` [U-Boot] [PATCH v2 02/13] usb: move CONFIG_USB_XHCI to Kconfig with renaming Masahiro Yamada
@ 2016-05-16 17:42 ` Marek Vasut
0 siblings, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 17:42 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> Move CONFIG_USB_XHCI to defconfig files for all boards, renaming it
> into CONFIG_USB_XHCI_HCD.
>
> As commented in the help of "config USB_XHCI" entry, this has been
> a TODO for a long time; now CONFIG_USB_XHCI_HCD and CONFIG_USB_XHCI
> have been unified in favor of the former.
>
> Note:
> Some boards define CONFIG_USB_XHCI in their headers without
> CONFIG_USB, which does not meet the "depends on" in Kconfig.
> I added CONFIG_USB=y for those boards when converting.
> Otherwise, they would fail to build.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Applied, thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 03/13] usb: move CONFIG_USB_XHCI_DWC3 to Kconfig
2016-05-16 12:51 ` [U-Boot] [PATCH v2 03/13] usb: move CONFIG_USB_XHCI_DWC3 to Kconfig Masahiro Yamada
@ 2016-05-16 17:42 ` Marek Vasut
0 siblings, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 17:42 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> Create an entry for "config USB_XHCI_DWC3" in Kconfig and
> switch over to it for all boards.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Applied, thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 04/13] usb: xhci: add struct devrequest declaration to xhci.h
2016-05-16 12:51 ` [U-Boot] [PATCH v2 04/13] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
@ 2016-05-16 17:42 ` Marek Vasut
0 siblings, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 17:42 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> If xhci.h is included without include/usb.h, the compiler
> complains like follows:
> warning: 'struct devrequest' declared inside parameter list
>
> We have two options to teach the compiler that devrequest is
> a structure:
>
> [1] Declare "struct devrequest;" in xhci.h
>
> [2] Include <include/usb.h> from xhci.h
>
> This commit takes [1] because nothing else in xhci.h depends on
> include/usb.h. [2] would require the compiler additional header
> parsing.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Applied, thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver
2016-05-16 12:51 ` [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver Masahiro Yamada
@ 2016-05-16 17:45 ` Marek Vasut
2016-05-17 8:20 ` Roger Quadros
1 sibling, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 17:45 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> Synopsys DWC3 IP generally works with an SoC-specific glue layer.
> DT binding for that is like this:
>
> usb3_glue {
> compatible = "foo,dwc3";
> ...
>
> usb3 {
> compatible = "snps,dwc3";
> ...
> };
> };
>
> The glue layer initializes some SoC-specific parts, then populates
> the child DWC3 core. To see how it works, refer to
>
> drivers/usb/dwc3/dwc3-exynos.c
> drivers/usb/dwc3/dwc3-keystone.c
> drivers/usb/dwc3/dwc3-omap.c
> drivers/usb/dwc3/dwc3-st.c
>
> of Linux Kernel.
>
> This commit implements a driver compatible with "snps,dwc3", allowing
> to use the same binding in U-Boot. The glue layer can be simply
> implemented based on Simple Bus Uclass.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> Reviewed-by: Marek Vasut <marex@denx.de>
> ---
Applied, thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 06/13] usb: dwc3: add UniPhier specific glue layer
2016-05-16 12:51 ` [U-Boot] [PATCH v2 06/13] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
@ 2016-05-16 17:45 ` Marek Vasut
0 siblings, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-16 17:45 UTC (permalink / raw)
To: u-boot
On 05/16/2016 02:51 PM, Masahiro Yamada wrote:
> Add UniPhier platform specific glue layer to support USB3 Host mode
> on Synopsys DWC3 IP.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> Reviewed-by: Marek Vasut <marex@denx.de>
> ---
>
> Changes in v2:
> - Fix build error
> - Add missing PHY reset deassert
Applied, thanks!
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver
2016-05-16 12:51 ` [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver Masahiro Yamada
2016-05-16 17:45 ` Marek Vasut
@ 2016-05-17 8:20 ` Roger Quadros
2016-05-17 8:57 ` Masahiro Yamada
1 sibling, 1 reply; 27+ messages in thread
From: Roger Quadros @ 2016-05-17 8:20 UTC (permalink / raw)
To: u-boot
Hi Masahiro,
On 16/05/16 15:51, Masahiro Yamada wrote:
> Synopsys DWC3 IP generally works with an SoC-specific glue layer.
> DT binding for that is like this:
>
> usb3_glue {
> compatible = "foo,dwc3";
> ...
>
> usb3 {
> compatible = "snps,dwc3";
> ...
> };
> };
>
> The glue layer initializes some SoC-specific parts, then populates
> the child DWC3 core. To see how it works, refer to
>
> drivers/usb/dwc3/dwc3-exynos.c
> drivers/usb/dwc3/dwc3-keystone.c
> drivers/usb/dwc3/dwc3-omap.c
> drivers/usb/dwc3/dwc3-st.c
>
> of Linux Kernel.
>
> This commit implements a driver compatible with "snps,dwc3", allowing
> to use the same binding in U-Boot. The glue layer can be simply
> implemented based on Simple Bus Uclass.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> Reviewed-by: Marek Vasut <marex@denx.de>
> ---
>
> Changes in v2: None
>
> drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++++++++++++++++++++++++++++++++-
"snps,dwc3" compatible is for the dual-role controller that implements both
device and host controllers. So calling the driver xhci-dwc3.c is a bit misleading.
> 1 file changed, 70 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
> index 33961cd..c7c8324 100644
> --- a/drivers/usb/host/xhci-dwc3.c
> +++ b/drivers/usb/host/xhci-dwc3.c
> @@ -9,8 +9,13 @@
> */
>
> #include <common.h>
> -#include <asm/io.h>
> +#include <dm/device.h>
> +#include <mapmem.h>
> +#include <linux/io.h>
> #include <linux/usb/dwc3.h>
> +#include <linux/sizes.h>
> +
> +#include "xhci.h"
>
> void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
> {
> @@ -97,3 +102,67 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
> setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
> GFLADJ_30MHZ(val));
> }
> +
> +struct dwc3_priv {
> + struct xhci_ctrl ctrl; /* should be the first member */
> + void __iomem *regs;
> +};
> +
> +static int dwc3_probe(struct udevice *dev)
> +{
> + struct dwc3_priv *priv = dev_get_priv(dev);
> + struct xhci_hccr *hccr;
> + struct xhci_hcor *hcor;
> + fdt_addr_t base;
> + int ret;
> +
> + base = dev_get_addr(dev);
> + if (base == FDT_ADDR_T_NONE)
> + return -EINVAL;
> +
> + priv->regs = map_sysmem(base, SZ_32K);
> + if (!priv->regs)
> + return -ENOMEM;
> +
> + hccr = priv->regs;
> +
> + hcor = priv->regs + HC_LENGTH(xhci_readl(&hccr->cr_capbase));
> +
> + ret = dwc3_core_init(priv->regs + DWC3_REG_OFFSET);
> + if (ret) {
> + puts("XHCI: failed to initialize controller\n");
> + return ret;
> + }
> +
> + /* We are hard-coding DWC3 core to Host Mode */
> + dwc3_set_mode(priv->regs + DWC3_REG_OFFSET, DWC3_GCTL_PRTCAP_HOST);
Why are we hard-coding it to host mode? We need to take into account
the dr_mode DT property and the Kconfig options to decide which mode
we can operate in.
> +
> + return xhci_register(dev, hccr, hcor);
> +}
> +
> +static int dwc3_remove(struct udevice *dev)
> +{
> + struct dwc3_priv *priv = dev_get_priv(dev);
> +
> + xhci_deregister(dev);
> + unmap_sysmem(priv->regs);
> +
> + return 0;
> +}
> +
> +static const struct udevice_id of_dwc3_match[] = {
> + { .compatible = "snps,dwc3" },
> + { .compatible = "synopsys,dwc3" },
> + { /* sentinel */ }
> +};
> +
> +U_BOOT_DRIVER(dwc3) = {
> + .name = "dwc3",
> + .id = UCLASS_USB,
> + .of_match = of_dwc3_match,
> + .probe = dwc3_probe,
> + .remove = dwc3_remove,
> + .ops = &xhci_usb_ops,
> + .priv_auto_alloc_size = sizeof(struct dwc3_priv),
> + .flags = DM_FLAG_ALLOC_PRIV_DMA,
> +};
>
cheers,
-roger
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver
2016-05-17 8:20 ` Roger Quadros
@ 2016-05-17 8:57 ` Masahiro Yamada
2016-05-17 10:22 ` Roger Quadros
0 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-17 8:57 UTC (permalink / raw)
To: u-boot
Hi Roger,
2016-05-17 17:20 GMT+09:00 Roger Quadros <rogerq@ti.com>:
> Hi Masahiro,
>
> On 16/05/16 15:51, Masahiro Yamada wrote:
>> Synopsys DWC3 IP generally works with an SoC-specific glue layer.
>> DT binding for that is like this:
>>
>> usb3_glue {
>> compatible = "foo,dwc3";
>> ...
>>
>> usb3 {
>> compatible = "snps,dwc3";
>> ...
>> };
>> };
>>
>> The glue layer initializes some SoC-specific parts, then populates
>> the child DWC3 core. To see how it works, refer to
>>
>> drivers/usb/dwc3/dwc3-exynos.c
>> drivers/usb/dwc3/dwc3-keystone.c
>> drivers/usb/dwc3/dwc3-omap.c
>> drivers/usb/dwc3/dwc3-st.c
>>
>> of Linux Kernel.
>>
>> This commit implements a driver compatible with "snps,dwc3", allowing
>> to use the same binding in U-Boot. The glue layer can be simply
>> implemented based on Simple Bus Uclass.
>>
>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>> Reviewed-by: Marek Vasut <marex@denx.de>
>> ---
>>
>> Changes in v2: None
>>
>> drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++++++++++++++++++++++++++++++++-
>
> "snps,dwc3" compatible is for the dual-role controller that implements both
> device and host controllers.
I know this fact.
The "snps,dwc3" on my SoC only works in host mode, though.
> So calling the driver xhci-dwc3.c is a bit misleading.
I think we have separate work for
- drivers/usb/host/xhci-dwc3.c (only for host mode)
- drivers/usb/dwc3/* (currently, for gadget ??)
This is unfortunate, though.
>> 1 file changed, 70 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
>> index 33961cd..c7c8324 100644
>> --- a/drivers/usb/host/xhci-dwc3.c
>> +++ b/drivers/usb/host/xhci-dwc3.c
>> @@ -9,8 +9,13 @@
>> */
>>
>> #include <common.h>
>> -#include <asm/io.h>
>> +#include <dm/device.h>
>> +#include <mapmem.h>
>> +#include <linux/io.h>
>> #include <linux/usb/dwc3.h>
>> +#include <linux/sizes.h>
>> +
>> +#include "xhci.h"
>>
>> void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
>> {
>> @@ -97,3 +102,67 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
>> setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
>> GFLADJ_30MHZ(val));
>> }
>> +
>> +struct dwc3_priv {
>> + struct xhci_ctrl ctrl; /* should be the first member */
>> + void __iomem *regs;
>> +};
>> +
>> +static int dwc3_probe(struct udevice *dev)
>> +{
>> + struct dwc3_priv *priv = dev_get_priv(dev);
>> + struct xhci_hccr *hccr;
>> + struct xhci_hcor *hcor;
>> + fdt_addr_t base;
>> + int ret;
>> +
>> + base = dev_get_addr(dev);
>> + if (base == FDT_ADDR_T_NONE)
>> + return -EINVAL;
>> +
>> + priv->regs = map_sysmem(base, SZ_32K);
>> + if (!priv->regs)
>> + return -ENOMEM;
>> +
>> + hccr = priv->regs;
>> +
>> + hcor = priv->regs + HC_LENGTH(xhci_readl(&hccr->cr_capbase));
>> +
>> + ret = dwc3_core_init(priv->regs + DWC3_REG_OFFSET);
>> + if (ret) {
>> + puts("XHCI: failed to initialize controller\n");
>> + return ret;
>> + }
>> +
>> + /* We are hard-coding DWC3 core to Host Mode */
>> + dwc3_set_mode(priv->regs + DWC3_REG_OFFSET, DWC3_GCTL_PRTCAP_HOST);
>
> Why are we hard-coding it to host mode?
Because this file is used for host mode.
It is enabled by CONFIG_USB_XHCI_DWC3, like follows.
obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o
Boards defining CONFIG_USB_XHCI_DWC3 expect
this driver works in the host mode, I guess.
> We need to take into account
> the dr_mode DT property and the Kconfig options to decide which mode
> we can operate in.
I thought drivers/usb/dwc3/* was working only for GADGET,
because currently USB_DWC3 depends on (USB && USB_GADGET).
As far as I understand, it will work for host mode with your series applied.
Correct?
If so, cool!
I am happy to move to drivers/usb/dwc3/*.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver
2016-05-17 8:57 ` Masahiro Yamada
@ 2016-05-17 10:22 ` Roger Quadros
0 siblings, 0 replies; 27+ messages in thread
From: Roger Quadros @ 2016-05-17 10:22 UTC (permalink / raw)
To: u-boot
On 17/05/16 11:57, Masahiro Yamada wrote:
> Hi Roger,
>
>
> 2016-05-17 17:20 GMT+09:00 Roger Quadros <rogerq@ti.com>:
>> Hi Masahiro,
>>
>> On 16/05/16 15:51, Masahiro Yamada wrote:
>>> Synopsys DWC3 IP generally works with an SoC-specific glue layer.
>>> DT binding for that is like this:
>>>
>>> usb3_glue {
>>> compatible = "foo,dwc3";
>>> ...
>>>
>>> usb3 {
>>> compatible = "snps,dwc3";
>>> ...
>>> };
>>> };
>>>
>>> The glue layer initializes some SoC-specific parts, then populates
>>> the child DWC3 core. To see how it works, refer to
>>>
>>> drivers/usb/dwc3/dwc3-exynos.c
>>> drivers/usb/dwc3/dwc3-keystone.c
>>> drivers/usb/dwc3/dwc3-omap.c
>>> drivers/usb/dwc3/dwc3-st.c
>>>
>>> of Linux Kernel.
>>>
>>> This commit implements a driver compatible with "snps,dwc3", allowing
>>> to use the same binding in U-Boot. The glue layer can be simply
>>> implemented based on Simple Bus Uclass.
>>>
>>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
>>> Reviewed-by: Marek Vasut <marex@denx.de>
>>> ---
>>>
>>> Changes in v2: None
>>>
>>> drivers/usb/host/xhci-dwc3.c | 71 +++++++++++++++++++++++++++++++++++++++++++-
>>
>> "snps,dwc3" compatible is for the dual-role controller that implements both
>> device and host controllers.
>
> I know this fact.
> The "snps,dwc3" on my SoC only works in host mode, though.
>
>
>> So calling the driver xhci-dwc3.c is a bit misleading.
>
>
>
> I think we have separate work for
> - drivers/usb/host/xhci-dwc3.c (only for host mode)
> - drivers/usb/dwc3/* (currently, for gadget ??)
>
> This is unfortunate, though.
If we use the same compatible for both host and gadget, how do we specify
in the device tree which driver to probe?
>
>
>>> 1 file changed, 70 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/usb/host/xhci-dwc3.c b/drivers/usb/host/xhci-dwc3.c
>>> index 33961cd..c7c8324 100644
>>> --- a/drivers/usb/host/xhci-dwc3.c
>>> +++ b/drivers/usb/host/xhci-dwc3.c
>>> @@ -9,8 +9,13 @@
>>> */
>>>
>>> #include <common.h>
>>> -#include <asm/io.h>
>>> +#include <dm/device.h>
>>> +#include <mapmem.h>
>>> +#include <linux/io.h>
>>> #include <linux/usb/dwc3.h>
>>> +#include <linux/sizes.h>
>>> +
>>> +#include "xhci.h"
>>>
>>> void dwc3_set_mode(struct dwc3 *dwc3_reg, u32 mode)
>>> {
>>> @@ -97,3 +102,67 @@ void dwc3_set_fladj(struct dwc3 *dwc3_reg, u32 val)
>>> setbits_le32(&dwc3_reg->g_fladj, GFLADJ_30MHZ_REG_SEL |
>>> GFLADJ_30MHZ(val));
>>> }
>>> +
>>> +struct dwc3_priv {
>>> + struct xhci_ctrl ctrl; /* should be the first member */
>>> + void __iomem *regs;
>>> +};
>>> +
>>> +static int dwc3_probe(struct udevice *dev)
>>> +{
>>> + struct dwc3_priv *priv = dev_get_priv(dev);
>>> + struct xhci_hccr *hccr;
>>> + struct xhci_hcor *hcor;
>>> + fdt_addr_t base;
>>> + int ret;
>>> +
>>> + base = dev_get_addr(dev);
>>> + if (base == FDT_ADDR_T_NONE)
>>> + return -EINVAL;
>>> +
>>> + priv->regs = map_sysmem(base, SZ_32K);
>>> + if (!priv->regs)
>>> + return -ENOMEM;
>>> +
>>> + hccr = priv->regs;
>>> +
>>> + hcor = priv->regs + HC_LENGTH(xhci_readl(&hccr->cr_capbase));
>>> +
>>> + ret = dwc3_core_init(priv->regs + DWC3_REG_OFFSET);
>>> + if (ret) {
>>> + puts("XHCI: failed to initialize controller\n");
>>> + return ret;
>>> + }
>>> +
>>> + /* We are hard-coding DWC3 core to Host Mode */
>>> + dwc3_set_mode(priv->regs + DWC3_REG_OFFSET, DWC3_GCTL_PRTCAP_HOST);
>>
>> Why are we hard-coding it to host mode?
>
> Because this file is used for host mode.
> It is enabled by CONFIG_USB_XHCI_DWC3, like follows.
>
> obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o
>
> Boards defining CONFIG_USB_XHCI_DWC3 expect
> this driver works in the host mode, I guess.
OK as part of code will only be called for host mode.
>
>
>> We need to take into account
>> the dr_mode DT property and the Kconfig options to decide which mode
>> we can operate in.
>
>
> I thought drivers/usb/dwc3/* was working only for GADGET,
> because currently USB_DWC3 depends on (USB && USB_GADGET).
>
> As far as I understand, it will work for host mode with your series applied.
> Correct?
I'm still unsure as to how all this fits in.
>
> If so, cool!
> I am happy to move to drivers/usb/dwc3/*.
>
Maybe Marek can share his view.
cheers,
-roger
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
2016-05-16 14:46 ` [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Marek Vasut
@ 2016-05-17 11:01 ` Masahiro Yamada
2016-05-19 6:46 ` Masahiro Yamada
0 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-17 11:01 UTC (permalink / raw)
To: u-boot
Hi Marek,
2016-05-16 23:46 GMT+09:00 Marek Vasut <marex@denx.de>:
>> delete mode 100644 drivers/usb/host/xhci-uniphier.c
>>
> CCing Roger, so he can check this series. I will review it later today
> or tomorrow.
>
01-03 are probably OK, but 04- might have conflicts with
Roger's work.
Maybe we should take our time to figure out how we should arrange this.
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
2016-05-17 11:01 ` Masahiro Yamada
@ 2016-05-19 6:46 ` Masahiro Yamada
2016-05-19 15:20 ` Marek Vasut
0 siblings, 1 reply; 27+ messages in thread
From: Masahiro Yamada @ 2016-05-19 6:46 UTC (permalink / raw)
To: u-boot
Hi Marek,
2016-05-17 20:01 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> Hi Marek,
>
>
> 2016-05-16 23:46 GMT+09:00 Marek Vasut <marex@denx.de>:
>
>>> delete mode 100644 drivers/usb/host/xhci-uniphier.c
>>>
>> CCing Roger, so he can check this series. I will review it later today
>> or tomorrow.
>>
>
> 01-03 are probably OK, but 04- might have conflicts with
> Roger's work.
>
> Maybe we should take our time to figure out how we should arrange this.
Could you drop 04- from your repository, for now?
Perhaps, we should discuss this DWC3 topic more carefully?
--
Best Regards
Masahiro Yamada
^ permalink raw reply [flat|nested] 27+ messages in thread
* [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM
2016-05-19 6:46 ` Masahiro Yamada
@ 2016-05-19 15:20 ` Marek Vasut
0 siblings, 0 replies; 27+ messages in thread
From: Marek Vasut @ 2016-05-19 15:20 UTC (permalink / raw)
To: u-boot
On 05/19/2016 08:46 AM, Masahiro Yamada wrote:
> Hi Marek,
>
> 2016-05-17 20:01 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
>> Hi Marek,
>>
>>
>> 2016-05-16 23:46 GMT+09:00 Marek Vasut <marex@denx.de>:
>>
>>>> delete mode 100644 drivers/usb/host/xhci-uniphier.c
>>>>
>>> CCing Roger, so he can check this series. I will review it later today
>>> or tomorrow.
>>>
>>
>> 01-03 are probably OK, but 04- might have conflicts with
>> Roger's work.
>>
>> Maybe we should take our time to figure out how we should arrange this.
>
>
> Could you drop 04- from your repository, for now?
>
> Perhaps, we should discuss this DWC3 topic more carefully?
>
>
Dropped
--
Best regards,
Marek Vasut
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2016-05-19 15:20 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-16 12:51 [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 01/13] configs: blackfin: move CONFIG_USB to defconfig Masahiro Yamada
2016-05-16 17:41 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 02/13] usb: move CONFIG_USB_XHCI to Kconfig with renaming Masahiro Yamada
2016-05-16 17:42 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 03/13] usb: move CONFIG_USB_XHCI_DWC3 to Kconfig Masahiro Yamada
2016-05-16 17:42 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 04/13] usb: xhci: add struct devrequest declaration to xhci.h Masahiro Yamada
2016-05-16 17:42 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 05/13] usb: dwc3: change DWC3 core support code into a driver Masahiro Yamada
2016-05-16 17:45 ` Marek Vasut
2016-05-17 8:20 ` Roger Quadros
2016-05-17 8:57 ` Masahiro Yamada
2016-05-17 10:22 ` Roger Quadros
2016-05-16 12:51 ` [U-Boot] [PATCH v2 06/13] usb: dwc3: add UniPhier specific glue layer Masahiro Yamada
2016-05-16 17:45 ` Marek Vasut
2016-05-16 12:51 ` [U-Boot] [PATCH v2 07/13] ARM: uniphier: switch over to USB DM Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 08/13] ARM: uniphier: enable DWC3 xHCI driver Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 09/13] usb: uniphier: remove UniPhier " Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 10/13] ARM: uniphier: delete unnecessary xHCI pin-mux settings Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 11/13] ARM: uniphier: adjust ifdefs for new UniPhier DWC3 CONFIG Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 12/13] ARM: dts: uniphier: add/update xHCI nodes Masahiro Yamada
2016-05-16 12:51 ` [U-Boot] [PATCH v2 13/13] ARM: uniphier: enable Generic EHCI for PH1-Pro4 Masahiro Yamada
2016-05-16 14:46 ` [U-Boot] [PATCH v2 00/13] usb: dwc3: rework DWC3 and convert UniPhier xHCI driver to DM Marek Vasut
2016-05-17 11:01 ` Masahiro Yamada
2016-05-19 6:46 ` Masahiro Yamada
2016-05-19 15:20 ` Marek Vasut
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.