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/[email protected]/msg1272880.html Feedback and guidance would be greatly appreciated! thanks -john Cc: Wei Xu <[email protected]> Cc: Guodong Xu <[email protected]> Cc: Amit Pundir <[email protected]> Cc: Rob Herring <[email protected]> Cc: John Youn <[email protected]> Cc: Douglas Anderson <[email protected]> Cc: Chen Yu <[email protected]> Cc: Kishon Vijay Abraham I <[email protected]> Cc: Felipe Balbi <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: [email protected] 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

