From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Jacques Hiblot Date: Mon, 29 Apr 2019 11:09:20 +0200 Subject: [U-Boot] [PATCH v1 00/18] Improvement for the DWC3 USB generic driver and fixes for the K2 platforms In-Reply-To: <20190405125554.18070-1-jjhiblot@ti.com> References: <20190405125554.18070-1-jjhiblot@ti.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Marek, This series fixes the linux boot on the K2 platforms. without it the K2 platforms are broken. Can you give it a look please ? Thanks, JJ On 05/04/2019 14:55, Jean-Jacques Hiblot wrote: > 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. > > 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 > > > 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 +- > 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 | 20 +-- > 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 > 44 files changed, 335 insertions(+), 255 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%) >