pinctrl/meson: enable building as modules
authorKevin Hilman <khilman@baylibre.com>
Mon, 26 Oct 2020 18:30:25 +0000 (11:30 -0700)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 5 Nov 2020 13:51:38 +0000 (14:51 +0100)
Enable pinctrl drivers for 64-bit Amlogic SoCs to be built as modules.

The default is still built-in, this only adds the option of building
as modules.

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Link: https://lore.kernel.org/r/20201026183025.31768-1-khilman@baylibre.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/meson/Kconfig
drivers/pinctrl/meson/pinctrl-meson-a1.c
drivers/pinctrl/meson/pinctrl-meson-axg-pmx.c
drivers/pinctrl/meson/pinctrl-meson-axg.c
drivers/pinctrl/meson/pinctrl-meson-g12a.c
drivers/pinctrl/meson/pinctrl-meson-gxbb.c
drivers/pinctrl/meson/pinctrl-meson-gxl.c
drivers/pinctrl/meson/pinctrl-meson.c
drivers/pinctrl/meson/pinctrl-meson.h
drivers/pinctrl/meson/pinctrl-meson8-pmx.c

index 3cb119105ddbc7ee5375a4123a164569b5807641..b2855e341a75eb872fd711303c8bd1e6f8f4723c 100644 (file)
@@ -1,8 +1,9 @@
 # SPDX-License-Identifier: GPL-2.0-only
 menuconfig PINCTRL_MESON
-       bool "Amlogic SoC pinctrl drivers"
+       tristate "Amlogic SoC pinctrl drivers"
        depends on ARCH_MESON
        depends on OF
+       default y
        select PINMUX
        select PINCONF
        select GENERIC_PINCONF
@@ -25,37 +26,37 @@ config PINCTRL_MESON8B
        default y
 
 config PINCTRL_MESON_GXBB
-       bool "Meson gxbb SoC pinctrl driver"
+       tristate "Meson gxbb SoC pinctrl driver"
        depends on ARM64
        select PINCTRL_MESON8_PMX
        default y
 
 config PINCTRL_MESON_GXL
-       bool "Meson gxl SoC pinctrl driver"
+       tristate "Meson gxl SoC pinctrl driver"
        depends on ARM64
        select PINCTRL_MESON8_PMX
        default y
 
 config PINCTRL_MESON8_PMX
-       bool
+       tristate
 
 config PINCTRL_MESON_AXG
-       bool "Meson axg Soc pinctrl driver"
+       tristate "Meson axg Soc pinctrl driver"
        depends on ARM64
        select PINCTRL_MESON_AXG_PMX
        default y
 
 config PINCTRL_MESON_AXG_PMX
-       bool
+       tristate
 
 config PINCTRL_MESON_G12A
-       bool "Meson g12a Soc pinctrl driver"
+       tristate "Meson g12a Soc pinctrl driver"
        depends on ARM64
        select PINCTRL_MESON_AXG_PMX
        default y
 
 config PINCTRL_MESON_A1
-       bool "Meson a1 Soc pinctrl driver"
+       tristate "Meson a1 Soc pinctrl driver"
        depends on ARM64
        select PINCTRL_MESON_AXG_PMX
        default y
index 8abf750eac7ee8c6e631b1a82a3b2d13ba0508bb..79f5d753d7e1a53df0da9bb0446bf8fdfbd3042c 100644 (file)
@@ -925,6 +925,7 @@ static const struct of_device_id meson_a1_pinctrl_dt_match[] = {
        },
        { },
 };
+MODULE_DEVICE_TABLE(of, meson_a1_pinctrl_dt_match);
 
 static struct platform_driver meson_a1_pinctrl_driver = {
        .probe  = meson_pinctrl_probe,
@@ -934,4 +935,5 @@ static struct platform_driver meson_a1_pinctrl_driver = {
        },
 };
 
-builtin_platform_driver(meson_a1_pinctrl_driver);
+module_platform_driver(meson_a1_pinctrl_driver);
+MODULE_LICENSE("Dual BSD/GPL");
index e8931d9cf863fe3310a0d2b44d1bf1dbdfeac0c4..80c43683c789bbe12bc2be80893e5f6192c60eaa 100644 (file)
@@ -116,3 +116,6 @@ const struct pinmux_ops meson_axg_pmx_ops = {
        .get_function_groups = meson_pmx_get_groups,
        .gpio_request_enable = meson_axg_pmx_request_gpio,
 };
+EXPORT_SYMBOL_GPL(meson_axg_pmx_ops);
+
+MODULE_LICENSE("Dual BSD/GPL");
index 072765db93d70bc39b7fdb1610827b6ada25fed3..7bfecdfba17797620070ca9a8eeee2326837cd09 100644 (file)
@@ -1080,6 +1080,7 @@ static const struct of_device_id meson_axg_pinctrl_dt_match[] = {
        },
        { },
 };
+MODULE_DEVICE_TABLE(of, meson_axg_pinctrl_dt_match);
 
 static struct platform_driver meson_axg_pinctrl_driver = {
        .probe          = meson_pinctrl_probe,
@@ -1089,4 +1090,5 @@ static struct platform_driver meson_axg_pinctrl_driver = {
        },
 };
 
