usb: dwc3: Support Synopsys USB 3.1 IP
authorJohn Youn <John.Youn@synopsys.com>
Sat, 5 Sep 2015 02:15:10 +0000 (19:15 -0700)
committerFelipe Balbi <balbi@ti.com>
Fri, 9 Oct 2015 21:06:58 +0000 (16:06 -0500)
commit690fb3718a70c66004342f6f5e2e8a5f95b977db
treec157df6a98ce524145fbe0796bef705c18e1149c
parente8095a25364a30216ad40dbe8893ed5c3c235949
usb: dwc3: Support Synopsys USB 3.1 IP

This patch allows the dwc3 driver to run on the new Synopsys USB 3.1
IP core, albeit in USB 3.0 mode only.

The Synopsys USB 3.1 IP (DWC_usb31) retains mostly the same register
interface and programming model as the existing USB 3.0 controller IP
(DWC_usb3). However the GSNPSID and version numbers are different.

Add checking for the new ID to pass driver probe.

Also, since the DWC_usb31 version number is lower in value than the
full GSNPSID of the DWC_usb3 IP, we set the high bit to identify
DWC_usb31 and to ensure the values are higher.

Finally, add a documentation note about the revision numbering scheme.
Any future revision checks (for STARS, workarounds, and new features)
should take into consideration how it applies to both the 3.1/3.0 IP.

Cc: <stable@vger.kernel.org> # v3.18+
Signed-off-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/core.c
drivers/usb/dwc3/core.h