3d82904559
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>
123 lines
3.3 KiB
Plaintext
123 lines
3.3 KiB
Plaintext
config USB_CDNS_SUPPORT
|
|
tristate "Cadence USB Support"
|
|
depends on USB_SUPPORT && (USB || USB_GADGET) && HAS_DMA
|
|
select USB_XHCI_PLATFORM if USB_XHCI_HCD
|
|
select USB_ROLE_SWITCH
|
|
help
|
|
Say Y here if your system has a Cadence USBSS or USBSSP
|
|
dual-role controller.
|
|
It supports: dual-role switch, Host-only, and Peripheral-only.
|
|
|
|
config USB_CDNS_HOST
|
|
bool
|
|
|
|
if USB_CDNS_SUPPORT
|
|
|
|
config USB_CDNS3
|
|
tristate "Cadence USB3 Dual-Role Controller"
|
|
depends on USB_CDNS_SUPPORT
|
|
help
|
|
Say Y here if your system has a Cadence USB3 dual-role controller.
|
|
It supports: dual-role switch, Host-only, and Peripheral-only.
|
|
|
|
If you choose to build this driver is a dynamically linked
|
|
as module, the module will be called cdns3.ko.
|
|
endif
|
|
|
|
if USB_CDNS3
|
|
|
|
config USB_CDNS3_GADGET
|
|
bool "Cadence USB3 device controller"
|
|
depends on USB_GADGET=y || USB_GADGET=USB_CDNS3
|
|
help
|
|
Say Y here to enable device controller functionality of the
|
|
Cadence USBSS-DEV driver.
|
|
|
|
This controller supports FF, HS and SS mode. It doesn't support
|
|
LS and SSP mode.
|
|
|
|
config USB_CDNS3_HOST
|
|
bool "Cadence USB3 host controller"
|
|
depends on USB=y || USB=USB_CDNS3
|
|
select USB_CDNS_HOST
|
|
help
|
|
Say Y here to enable host controller functionality of the
|
|
Cadence driver.
|
|
|
|
Host controller is compliant with XHCI so it will use
|
|
standard XHCI driver.
|
|
|
|
config USB_CDNS3_PCI_WRAP
|
|
tristate "Cadence USB3 support on PCIe-based platforms"
|
|
depends on USB_PCI && ACPI
|
|
default USB_CDNS3
|
|
help
|
|
If you're using the USBSS Core IP with a PCIe, please say
|
|
'Y' or 'M' here.
|
|
|
|
If you choose to build this driver as module it will
|
|
be dynamically linked and module will be called cdns3-pci.ko
|
|
|
|
config USB_CDNS3_TI
|
|
tristate "Cadence USB3 support on TI platforms"
|
|
depends on ARCH_K3 || COMPILE_TEST
|
|
default USB_CDNS3
|
|
help
|
|
Say 'Y' or 'M' here if you are building for Texas Instruments
|
|
platforms that contain Cadence USB3 controller core.
|
|
|
|
e.g. J721e.
|
|
|
|
config USB_CDNS3_IMX
|
|
tristate "Cadence USB3 support on NXP i.MX platforms"
|
|
depends on ARCH_MXC || COMPILE_TEST
|
|
default USB_CDNS3
|
|
help
|
|
Say 'Y' or 'M' here if you are building for NXP i.MX
|
|
platforms that contain Cadence USB3 controller core.
|
|
|
|
For example, imx8qm and imx8qxp.
|
|
|
|
endif
|
|
|
|
if USB_CDNS_SUPPORT
|
|
|
|
config USB_CDNSP_PCI
|
|
tristate "Cadence CDNSP Dual-Role Controller"
|
|
depends on USB_CDNS_SUPPORT && USB_PCI && ACPI
|
|
help
|
|
Say Y here if your system has a Cadence CDNSP dual-role controller.
|
|
It supports: dual-role switch Host-only, and Peripheral-only.
|
|
|
|
If you choose to build this driver is a dynamically linked
|
|
module, the module will be called cdnsp.ko.
|
|
endif
|
|
|
|
if USB_CDNSP_PCI
|
|
|
|
config USB_CDNSP_GADGET
|
|
bool "Cadence CDNSP device controller"
|
|
depends on USB_GADGET=y || USB_GADGET=USB_CDNSP_PCI
|
|
help
|
|
Say Y here to enable device controller functionality of the
|
|
Cadence CDNSP-DEV driver.
|
|
|
|
Cadence CDNSP Device Controller in device mode is
|
|
very similar to XHCI controller. Therefore some algorithms
|
|
used has been taken from host driver.
|
|
This controller supports FF, HS, SS and SSP mode.
|
|
It doesn't support LS.
|
|
|
|
config USB_CDNSP_HOST
|
|
bool "Cadence CDNSP host controller"
|
|
depends on USB=y || USB=USB_CDNSP_PCI
|
|
select USB_CDNS_HOST
|
|
help
|
|
Say Y here to enable host controller functionality of the
|
|
Cadence driver.
|
|
|
|
Host controller is compliant with XHCI so it uses
|
|
standard XHCI driver.
|
|
|
|
endif
|