-builtin_platform_driver(meson_axg_pinctrl_driver);
+module_platform_driver(meson_axg_pinctrl_driver);
+MODULE_LICENSE("Dual BSD/GPL");
index 41850e3c0091816ee5a8a7b52020f95518fb4bc7..cd9656b138363744841da50db328feb915900022 100644 (file)
@@ -1410,6 +1410,7 @@ static const struct of_device_id meson_g12a_pinctrl_dt_match[] = {
        },
        { },
 };
+MODULE_DEVICE_TABLE(of, meson_g12a_pinctrl_dt_match);
 
 static struct platform_driver meson_g12a_pinctrl_driver = {
        .probe  = meson_pinctrl_probe,
@@ -1419,4 +1420,5 @@ static struct platform_driver meson_g12a_pinctrl_driver = {
        },
 };
 
-builtin_platform_driver(meson_g12a_pinctrl_driver);
+module_platform_driver(meson_g12a_pinctrl_driver);
+MODULE_LICENSE("Dual BSD/GPL");
index d130c635f74b0cd7fa18b014864949483acb8eb2..f51fc3939252768686934339d0da997c02b523a7 100644 (file)
@@ -900,6 +900,7 @@ static const struct of_device_id meson_gxbb_pinctrl_dt_match[] = {
        },
        { },
 };
+MODULE_DEVICE_TABLE(of, meson_gxbb_pinctrl_dt_match);
 
 static struct platform_driver meson_gxbb_pinctrl_driver = {
        .probe          = meson_pinctrl_probe,
@@ -908,4 +909,5 @@ static struct platform_driver meson_gxbb_pinctrl_driver = {
                .of_match_table = meson_gxbb_pinctrl_dt_match,
        },
 };
-builtin_platform_driver(meson_gxbb_pinctrl_driver);
+module_platform_driver(meson_gxbb_pinctrl_driver);
+MODULE_LICENSE("GPL v2");
index 32552d795bb2cd405a8da4dd60262103c609706c..51408996255bd3461d9f21604df8ac89800e2189 100644 (file)
@@ -861,6 +861,7 @@ static const struct of_device_id meson_gxl_pinctrl_dt_match[] = {
        },
        { },
 };
+MODULE_DEVICE_TABLE(of, meson_gxl_pinctrl_dt_match);
 
 static struct platform_driver meson_gxl_pinctrl_driver = {
        .probe          = meson_pinctrl_probe,
@@ -869,4 +870,5 @@ static struct platform_driver meson_gxl_pinctrl_driver = {
                .of_match_table = meson_gxl_pinctrl_dt_match,
        },
 };
-builtin_platform_driver(meson_gxl_pinctrl_driver);
+module_platform_driver(meson_gxl_pinctrl_driver);
+MODULE_LICENSE("GPL v2");
index 20683cd072bb0395caaeb3c386cba13dde74101e..49851444a6e3b0bbbcc8f1e345738d7c7dffceac 100644 (file)
@@ -152,6 +152,7 @@ int meson_pmx_get_funcs_count(struct pinctrl_dev *pcdev)
 
        return pc->data->num_funcs;
 }
+EXPORT_SYMBOL_GPL(meson_pmx_get_funcs_count);
 
 const char *meson_pmx_get_func_name(struct pinctrl_dev *pcdev,
                                    unsigned selector)
@@ -160,6 +161,7 @@ const char *meson_pmx_get_func_name(struct pinctrl_dev *pcdev,
 
        return pc->data->funcs[selector].name;
 }
+EXPORT_SYMBOL_GPL(meson_pmx_get_func_name);
 
 int meson_pmx_get_groups(struct pinctrl_dev *pcdev, unsigned selector,
                         const char * const **groups,
@@ -172,6 +174,7 @@ int meson_pmx_get_groups(struct pinctrl_dev *pcdev, unsigned selector,
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(meson_pmx_get_groups);
 
 static int meson_pinconf_set_gpio_bit(struct meson_pinctrl *pc,
                                      unsigned int pin,
@@ -723,6 +726,7 @@ int meson8_aobus_parse_dt_extra(struct meson_pinctrl *pc)
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(meson8_aobus_parse_dt_extra);
 
 int meson_a1_parse_dt_extra(struct meson_pinctrl *pc)
 {
@@ -732,6 +736,7 @@ int meson_a1_parse_dt_extra(struct meson_pinctrl *pc)
 
        return 0;
 }
+EXPORT_SYMBOL_GPL(meson_a1_parse_dt_extra);
 
 int meson_pinctrl_probe(struct platform_device *pdev)
 {
@@ -766,3 +771,6 @@ int meson_pinctrl_probe(struct platform_device *pdev)
 
        return meson_gpiolib_register(pc);
 }
+EXPORT_SYMBOL_GPL(meson_pinctrl_probe);
+
+MODULE_LICENSE("GPL v2");
index f8b0ff9d419a6abd14d3554ec2be440d4f6fd25c..ff5372e0a4752d925b5ee0fb0f7527695e31d29e 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/types.h>
+#include <linux/module.h>
 
 struct meson_pinctrl;
 
index 66a908f9f13d814efc3f76772fd2d089ff1df968..f767b6923f9fa69e167e5a40e2c78c794e8a41f2 100644 (file)
@@ -100,3 +100,5 @@ const struct pinmux_ops meson8_pmx_ops = {
        .get_function_groups = meson_pmx_get_groups,
        .gpio_request_enable = meson8_pmx_request_gpio,
 };
+EXPORT_SYMBOL_GPL(meson8_pmx_ops);
+MODULE_LICENSE("GPL v2");