usb: add cdns3 support
authorZoltan HERPAI <wigyori@uid0.hu>
Mon, 1 Jan 2024 12:50:46 +0000 (13:50 +0100)
committerZoltan HERPAI <wigyori@uid0.hu>
Sun, 10 Mar 2024 17:21:41 +0000 (18:21 +0100)
CDNS3 is a SuperSpeed (SS) USB 3.0 Dual-Role-Device (DRD) controller from
Cadence. Add support for this device, and add the required symbols into
the generic configs.

Compile-tested: apm821xx, bcm4908, imx, mpc85xx, pistachio, starfive

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
package/kernel/linux/modules/usb.mk
target/linux/generic/config-5.15
target/linux/generic/config-6.1

index 7f9e627fdb473fae364e8e71b5ef49e1d2a6d641..f4a2113e1709c5964bdba713a714894132d325b1 100644 (file)
@@ -459,6 +459,44 @@ endef
 $(eval $(call KernelPackage,usb-dwc2-pci))
 
 
+define KernelPackage/usb-cdns
+  TITLE:=Cadence USB USB controller driver
+  DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-roles
+  KCONFIG:= \
+       CONFIG_USB_CDNS_SUPPORT
+  FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns-usb-common.ko
+  AUTOLOAD:=$(call AutoLoad,50,cdns-usb-common,1)
+  $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-cdns/description
+ This driver provides USB Device Controller support for the
+ Cadence USB Core
+endef
+
+$(eval $(call KernelPackage,usb-cdns))
+
+
+define KernelPackage/usb-cdns3
+  TITLE:=Cadence USB3 USB controller driver
+  DEPENDS:=+kmod-usb-cdns
+  KCONFIG:= \
+       CONFIG_USB_CDNS3 \
+       CONFIG_USB_CDNS3_GADGET=y \
+       CONFIG_USB_CDNS3_HOST=y
+  FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns3.ko
+  AUTOLOAD:=$(call AutoLoad,54,cdns3,1)
+  $(call AddDepends/usb)
+endef
+
+define KernelPackage/usb-cdns3/description
+ This driver provides support for the Dual Role SuperSpeed
+ USB Controller based on the Cadence USB3 IP Core
+endef
+
+$(eval $(call KernelPackage,usb-cdns3))
+
+
 define KernelPackage/usb-dwc3
   TITLE:=DWC3 USB controller driver
   KCONFIG:= \
index 6070000dd4010d523c0f5e66460af108725ebc1a..8f6ccad216f305bfec5f57bf69951c14910693d2 100644 (file)
@@ -6833,7 +6833,10 @@ CONFIG_USB_BELKIN=y
 # CONFIG_USB_CATC is not set
 # CONFIG_USB_CDC_COMPOSITE is not set
 # CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_CDNS3_IMX is not set
+# CONFIG_USB_CDNS3_PCI_WRAP is not set
 # CONFIG_USB_CDNS_SUPPORT is not set
+# CONFIG_USB_CDNSP_PCI is not set
 # CONFIG_USB_CHAOSKEY is not set
 # CONFIG_USB_CHIPIDEA is not set
 # CONFIG_USB_CHIPIDEA_GENERIC is not set
index 34a6503ce0aeb8410356abe26a60337c2989256a..deecb62ba8c1478bf6ec93dddcdfe341ebf80382 100644 (file)
@@ -7117,7 +7117,10 @@ CONFIG_USB_BELKIN=y
 # CONFIG_USB_CATC is not set
 # CONFIG_USB_CDC_COMPOSITE is not set
 # CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_CDNS3_IMX is not set
+# CONFIG_USB_CDNS3_PCI_WRAP is not set
 # CONFIG_USB_CDNS_SUPPORT is not set
+# CONFIG_USB_CDNSP_PCI is not set
 # CONFIG_USB_CHAOSKEY is not set
 # CONFIG_USB_CHIPIDEA is not set
 # CONFIG_USB_CHIPIDEA_GENERIC is not set