After earlier attempts[1] at submitting somewhat hackish fixes to the dwc2 driver, I realized the core issue seemed to be the overly simplistic phy driver. I've connected the phy-hi6220-usb.c driver to extcon so it now gets connection and disconnection signals on the usb gadget cable. And I modified the driver so it registers a usb-phy and calls usb_gadget_vbus_connect/disconnect() appropriately. Unfortunately this doesn't quite work with the dwc2 driver, so I've hacked that driver to allow it to function. With these changes, while likely not correct, things function well, and I was able to drop two of the hackish fixups from the earlier set. I still needed one patch to keep the usb bus from suspending while in gadget mode, so I've included that in this series. [1]: http://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1272880.html Feedback and guidance would be greatly appreciated! thanks -john Cc: Wei Xu <xuwei5@xxxxxxxxxxxxx> Cc: Guodong Xu <guodong.xu@xxxxxxxxxx> Cc: Amit Pundir <amit.pundir@xxxxxxxxxx> Cc: Rob Herring <robh+dt@xxxxxxxxxx> Cc: John Youn <johnyoun@xxxxxxxxxxxx> Cc: Douglas Anderson <dianders@xxxxxxxxxxxx> Cc: Chen Yu <chenyu56@xxxxxxxxxx> Cc: Kishon Vijay Abraham I <kishon@xxxxxx> Cc: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: linux-usb@xxxxxxxxxxxxxxx John Stultz (3): phy: phy-hi6220-usb: Wire up extconn support to hikey's phy driver HACK: dwc2: force dual use of uphy and phy usb: dwc2: Avoid suspending if we're in gadget mode arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 11 +++ drivers/phy/Kconfig | 2 + drivers/phy/phy-hi6220-usb.c | 139 ++++++++++++++++++++++++++++++ drivers/usb/dwc2/hcd.c | 3 + drivers/usb/dwc2/platform.c | 4 +- 5 files changed, 157 insertions(+), 2 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html