mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +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>
32 lines
650 B
C
32 lines
650 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Cadence USBSS and USBSSP DRD Driver - Gadget Export APIs.
|
|
*
|
|
* Copyright (C) 2017 NXP
|
|
* Copyright (C) 2017-2018 NXP
|
|
*
|
|
* Authors: Peter Chen <peter.chen@nxp.com>
|
|
*/
|
|
#ifndef __LINUX_CDNS3_GADGET_EXPORT
|
|
#define __LINUX_CDNS3_GADGET_EXPORT
|
|
|
|
#if IS_ENABLED(CONFIG_USB_CDNS3_GADGET)
|
|
|
|
int cdnsp_gadget_init(struct cdns *cdns);
|
|
int cdns3_gadget_init(struct cdns *cdns);
|
|
#else
|
|
|
|
static inline int cdnsp_gadget_init(struct cdns *cdns)
|
|
{
|
|
return -ENXIO;
|
|
}
|
|
|
|
static inline int cdns3_gadget_init(struct cdns *cdns)
|
|
{
|
|
return -ENXIO;
|
|
}
|
|
|
|
#endif /* CONFIG_USB_CDNS3_GADGET */
|
|
|
|
#endif /* __LINUX_CDNS3_GADGET_EXPORT */
|