[1/2] gpio: mb86s7x: share with other SoCs as module

Message ID 20171027202148.4188-2-ard.biesheuvel@linaro.org
State New
Headers show
Series
  • GPIO support for Socionext Synquacer
Related show

Commit Message

Ard Biesheuvel Oct. 27, 2017, 8:21 p.m.
In order to reuse this driver for the Socionext Synquacer SC2A11 SoC,
which inherited this IP from Fujitsu, remove the ARCH_MB86S7X Kconfig
dependency, and revert the changes that prevent it from being built as
a module.

This reverts commits d65aa4b67b4f47f303bdeaef1e4d42ef18e6b293 and
d5610e514e92144d19bd5e39e5cf3804bbf85f3e.

Cc: Geliang Tang <geliangtang@gmail.com>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 drivers/gpio/Kconfig        |  3 +--
 drivers/gpio/gpio-mb86s7x.c | 12 +++++++++++-
 2 files changed, 12 insertions(+), 3 deletions(-)

-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Ard Biesheuvel Oct. 30, 2017, 5:15 p.m. | #1
On 27 October 2017 at 21:21, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> In order to reuse this driver for the Socionext Synquacer SC2A11 SoC,

> which inherited this IP from Fujitsu, remove the ARCH_MB86S7X Kconfig

> dependency, and revert the changes that prevent it from being built as

> a module.

>

> This reverts commits d65aa4b67b4f47f303bdeaef1e4d42ef18e6b293 and

> d5610e514e92144d19bd5e39e5cf3804bbf85f3e.

>

> Cc: Geliang Tang <geliangtang@gmail.com>

> Cc: Linus Walleij <linus.walleij@linaro.org>

> Cc: Paul Gortmaker <paul.gortmaker@windriver.com>

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---

>  drivers/gpio/Kconfig        |  3 +--

>  drivers/gpio/gpio-mb86s7x.c | 12 +++++++++++-

>  2 files changed, 12 insertions(+), 3 deletions(-)

>

> diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig

> index 3f80f167ed56..bf40a948e4cc 100644

> --- a/drivers/gpio/Kconfig

> +++ b/drivers/gpio/Kconfig

> @@ -286,8 +286,7 @@ config GPIO_LYNXPOINT

>           Requires ACPI device enumeration code to set up a platform device.

>

>  config GPIO_MB86S7X

> -       bool "GPIO support for Fujitsu MB86S7x Platforms"

> -       depends on ARCH_MB86S7X || COMPILE_TEST

> +       tristate "GPIO support for Fujitsu MB86S7x Platforms"

>         help

>           Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.

>

> diff --git a/drivers/gpio/gpio-mb86s7x.c b/drivers/gpio/gpio-mb86s7x.c

> index 94d772677ed6..6e1598471733 100644

> --- a/drivers/gpio/gpio-mb86s7x.c

> +++ b/drivers/gpio/gpio-mb86s7x.c

> @@ -17,6 +17,7 @@

>  #include <linux/io.h>

>  #include <linux/init.h>

>  #include <linux/clk.h>

> +#include <linux/module.h>

>  #include <linux/err.h>

>  #include <linux/errno.h>

>  #include <linux/ioport.h>

> @@ -209,6 +210,7 @@ static const struct of_device_id mb86s70_gpio_dt_ids[] = {

>         { .compatible = "fujitsu,mb86s70-gpio" },

>         { /* sentinel */ }

>  };

> +MODULE_DEVICE_TABLE(of, mb86s70_gpio_dt_ids);

>

