mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
Expose Cadence USBSSP through the same platform path as USBSS, trim Kconfig and Makefile: one core loadable object plus separate glue .ko files. Single cdns.ko bundles core, DRD, the generic "cdns,usb3" platform driver in cdns3-plat.c, optional host.o, and optional gadget objects. Use CONFIG_USB_CDNS3_GADGET as a bool to compile gadget support into that module. Remove duplicate MODULE_* declarations from cdns3-plat.c now that it links into the same module. Kconfig: the generic platform driver is selected via CONFIG_USB_CDNS3. Move CONFIG_USB_CDNSP_PCI beside CONFIG_USB_CDNS3_PCI_WRAP under "Platform glue driver support". SoC glue entries (TI, i.MX, StarFive) depend only on CONFIG_USB_CDNS3. Tighten CONFIG_USB_CDNS_SUPPORT dependencies so the umbrella follows host or gadget when either is built as a module. Match host and gadget bools to the cdns.ko tristate with USB=USB_CDNS3 and USB_GADGET=USB_CDNS3 instead of comparing against USB_CDNS_SUPPORT. Link host.o when CONFIG_USB_CDNS3_HOST is enabled and use that symbol in host-export.h, removing the redundant CONFIG_USB_CDNS_HOST indirection. Export cdns_core_init_role and reorganize the function cdns_init, and controller version could be gotten before the gadget init function is decided per controller. Keep host_init / gadget_init callbacks in struct cdns, so core.c does not need direct linkage to host or gadget objects. Refactor cdnsp-pci.c into a thin PCI-to-platform wrapper. drivers/usb/Makefile: descend into drivers/usb/cdns3/ only when CONFIG_USB_CDNS_SUPPORT is enabled. Assisted-by: Cursor:claude-4.6-opus Suggested-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Peter Chen <peter.chen@cixtech.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20260421023459.506145-3-peter.chen@cixtech.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
31 lines
866 B
Makefile
31 lines
866 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# define_trace.h needs to know how to find our header
|
|
CFLAGS_cdns3-trace.o := -I$(src)
|
|
CFLAGS_cdnsp-trace.o := -I$(src)
|
|
|
|
obj-$(CONFIG_USB_CDNS3) += cdns.o
|
|
|
|
cdns-y := core.o drd.o cdns3-plat.o
|
|
cdns-$(CONFIG_USB_CDNS3_HOST) += host.o
|
|
|
|
ifneq ($(CONFIG_USB_CDNS3_GADGET),)
|
|
cdns-y += cdns3-gadget.o cdns3-ep0.o \
|
|
cdnsp-ring.o cdnsp-gadget.o \
|
|
cdnsp-mem.o cdnsp-ep0.o
|
|
endif
|
|
|
|
ifneq ($(CONFIG_TRACING),)
|
|
ifneq ($(CONFIG_USB_CDNS3_GADGET),)
|
|
cdns-y += cdns3-trace.o cdnsp-trace.o
|
|
endif
|
|
endif
|
|
|
|
##
|
|
# Platform-specific glue layers (PCI wrappers, SoC integration)
|
|
##
|
|
obj-$(CONFIG_USB_CDNS3_PCI_WRAP) += cdns3-pci-wrap.o
|
|
obj-$(CONFIG_USB_CDNSP_PCI) += cdnsp-pci.o
|
|
obj-$(CONFIG_USB_CDNS3_TI) += cdns3-ti.o
|
|
obj-$(CONFIG_USB_CDNS3_IMX) += cdns3-imx.o
|
|
obj-$(CONFIG_USB_CDNS3_STARFIVE) += cdns3-starfive.o
|