Message ID | 20200928122741.17884-1-pawell@cadence.com |
---|---|
Headers | show |
Series | Introduced new Cadence USBSSP DRD Driver. | expand |
On 20-09-28 14:27:33, Pawel Laszczak wrote: > This patch introduce new Cadence USBSS DRD driver to linux kernel. > > The Cadence USBSS 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 burned. We have support > for PCIe bus, which is used on FPGA prototyping. > > The host side of USBSS-DRD controller is compliance with XHCI > specification, so it works with standard XHCI Linux driver. > > The host side of USBSS DRD controller is compliant with XHCI. The device side? > 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. > > This controller and driver support Full Speed, Hight Speed, Supper Speed > and Supper Speed Plus USB protocol. > > The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. > The last letter of this acronym means PLUS. The formal name of controller > is USBSSP but it's to generic so I've decided to use CDNSP. > > The patch 1: adds support for DRD CDNSP. > The patch 2: separates common code that can be reusable by cdnsp driver. > The patch 3: moves reusable code to separate module. > The patch 4: changes prefixes in reusable code frome cdns3 to common cdns. > The patch 5: adopts gadget_dev pointer in cdns structure to make possible > use it in both drivers. > The patches 6-8: add the main part of driver and has been intentionally > split into 3 part. In my opinion such division should not > affect understanding and reviewing the driver, and cause that > main patch (7/8) is little smaller. Patch 6 introduces main > header file for driver, 7 is the main part that implements all > functionality of driver and 8 introduces tracepoints. > > --- > > Pawel Laszczak (7): > usb: cdns3: Add support for DRD CDNSP > usb: cdns3: Split core.c into cdns3-plat and core.c file > usb: cdns3: Moves reusable code to separate module > usb: cdns3: Refactoring names in reusable code > usb: cdns3: Changed type of gadget_dev in cdns structure > usb: cdnsp: Device side header file for CDNSP driver > usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver > usb: cdnsp: Add tracepoints for CDNSP driver > > drivers/usb/Kconfig | 1 + > drivers/usb/Makefile | 1 + > drivers/usb/cdns3/Kconfig | 8 + > drivers/usb/cdns3/Makefile | 8 +- > drivers/usb/cdns3/cdns3-plat.c | 209 +++ > drivers/usb/cdns3/core.c | 336 ++-- > drivers/usb/cdns3/core.h | 51 +- > drivers/usb/cdns3/drd.c | 219 ++- > drivers/usb/cdns3/drd.h | 93 +- > drivers/usb/cdns3/gadget-export.h | 26 +- > drivers/usb/cdns3/gadget.c | 29 +- > drivers/usb/cdns3/host-export.h | 10 +- > drivers/usb/cdns3/host.c | 23 +- > drivers/usb/cdnsp/Kconfig | 40 + > drivers/usb/cdnsp/Makefile | 12 + > drivers/usb/cdnsp/cdnsp-pci.c | 247 +++ > drivers/usb/cdnsp/debug.h | 583 +++++++ > drivers/usb/cdnsp/ep0.c | 500 ++++++ > drivers/usb/cdnsp/gadget.c | 2009 ++++++++++++++++++++++++ > drivers/usb/cdnsp/gadget.h | 1598 +++++++++++++++++++ > drivers/usb/cdnsp/mem.c | 1326 ++++++++++++++++ > drivers/usb/cdnsp/ring.c | 2426 +++++++++++++++++++++++++++++ > drivers/usb/cdnsp/trace.c | 12 + > drivers/usb/cdnsp/trace.h | 840 ++++++++++ > 24 files changed, 10228 insertions(+), 379 deletions(-) > create mode 100644 drivers/usb/cdns3/cdns3-plat.c > create mode 100644 drivers/usb/cdnsp/Kconfig > create mode 100644 drivers/usb/cdnsp/Makefile > create mode 100644 drivers/usb/cdnsp/cdnsp-pci.c > create mode 100644 drivers/usb/cdnsp/debug.h > create mode 100644 drivers/usb/cdnsp/ep0.c > create mode 100644 drivers/usb/cdnsp/gadget.c > create mode 100644 drivers/usb/cdnsp/gadget.h > create mode 100644 drivers/usb/cdnsp/mem.c > create mode 100644 drivers/usb/cdnsp/ring.c > create mode 100644 drivers/usb/cdnsp/trace.c > create mode 100644 drivers/usb/cdnsp/trace.h > > -- > 2.17.1 > -- Thanks, Peter Chen
>On 20-09-28 14:27:33, Pawel Laszczak wrote: >> This patch introduce new Cadence USBSS DRD driver to linux kernel. >> >> The Cadence USBSS 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 burned. We have support >> for PCIe bus, which is used on FPGA prototyping. >> >> The host side of USBSS-DRD controller is compliance with XHCI >> specification, so it works with standard XHCI Linux driver. >> >> The host side of USBSS DRD controller is compliant with XHCI. > >The device side? Yes, it should be device side. Thanks > >> 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. >> >> This controller and driver support Full Speed, Hight Speed, Supper Speed >> and Supper Speed Plus USB protocol. >> >> The prefix cdnsp used in driver has chosen by analogy to cdn3 driver. >> The last letter of this acronym means PLUS. The formal name of controller >> is USBSSP but it's to generic so I've decided to use CDNSP. >> >> The patch 1: adds support for DRD CDNSP. >> The patch 2: separates common code that can be reusable by cdnsp driver. >> The patch 3: moves reusable code to separate module. >> The patch 4: changes prefixes in reusable code frome cdns3 to common cdns. >> The patch 5: adopts gadget_dev pointer in cdns structure to make possible >> use it in both drivers. >> The patches 6-8: add the main part of driver and has been intentionally >> split into 3 part. In my opinion such division should not >> affect understanding and reviewing the driver, and cause that >> main patch (7/8) is little smaller. Patch 6 introduces main >> header file for driver, 7 is the main part that implements all >> functionality of driver and 8 introduces tracepoints. >> >> --- >> >> Pawel Laszczak (7): >> usb: cdns3: Add support for DRD CDNSP >> usb: cdns3: Split core.c into cdns3-plat and core.c file >> usb: cdns3: Moves reusable code to separate module >> usb: cdns3: Refactoring names in reusable code >> usb: cdns3: Changed type of gadget_dev in cdns structure >> usb: cdnsp: Device side header file for CDNSP driver >> usb: cdnsp: cdns3 Add main part of Cadence USBSSP DRD Driver >> usb: cdnsp: Add tracepoints for CDNSP driver >> >> drivers/usb/Kconfig | 1 + >> drivers/usb/Makefile | 1 + >> drivers/usb/cdns3/Kconfig | 8 + >> drivers/usb/cdns3/Makefile | 8 +- >> drivers/usb/cdns3/cdns3-plat.c | 209 +++ >> drivers/usb/cdns3/core.c | 336 ++-- >> drivers/usb/cdns3/core.h | 51 +- >> drivers/usb/cdns3/drd.c | 219 ++- >> drivers/usb/cdns3/drd.h | 93 +- >> drivers/usb/cdns3/gadget-export.h | 26 +- >> drivers/usb/cdns3/gadget.c | 29 +- >> drivers/usb/cdns3/host-export.h | 10 +- >> drivers/usb/cdns3/host.c | 23 +- >> drivers/usb/cdnsp/Kconfig | 40 + >> drivers/usb/cdnsp/Makefile | 12 + >> drivers/usb/cdnsp/cdnsp-pci.c | 247 +++ >> drivers/usb/cdnsp/debug.h | 583 +++++++ >> drivers/usb/cdnsp/ep0.c | 500 ++++++ >> drivers/usb/cdnsp/gadget.c | 2009 ++++++++++++++++++++++++ >> drivers/usb/cdnsp/gadget.h | 1598 +++++++++++++++++++ >> drivers/usb/cdnsp/mem.c | 1326 ++++++++++++++++ >> drivers/usb/cdnsp/ring.c | 2426 +++++++++++++++++++++++++++++ >> drivers/usb/cdnsp/trace.c | 12 + >> drivers/usb/cdnsp/trace.h | 840 ++++++++++ >> 24 files changed, 10228 insertions(+), 379 deletions(-) >> create mode 100644 drivers/usb/cdns3/cdns3-plat.c >> create mode 100644 drivers/usb/cdnsp/Kconfig >> create mode 100644 drivers/usb/cdnsp/Makefile >> create mode 100644 drivers/usb/cdnsp/cdnsp-pci.c >> create mode 100644 drivers/usb/cdnsp/debug.h >> create mode 100644 drivers/usb/cdnsp/ep0.c >> create mode 100644 drivers/usb/cdnsp/gadget.c >> create mode 100644 drivers/usb/cdnsp/gadget.h >> create mode 100644 drivers/usb/cdnsp/mem.c >> create mode 100644 drivers/usb/cdnsp/ring.c >> create mode 100644 drivers/usb/cdnsp/trace.c >> create mode 100644 drivers/usb/cdnsp/trace.h >> >> -- >> 2.17.1 >> > >-- > >Thanks, >Peter Chen