This patch set introduce new Cadence USBSS DRD driver to linux kernel. The Cadence USBSS DRD Driver s 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 burned. We have support for PCIe bus, which is used on FPGA prototyping. The host site of USBSS controller is compliance with XHCI specification, so it works with standard XHCI linux driver. --- Pawel Laszczak (14): usb:cdns3: add pci to platform driver wrapper. usb:cdns3: Device side header file. usb:cdns3: Driver initialization code. usb:cdns3: Added DRD support usb:cdns3: Added Wrapper to XCHI driver usb:cdns3: Initialization code for Device side usb:cdns3: Implements device operations part of the API usb:cdns3: EpX operations part of the API usb:cdns3: Ep0 operations part of the API usb:cdns3: Implements ISR functionality. usb:cdns3: Adds enumeration related function. usb:cdns3: Adds transfer related function. usb:cdns3: Adds debugging function. usb:cdns3: Feature for changing role drivers/usb/Kconfig | 2 + drivers/usb/Makefile | 2 + drivers/usb/cdns3/Kconfig | 44 + drivers/usb/cdns3/Makefile | 7 + drivers/usb/cdns3/cdns3-pci-wrap.c | 162 +++ drivers/usb/cdns3/core.c | 381 +++++++ drivers/usb/cdns3/core.h | 88 ++ drivers/usb/cdns3/debug.c | 128 +++ drivers/usb/cdns3/debugfs.c | 94 ++ drivers/usb/cdns3/drd.c | 219 ++++ drivers/usb/cdns3/drd.h | 125 +++ drivers/usb/cdns3/ep0.c | 855 ++++++++++++++ drivers/usb/cdns3/gadget-export.h | 27 + drivers/usb/cdns3/gadget.c | 1649 ++++++++++++++++++++++++++++ drivers/usb/cdns3/gadget.h | 1100 +++++++++++++++++++ drivers/usb/cdns3/host-export.h | 30 + drivers/usb/cdns3/host.c | 252 +++++ 17 files changed, 5165 insertions(+) create mode 100644 drivers/usb/cdns3/Kconfig create mode 100644 drivers/usb/cdns3/Makefile create mode 100644 drivers/usb/cdns3/cdns3-pci-wrap.c create mode 100644 drivers/usb/cdns3/core.c create mode 100644 drivers/usb/cdns3/core.h create mode 100644 drivers/usb/cdns3/debug.c create mode 100644 drivers/usb/cdns3/debugfs.c create mode 100644 drivers/usb/cdns3/drd.c create mode 100644 drivers/usb/cdns3/drd.h create mode 100644 drivers/usb/cdns3/ep0.c create mode 100644 drivers/usb/cdns3/gadget-export.h create mode 100644 drivers/usb/cdns3/gadget.c create mode 100644 drivers/usb/cdns3/gadget.h create mode 100644 drivers/usb/cdns3/host-export.h create mode 100644 drivers/usb/cdns3/host.c -- 2.17.1