>  static struct platform_driver mb86s70_gpio_driver = {

>         .driver = {

> @@ -219,4 +221,12 @@ static struct platform_driver mb86s70_gpio_driver = {

>         .remove = mb86s70_gpio_remove,

>  };

>

> -builtin_platform_driver(mb86s70_gpio_driver);

> +static int __init mb86s70_gpio_init(void)

> +{

> +       return platform_driver_register(&mb86s70_gpio_driver);

> +}

> +module_init(mb86s70_gpio_init);

> +

> +MODULE_DESCRIPTION("MB86S7x GPIO Driver");

> +MODULE_ALIAS("platform:mb86s70-gpio");

> +MODULE_LICENSE("GPL");

> --

> 2.11.0

>


The .c changes are a straight revert of the above patches, but perhaps
we should fold this in on top:

diff --git a/drivers/gpio/gpio-mb86s7x.c b/drivers/gpio/gpio-mb86s7x.c
index 5cd77dcdbb16..3134c0d2bfe4 100644
--- a/drivers/gpio/gpio-mb86s7x.c
+++ b/drivers/gpio/gpio-mb86s7x.c
@@ -215,12 +215,7 @@ static struct platform_driver mb86s70_gpio_driver = {
        .probe = mb86s70_gpio_probe,
        .remove = mb86s70_gpio_remove,
 };
-
-static int __init mb86s70_gpio_init(void)
-{
-       return platform_driver_register(&mb86s70_gpio_driver);
-}
-module_init(mb86s70_gpio_init);
+module_platform_driver(mb86s70_gpio_driver);

 MODULE_DESCRIPTION("MB86S7x GPIO Driver");
 MODULE_ALIAS("platform:mb86s70-gpio");


so that the module can actually be unloaded again.
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Linus Walleij Oct. 31, 2017, 12:12 p.m. | #2
On Fri, Oct 27, 2017 at 10:21 PM, Ard Biesheuvel
<ard.biesheuvel@linaro.org> wrote:

> In order to reuse this driver for the Socionext Synquacer SC2A11 SoC,

> which inherited this IP from Fujitsu, remove the ARCH_MB86S7X Kconfig

> dependency, and revert the changes that prevent it from being built as

> a module.

>

> This reverts commits d65aa4b67b4f47f303bdeaef1e4d42ef18e6b293 and

> d5610e514e92144d19bd5e39e5cf3804bbf85f3e.

>

> Cc: Geliang Tang <geliangtang@gmail.com>

> Cc: Linus Walleij <linus.walleij@linaro.org>

> Cc: Paul Gortmaker <paul.gortmaker@windriver.com>

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>


Patch applied, I folded in your patch snippet
using module_platform_driver() on top.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 3f80f167ed56..bf40a948e4cc 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -286,8 +286,7 @@  config GPIO_LYNXPOINT
 	  Requires ACPI device enumeration code to set up a platform device.
 
 config GPIO_MB86S7X
-	bool "GPIO support for Fujitsu MB86S7x Platforms"
-	depends on ARCH_MB86S7X || COMPILE_TEST
+	tristate "GPIO support for Fujitsu MB86S7x Platforms"
 	help
 	  Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
 
diff --git a/drivers/gpio/gpio-mb86s7x.c b/drivers/gpio/gpio-mb86s7x.c
index 94d772677ed6..6e1598471733 100644
--- a/drivers/gpio/gpio-mb86s7x.c
+++ b/drivers/gpio/gpio-mb86s7x.c
@@ -17,6 +17,7 @@ 
 #include <linux/io.h>
 #include <linux/init.h>
 #include <linux/clk.h>
+#include <linux/module.h>
 #include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/ioport.h>
@@ -209,6 +210,7 @@  static const struct of_device_id mb86s70_gpio_dt_ids[] = {
 	{ .compatible = "fujitsu,mb86s70-gpio" },
 	{ /* sentinel */ }
 };
+MODULE_DEVICE_TABLE(of, mb86s70_gpio_dt_ids);
 
 static struct platform_driver mb86s70_gpio_driver = {
 	.driver = {
@@ -219,4 +221,12 @@  static struct platform_driver mb86s70_gpio_driver = {
 	.remove = mb86s70_gpio_remove,
 };
 
-builtin_platform_driver(mb86s70_gpio_driver);
+static int __init mb86s70_gpio_init(void)
+{
+	return platform_driver_register(&mb86s70_gpio_driver);
+}
+module_init(mb86s70_gpio_init);
+
+MODULE_DESCRIPTION("MB86S7x GPIO Driver");
+MODULE_ALIAS("platform:mb86s70-gpio");
+MODULE_LICENSE("GPL");