[U-Boot] [RESEND PATCH v3 00/18] Improvement for the DWC3 USB generic driver and fixes for the K2 platforms
Jean-Jacques Hiblot
jjhiblot at ti.com
Thu Jun 27 13:06:16 UTC 2019
Resend after rebasing on top of latest u-boot
The K2 platforms have shown boot issues after switching to the DWC3 generic
driver. Those are due to the fact that the USB domains are not turned off
before booting linux and the phy were not properly initialized. Fixing it
by improving the DWC3-generic driver and handling the USB power domain in
the PHY driver.
At the same time this series introduce a new uclass (UCLASS_NOP) to replace
usage of UCLASS_MISC in the USB wrapper because the MISC class now
automatically binds all the child devices and that breaks the DWC3-generic
driver.
Improvements to the DWC3 generic driver are:
- Fix it by switching to UCLASS_NOP
- core: read quirks properties from DT and apply the fixes.
- add a new host driver that uses the DWC3 core (more generic than
xhci-dwc3). This should enable most platforms to drop their own version
of the xhci-driver to use the generic one instead.
This series also removes the now unused xhci-zynqmp driver and tries to
better manage the Kconfig options related to DWC3 gadget/host mode
selection.
This has been tested with K2 and DRA7 platforms (host and device modes).
Travis build: https://travis-ci.org/jjhiblot/u-boot/builds/515282720
Changes in v3:
- updated log message when defaulting to super speed
Changes in v2:
Add a test for the NOP uclass
Update commit log
Select USB_GADGET_DUALSPEED if USB_DWC3_GADGET is selected
Jean-Jacques Hiblot (18):
usb: dwc3-generic: remove dm_scan_fdt_dev() from the remove() callback
usb: host: remove the xhci-zynqmp driver
dm: Add a No-op uclass
usb: dwc3: Use UCLASS_NOP instead of UCLASS_MISC for the DWC3 generic
glue
usb: dwc3: switch to peripheral mode when exiting
usb: xhci: move xhci.h to include usb
usb: dwc3: always use the inlined version of
dwc3_host_init/dwc3_host_exit
usb: dwc3-generic: use platdata
usb: dwc3-generic: factorize code
usb: dwc3-generic: add a new host driver that uses the dwc3 core
usb: dwc3-generic: if no max speed is specified in DT, assume super
speed
usb: dwc3: Add dwc3_of_parse() to get quirks information from DT
usb: dwc3: Kconfig: get rid of obsolete mode selection
ARM: keystone: increase PSC timeout
ARM: keystone: Do not enable the USB power domains at the board level
phy: keystone-usb: handle the transition of the USB power domain
configs: k2g_evm_defconfig: disable XHCI_DWC3 and enable
KEYSTONE_USB_PHY
ARM: DTS: keystone: complete the description of the USB PHY devices
MAINTAINERS | 1 +
arch/arm/dts/keystone-k2e-evm-u-boot.dtsi | 32 ++++
arch/arm/dts/keystone-k2g-evm-u-boot.dtsi | 28 ++++
arch/arm/dts/keystone-k2hk-evm-u-boot.dtsi | 14 ++
arch/arm/dts/keystone-k2l-evm-u-boot.dtsi | 18 +++
.../arm/mach-keystone/include/mach/psc_defs.h | 2 +-
arch/sandbox/dts/test.dts | 12 ++
board/ti/ks2_evm/board.c | 13 --
configs/avnet_ultra96_rev1_defconfig | 1 -
configs/evb-rk3328_defconfig | 1 +
configs/k2g_evm_defconfig | 3 +-
.../xilinx_zynqmp_zc1751_xm015_dc1_defconfig | 1 -
.../xilinx_zynqmp_zc1751_xm016_dc2_defconfig | 1 -
.../xilinx_zynqmp_zc1751_xm017_dc3_defconfig | 1 -
configs/xilinx_zynqmp_zcu100_revC_defconfig | 1 -
configs/xilinx_zynqmp_zcu102_rev1_0_defconfig | 1 -
configs/xilinx_zynqmp_zcu102_revA_defconfig | 1 -
configs/xilinx_zynqmp_zcu102_revB_defconfig | 1 -
configs/xilinx_zynqmp_zcu104_revA_defconfig | 1 -
configs/xilinx_zynqmp_zcu104_revC_defconfig | 1 -
configs/xilinx_zynqmp_zcu106_revA_defconfig | 1 -
configs/xilinx_zynqmp_zcu111_revA_defconfig | 1 -
drivers/core/uclass.c | 5 +
drivers/phy/keystone-usb-phy.c | 22 +++
drivers/usb/dwc3/Kconfig | 18 +--
drivers/usb/dwc3/core.c | 84 +++++++++-
drivers/usb/dwc3/core.h | 6 +-
drivers/usb/dwc3/dwc3-generic.c | 150 ++++++++++++++----
drivers/usb/host/Kconfig | 7 -
drivers/usb/host/Makefile | 1 -
drivers/usb/host/xhci-dwc3.c | 2 +-
drivers/usb/host/xhci-exynos5.c | 2 +-
drivers/usb/host/xhci-fsl.c | 2 +-
drivers/usb/host/xhci-mem.c | 2 +-
drivers/usb/host/xhci-mvebu.c | 2 +-
drivers/usb/host/xhci-omap.c | 2 +-
drivers/usb/host/xhci-pci.c | 2 +-
drivers/usb/host/xhci-rcar.c | 2 +-
drivers/usb/host/xhci-ring.c | 2 +-
drivers/usb/host/xhci-rockchip.c | 2 +-
drivers/usb/host/xhci-zynqmp.c | 146 -----------------
drivers/usb/host/xhci.c | 2 +-
drivers/usb/phy/omap_usb_phy.c | 2 +-
include/dm/uclass-id.h | 1 +
{drivers/usb/host => include/usb}/xhci.h | 0
test/dm/Makefile | 1 +
test/dm/nop.c | 73 +++++++++
47 files changed, 421 insertions(+), 253 deletions(-)
create mode 100644 arch/arm/dts/keystone-k2l-evm-u-boot.dtsi
delete mode 100644 drivers/usb/host/xhci-zynqmp.c
rename {drivers/usb/host => include/usb}/xhci.h (100%)
create mode 100644 test/dm/nop.c
--
2.17.1
More information about the U-Boot
mailing list