public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 00/18] Improvement for the DWC3 USB generic driver and fixes for the K2 platforms
@ 2019-05-13 14:30 Jean-Jacques Hiblot
  2019-05-13 14:30 ` [U-Boot] [PATCH v2 01/18] usb: dwc3-generic: remove dm_scan_fdt_dev() from the remove() callback Jean-Jacques Hiblot
                   ` (18 more replies)
  0 siblings, 19 replies; 27+ messages in thread
From: Jean-Jacques Hiblot @ 2019-05-13 14:30 UTC (permalink / raw)
  To: 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.

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 v2:
- Add a test for the NOP uclass
- Update commit logs
- 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

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2019-05-22  6:12 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-13 14:30 [U-Boot] [PATCH v2 00/18] Improvement for the DWC3 USB generic driver and fixes for the K2 platforms Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 01/18] usb: dwc3-generic: remove dm_scan_fdt_dev() from the remove() callback Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 02/18] usb: host: remove the xhci-zynqmp driver Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 03/18] dm: Add a No-op uclass Jean-Jacques Hiblot
2019-05-18 16:08   ` Simon Glass
2019-05-13 14:30 ` [U-Boot] [PATCH v2 04/18] usb: dwc3: Use UCLASS_NOP instead of UCLASS_MISC for the DWC3 generic glue Jean-Jacques Hiblot
2019-05-18 16:08   ` Simon Glass
2019-05-13 14:30 ` [U-Boot] [PATCH v2 05/18] usb: dwc3: switch to peripheral mode when exiting Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 06/18] usb: xhci: move xhci.h to include usb Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 07/18] usb: dwc3: always use the inlined version of dwc3_host_init/dwc3_host_exit Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 08/18] usb: dwc3-generic: use platdata Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 09/18] usb: dwc3-generic: factorize code Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 10/18] usb: dwc3-generic: add a new host driver that uses the dwc3 core Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 11/18] usb: dwc3-generic: if no max speed is specified in DT, assume super speed Jean-Jacques Hiblot
2019-05-13 17:25   ` Marek Vasut
2019-05-13 14:30 ` [U-Boot] [PATCH v2 12/18] usb: dwc3: Add dwc3_of_parse() to get quirks information from DT Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 13/18] usb: dwc3: Kconfig: get rid of obsolete mode selection Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 14/18] ARM: keystone: increase PSC timeout Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 15/18] ARM: keystone: Do not enable the USB power domains at the board level Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 16/18] phy: keystone-usb: handle the transition of the USB power domain Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 17/18] configs: k2g_evm_defconfig: disable XHCI_DWC3 and enable KEYSTONE_USB_PHY Jean-Jacques Hiblot
2019-05-13 14:30 ` [U-Boot] [PATCH v2 18/18] ARM: DTS: keystone: complete the description of the USB PHY devices Jean-Jacques Hiblot
2019-05-21 11:36 ` [U-Boot] [PATCH v2 00/18] Improvement for the DWC3 USB generic driver and fixes for the K2 platforms Siva Durga Prasad Paladugu
2019-05-21 12:21   ` Lukasz Majewski
2019-05-22  6:12     ` Siva Durga Prasad Paladugu
2019-05-21 12:44   ` Marek Vasut
2019-05-22  5:54     ` Siva Durga Prasad Paladugu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox