This series aims at bringing improvements to the dwc3_generic driver so that it can be used by most of the platforms using the dwc3 controller.
I tested this on with DRA7 and AM57x platforms for both Peripheral and Host operations. The code to enable DM USB host & dev support for those platforms will be submitted in a separate series. Michal Simek has tested this series: " I have tested it on zcu100 with usb stick, usb to ethernet converter and also dfu. Tested-by: Michal Simek <michal.si...@xilinx.com>" Enhancements: - use separate Kconfig option for DM USB Periphal and DM USB Host. This allow platforms to keep their non-DM USB peripheral code and use the DM USB host. - fixes the bind/probe confusion in dwc3_generic. The probe is done when the USB device is first needed. - handles PHYs when in the peripheral mode. The code to handle the PHYs is shared with the host side - handles clock and reset - bind host controller to the more generic driver 'xhci-dwc3' Changes in v4: - rebased on latest U-Boot - renamed DM_USB_DEV as DM_USB_GADGET - Add a new commit to create a new UCLASS for USB gadget drivers Changes in v3: - fixes bug dwc3_setup_phy(): the phy arrays wasn't returned. This was visible only when the device is removed. - Stub the DWC3 PHY operations if CONFIG_IS_ENABLED(PHY) is false. This fixes all build issues but one (evb-rk3328). - Fix build issue with evb-rk3328 by enabling CONFIG_USB_DWC3. This has little impact on the footprint and should not break the runtime as the xhci-rockchip driver has its own probe function. Nevertheless this was !!! NOT TESTED !!! by lack of hw Changes in v2: - Updated commit log - Fixed typo in thordown.c - select DM_USB_DEV by default for zynqmp platforms Jean-Jacques Hiblot (10): usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers usb: introduce a separate config option for DM USB device usb: udc: implement DM versions of usb_gadget_initialize()/_release()/_handle_interrupt() dwc3_generic: do not probe the USB device driver when it's bound dwc3: move phy operation to core.c dm: usb: create a new UCLASS ID for USB gadget devices configs: evb-rk3328: Enable CONFIG_USB_DWC3 dwc3-generic: Handle the PHYs, the clocks and the reset lines dwc3-generic: Add select_dr_mode operation usb: dwc3: Fix a compilation error with the edison defconfig arch/arm/Kconfig | 2 + board/sunxi/board.c | 2 +- cmd/fastboot.c | 4 +- cmd/rockusb.c | 4 +- cmd/thordown.c | 4 +- cmd/usb_gadget_sdp.c | 4 +- cmd/usb_mass_storage.c | 4 +- common/dfu.c | 6 +- configs/evb-rk3328_defconfig | 1 + drivers/usb/Kconfig | 14 +++ drivers/usb/dwc3/Kconfig | 7 +- drivers/usb/dwc3/core.c | 89 ++++++++++++++- drivers/usb/dwc3/dwc3-generic.c | 208 ++++++++++++++++++++++++++++-------- drivers/usb/dwc3/ep0.c | 2 +- drivers/usb/gadget/ether.c | 40 ++----- drivers/usb/gadget/udc/Makefile | 4 + drivers/usb/gadget/udc/udc-core.c | 3 +- drivers/usb/gadget/udc/udc-uclass.c | 58 ++++++++++ drivers/usb/host/xhci-dwc3.c | 95 ++-------------- drivers/usb/musb-new/omap2430.c | 2 +- drivers/usb/musb-new/sunxi.c | 2 +- include/dm/uclass-id.h | 1 + include/dwc3-uboot.h | 19 ++++ include/linux/usb/gadget.h | 18 ++++ 24 files changed, 401 insertions(+), 192 deletions(-) create mode 100644 drivers/usb/gadget/udc/udc-uclass.c -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot