usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver
authorPawel Laszczak <pawell@cadence.com>
Mon, 7 Dec 2020 10:32:24 +0000 (11:32 +0100)
committerPeter Chen <peter.chen@nxp.com>
Tue, 29 Dec 2020 04:36:13 +0000 (12:36 +0800)
commit3d82904559f4f5a2622db1b21de3edf2eded7664
treea06f42704976fa6b5fed6178416fcea7cf9eee6e
parente93e58d2740282d32c0278fab283eb0ae158bb59
usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver

This patch introduces the main part of Cadence USBSSP DRD driver
to Linux kernel.
To reduce the patch size a little bit, the header file gadget.h was
intentionally added as separate patch.

The Cadence USBSSP DRD Controller is a highly configurable IP Core which
can be instantiated as Dual-Role Device (DRD), Peripheral Only and
Host Only (XHCI)configurations.

The current driver has been validated with FPGA platform. We have
support for PCIe bus, which is used on FPGA prototyping.

The host side of USBSS DRD controller is compliant with XHCI.
The architecture for device side is almost the same as for host side,
and most of the XHCI specification can be used to understand how
this controller operates.

Signed-off-by: Pawel Laszczak <pawell@cadence.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
15 files changed:
drivers/usb/Makefile
drivers/usb/cdns3/Kconfig
drivers/usb/cdns3/Makefile
drivers/usb/cdns3/cdnsp-ep0.c [new file with mode: 0644]
drivers/usb/cdns3/cdnsp-gadget.c [new file with mode: 0644]
drivers/usb/cdns3/cdnsp-gadget.h
drivers/usb/cdns3/cdnsp-mem.c [new file with mode: 0644]
drivers/usb/cdns3/cdnsp-pci.c [new file with mode: 0644]
drivers/usb/cdns3/cdnsp-ring.c [new file with mode: 0644]
drivers/usb/cdns3/core.c
drivers/usb/cdns3/core.h
drivers/usb/cdns3/drd.c
drivers/usb/cdns3/drd.h
drivers/usb/cdns3/gadget-export.h
drivers/usb/cdns3/host-export.h