usb: dwc3: Add Qualcomm DWC3 glue driver
authorManu Gautam <mgautam@codeaurora.org>
Wed, 9 May 2018 17:39:20 +0000 (23:09 +0530)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Tue, 15 May 2018 07:20:13 +0000 (10:20 +0300)
commita4333c3a6ba9ca9cff50a3c1d1bf193dc5489e1c
treed792c14cf37fd01b9da36bb82285abb3166364e8
parentc18aba9005b064ac6d14db4b52b5209d1a40f584
usb: dwc3: Add Qualcomm DWC3 glue driver

DWC3 controller on Qualcomm SOCs has a Qscratch wrapper.
Some of its uses are described below resulting in need to
have a separate glue driver instead of using dwc3-of-simple:
 - It exposes register interface to override vbus-override
   and lane0-pwr-present signals going to hardware. These
   must be updated in peripheral mode for DWC3 if vbus lines
   are not connected to hardware block. Otherwise RX termination
   in SS mode or DP pull-up is not applied by device controller.
 - pwr_events_irq_stat support to check if USB2 PHY is in L2 state
   before glue driver proceeds with suspend.
 - Support for wakeup interrupts lines that are asserted whenever
   there is any wakeup event on USB3 or USB2 bus.
 - Support to replace pip3 clock going to DWC3 with utmi clock
   for hardware configuration where SSPHY is not used with DWC3.

Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
drivers/usb/dwc3/Kconfig
drivers/usb/dwc3/Makefile
drivers/usb/dwc3/dwc3-of-simple.c
drivers/usb/dwc3/dwc3-qcom.c [new file with mode: 0644]