]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
mfd: vexpress-sysreg: Support building as a module
authorRob Herring <robh@kernel.org>
Wed, 29 Apr 2020 20:58:20 +0000 (15:58 -0500)
committerRob Herring <robh@kernel.org>
Wed, 13 May 2020 17:42:45 +0000 (12:42 -0500)
Enable building the vexpress-sysreg driver as a module.

As deferred probe between the vexpress components works now, we don't
need to create struct devices early with of_platform_device_create().

Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/mfd/Kconfig
drivers/mfd/vexpress-sysreg.c

index b1311dea2da1f2b8d8b525936fb2f2cf8ddf7872..79276655832895e18246ab5b539094dd2a1df7c2 100644 (file)
@@ -2028,7 +2028,7 @@ config MCP_UCB1200_TS
 endmenu
 
 config MFD_VEXPRESS_SYSREG
-       bool "Versatile Express System Registers"
+       tristate "Versatile Express System Registers"
        depends on VEXPRESS_CONFIG && GPIOLIB
        default y
        select GPIO_GENERIC_PLATFORM
index 9fb37fa689e02e46aaff4a901b6c4e9bd5d7cbc9..eeeeb1d26d5d68d746a85cff6fd5c38fc9b34af9 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/mfd/core.h>
+#include <linux/module.h>
 #include <linux/of_platform.h>
 #include <linux/platform_data/syscon.h>
 #include <linux/platform_device.h>
@@ -151,6 +152,7 @@ static const struct of_device_id vexpress_sysreg_match[] = {
        { .compatible = "arm,vexpress-sysreg", },
        {},
 };
+MODULE_DEVICE_TABLE(of, vexpress_sysreg_match);
 
 static struct platform_driver vexpress_sysreg_driver = {
        .driver = {
@@ -160,14 +162,5 @@ static struct platform_driver vexpress_sysreg_driver = {
        .probe = vexpress_sysreg_probe,
 };
 
-static int __init vexpress_sysreg_init(void)
-{
-       struct device_node *node;
-
-       /* Need the sysreg early, before any other device... */
-       for_each_matching_node(node, vexpress_sysreg_match)
-               of_platform_device_create(node, NULL, NULL);
-
-       return platform_driver_register(&vexpress_sysreg_driver);
-}
-core_initcall(vexpress_sysreg_init);
+module_platform_driver(vexpress_sysreg_driver);
+MODULE_LICENSE("GPL v2");