gpio: pl061: Support building as module
authorRob Herring <robh@kernel.org>
Thu, 9 Apr 2020 01:41:10 +0000 (19:41 -0600)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Tue, 14 Apr 2020 14:23:46 +0000 (16:23 +0200)
Enable building the PL061 GPIO driver as a module.

This does change the initcall level when built-in. This shouldn't be a
problem as any user should support deferred probe by now. A scan of DT
based platforms at least didn't reveal any users that would be a
problem.

Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Cc: linux-gpio@vger.kernel.org
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
drivers/gpio/Kconfig
drivers/gpio/gpio-pl061.c

index 1b96169d84f746d712869813a899c5a4a85c8573..8ef2179fb9991b78eac8c394e0f798300df5b76f 100644 (file)
@@ -422,7 +422,7 @@ config GPIO_OMAP
          Say yes here to enable GPIO support for TI OMAP SoCs.
 
 config GPIO_PL061
-       bool "PrimeCell PL061 GPIO support"
+       tristate "PrimeCell PL061 GPIO support"
        depends on ARM_AMBA
        select IRQ_DOMAIN
        select GPIOLIB_IRQCHIP
index e241fb884c12ebe7dab43f5fc9f60072d4b3b2af..f1b53dd1df1ab4a00107ec4868b78c3dcbcccdff 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/interrupt.h>
 #include <linux/irq.h>
 #include <linux/irqchip/chained_irq.h>
+#include <linux/module.h>
 #include <linux/bitops.h>
 #include <linux/gpio/driver.h>
 #include <linux/device.h>
@@ -408,6 +409,7 @@ static const struct amba_id pl061_ids[] = {
        },
        { 0, 0 },
 };
+MODULE_DEVICE_TABLE(amba, pl061_ids);
 
 static struct amba_driver pl061_gpio_driver = {
        .drv = {
@@ -419,9 +421,6 @@ static struct amba_driver pl061_gpio_driver = {
        .id_table       = pl061_ids,
        .probe          = pl061_probe,
 };
+module_amba_driver(pl061_gpio_driver);
 
-static int __init pl061_gpio_init(void)
-{
-       return amba_driver_register(&pl061_gpio_driver);
-}
-device_initcall(pl061_gpio_init);
+MODULE_LICENSE("GPL v2");