[PATCH] spi: Convert to subsys_platform_driver()

From: Peng Fan (OSS)

Date: Wed Nov 04 2026 - 06:44:29 EST


From: Peng Fan <peng.fan@xxxxxxx>

Replace the open-coded subsys_initcall()/module_exit() platform driver
registration with subsys_platform_driver().

The pxa2xx platform driver is renamed from "driver" to
"pxa2xx_spi_driver" because subsys_platform_driver() generates
"<name>_init", which would otherwise conflict with the core
driver_init() declaration.

No functional change.

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
drivers/spi/spi-omap-uwire.c | 13 +------------
drivers/spi/spi-pxa2xx-platform.c | 15 ++-------------
2 files changed, 3 insertions(+), 25 deletions(-)

diff --git a/drivers/spi/spi-omap-uwire.c b/drivers/spi/spi-omap-uwire.c
index 83e263eb6069..6838a0603c90 100644
--- a/drivers/spi/spi-omap-uwire.c
+++ b/drivers/spi/spi-omap-uwire.c
@@ -528,18 +528,7 @@ static struct platform_driver uwire_driver = {
// resume ... use ck
};

-static int __init omap_uwire_init(void)
-{
- return platform_driver_register(&uwire_driver);
-}
-
-static void __exit omap_uwire_exit(void)
-{
- platform_driver_unregister(&uwire_driver);
-}
-
-subsys_initcall(omap_uwire_init);
-module_exit(omap_uwire_exit);
+subsys_platform_driver(uwire_driver);

MODULE_DESCRIPTION("MicroWire interface driver for OMAP");
MODULE_LICENSE("GPL");
diff --git a/drivers/spi/spi-pxa2xx-platform.c b/drivers/spi/spi-pxa2xx-platform.c
index 849a14cd0343..eee70e1f8690 100644
--- a/drivers/spi/spi-pxa2xx-platform.c
+++ b/drivers/spi/spi-pxa2xx-platform.c
@@ -198,7 +198,7 @@ static const struct of_device_id pxa2xx_spi_of_match[] = {
};
MODULE_DEVICE_TABLE(of, pxa2xx_spi_of_match);

-static struct platform_driver driver = {
+static struct platform_driver pxa2xx_spi_driver = {
.driver = {
.name = "pxa2xx-spi",
.pm = pm_ptr(&pxa2xx_spi_pm_ops),
@@ -208,18 +208,7 @@ static struct platform_driver driver = {
.probe = pxa2xx_spi_platform_probe,
.remove = pxa2xx_spi_platform_remove,
};
-
-static int __init pxa2xx_spi_init(void)
-{
- return platform_driver_register(&driver);
-}
-subsys_initcall(pxa2xx_spi_init);
-
-static void __exit pxa2xx_spi_exit(void)
-{
- platform_driver_unregister(&driver);
-}
-module_exit(pxa2xx_spi_exit);
+subsys_platform_driver(pxa2xx_spi_driver);

MODULE_AUTHOR("Stephen Street");
MODULE_DESCRIPTION("PXA2xx SSP SPI Controller platform driver");
--
2.51.0