[PATCH 00/31] Introduced new Cadence USBSSP DRD Driver
From: Pawel Laszczak
Date: Thu Jul 19 2018 - 13:59:34 EST
This patch set introduce new Cadence USBSSP DRD driver
to linux kernel.
The Cadence USBSSP 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 USBSSP controller is compliance
with XHCI specification, so it works with
standard XHCI linux driver.
Also, device side of USBSSP controller was designed
in such way to looks like XHCI. It means that
most of logic of USBSSP controller is also compliance
with XHCI specification.
Consequently, the USBSSP driver for peripheral mode
is very similar to XHCI driver.
This version of driver supports only Device mode but
DRD and Host mode will be added in the future.
---
Pawel Laszczak (31):
usb: usbssp: Defined register maps and other useful structures.
usb: usbssp: Added some decoding functions.
usb: usbssp: Add trace events used in driver
usb: usbssp: Added USBSSP platform driver
usb: usbssp: Added first part of initialization sequence.
usb: usbssp: added template functions used by upper layer.
usb: usbssp: Initialization - added usbssp_mem_init
usb: usbssp: Added ring and segment handling functions.
usb: usbssp: add implementation of usbssp_mem_cleanup
usb: usbssp: added usbssp_trb_in_td function.
usb: usbssp: added function for stopping driver.
usb: usbssp: added functions for queuing commands.
usb: usbssp: addec procedure for handlin Port Status Change events.
usb: usbssp: added procedure handling command completion events.
usb: usbssp: added device controller error, transfer and SETUP
completion event.
usb: usbssp: added connect/disconnect procedures.
usb: usbssp: added implementation of usbssp_halt_endpoint function.
usb: usbssp: added handling of Port Reset event.
usb: usbssp: added support for USB enumeration process.
usb: usbssp: added queuing procedure for control transfer.
usb: usbssp: added queuing procedure for BULK and INT transfer.
usb: usbssp: added procedure removing request from transfer ring
usb: usbssp: added implementation of transfer events.
usb: usbssp: added detecting command timeout.
usb: usbssp: added implementation of usbssp interface.
usb: usbssp: added endpoint configuration functionality.
usb: usbssp: implements usbssp_gadget_ep_enable function
usb: usbssp: implemented usbssp_gadget_ep_disable function.
usb: usbssp: added support for LPM.
usb: usbssp: added support for TEST_MODE.
usb: usbssp: add pci to platform driver wrapper.
drivers/usb/Kconfig | 2 +
drivers/usb/Makefile | 2 +
drivers/usb/usbssp/Kconfig | 29 +
drivers/usb/usbssp/Makefile | 15 +
drivers/usb/usbssp/gadget-dbg.c | 39 +
drivers/usb/usbssp/gadget-ep0.c | 571 +++++
drivers/usb/usbssp/gadget-ext-caps.h | 102 +
drivers/usb/usbssp/gadget-if.c | 569 +++++
drivers/usb/usbssp/gadget-mem.c | 1938 +++++++++++++++
drivers/usb/usbssp/gadget-port.c | 287 +++
drivers/usb/usbssp/gadget-ring.c | 3452 ++++++++++++++++++++++++++
drivers/usb/usbssp/gadget-trace.c | 13 +
drivers/usb/usbssp/gadget-trace.h | 482 ++++
drivers/usb/usbssp/gadget.c | 1909 ++++++++++++++
drivers/usb/usbssp/gadget.h | 2373 ++++++++++++++++++
drivers/usb/usbssp/usbssp-pci-wrap.c | 226 ++
drivers/usb/usbssp/usbssp-plat.c | 186 ++
17 files changed, 12195 insertions(+)
create mode 100644 drivers/usb/usbssp/Kconfig
create mode 100644 drivers/usb/usbssp/Makefile
create mode 100644 drivers/usb/usbssp/gadget-dbg.c
create mode 100644 drivers/usb/usbssp/gadget-ep0.c
create mode 100644 drivers/usb/usbssp/gadget-ext-caps.h
create mode 100644 drivers/usb/usbssp/gadget-if.c
create mode 100644 drivers/usb/usbssp/gadget-mem.c
create mode 100644 drivers/usb/usbssp/gadget-port.c
create mode 100644 drivers/usb/usbssp/gadget-ring.c
create mode 100644 drivers/usb/usbssp/gadget-trace.c
create mode 100644 drivers/usb/usbssp/gadget-trace.h
create mode 100644 drivers/usb/usbssp/gadget.c
create mode 100644 drivers/usb/usbssp/gadget.h
create mode 100644 drivers/usb/usbssp/usbssp-pci-wrap.c
create mode 100644 drivers/usb/usbssp/usbssp-plat.c
--
2.17.1