Message ID | 20201118191405.36798-1-khilman@baylibre.com (mailing list archive) |
---|---|
State | Awaiting Upstream, archived |
Headers | show |
Series | [v2] clk: meson: enable building as modules | expand |
On Wed 18 Nov 2020 at 20:14, Kevin Hilman <khilman@baylibre.com> wrote: > Make it possible to build all clk drivers as modules, but default > remains built-in. > > No functional changes. > > Signed-off-by: Kevin Hilman <khilman@baylibre.com> > Acked-by: Stephen Boyd <sboyd@kernel.org> Applied > --- > v2: drop G12A Kconfig fix, separated out into separate patch > > drivers/clk/meson/Kconfig | 6 +++--- > drivers/clk/meson/axg-aoclk.c | 5 ++++- > drivers/clk/meson/axg.c | 5 ++++- > drivers/clk/meson/g12a-aoclk.c | 5 ++++- > drivers/clk/meson/g12a.c | 5 ++++- > drivers/clk/meson/gxbb-aoclk.c | 5 ++++- > drivers/clk/meson/gxbb.c | 5 ++++- > drivers/clk/meson/meson-aoclk.c | 4 ++++ > drivers/clk/meson/meson-eeclk.c | 3 +++ > 9 files changed, 34 insertions(+), 9 deletions(-) > > diff --git a/drivers/clk/meson/Kconfig b/drivers/clk/meson/Kconfig > index 034da203e8e0..a3417f82aa84 100644 > --- a/drivers/clk/meson/Kconfig > +++ b/drivers/clk/meson/Kconfig > @@ -58,7 +58,7 @@ config COMMON_CLK_MESON8B > want peripherals and CPU frequency scaling to work. > > config COMMON_CLK_GXBB > - bool "GXBB and GXL SoC clock controllers support" > + tristate "GXBB and GXL SoC clock controllers support" > depends on ARM64 > default y > select COMMON_CLK_MESON_REGMAP > @@ -74,7 +74,7 @@ config COMMON_CLK_GXBB > Say Y if you want peripherals and CPU frequency scaling to work. > > config COMMON_CLK_AXG > - bool "AXG SoC clock controllers support" > + tristate "AXG SoC clock controllers support" > depends on ARM64 > default y > select COMMON_CLK_MESON_REGMAP > @@ -100,7 +100,7 @@ config COMMON_CLK_AXG_AUDIO > aka axg, Say Y if you want audio subsystem to work. > > config COMMON_CLK_G12A > - bool "G12 and SM1 SoC clock controllers support" > + tristate "G12 and SM1 SoC clock controllers support" > depends on ARM64 > default y > select COMMON_CLK_MESON_REGMAP > diff --git a/drivers/clk/meson/axg-aoclk.c b/drivers/clk/meson/axg-aoclk.c > index b488b40c9d0e..af6db437bcd8 100644 > --- a/drivers/clk/meson/axg-aoclk.c > +++ b/drivers/clk/meson/axg-aoclk.c > @@ -12,6 +12,7 @@ > #include <linux/platform_device.h> > #include <linux/reset-controller.h> > #include <linux/mfd/syscon.h> > +#include <linux/module.h> > #include "meson-aoclk.h" > #include "axg-aoclk.h" > > @@ -326,6 +327,7 @@ static const struct of_device_id axg_aoclkc_match_table[] = { > }, > { } > }; > +MODULE_DEVICE_TABLE(of, axg_aoclkc_match_table); > > static struct platform_driver axg_aoclkc_driver = { > .probe = meson_aoclkc_probe, > @@ -335,4 +337,5 @@ static struct platform_driver axg_aoclkc_driver = { > }, > }; > > -builtin_platform_driver(axg_aoclkc_driver); > +module_platform_driver(axg_aoclkc_driver); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/axg.c b/drivers/clk/meson/axg.c > index 13fc0006f63d..7ca7ea7345e5 100644 > --- a/drivers/clk/meson/axg.c > +++ b/drivers/clk/meson/axg.c > @@ -13,6 +13,7 @@ > #include <linux/init.h> > #include <linux/of_device.h> > #include <linux/platform_device.h> > +#include <linux/module.h> > > #include "clk-regmap.h" > #include "clk-pll.h" > @@ -1354,6 +1355,7 @@ static const struct of_device_id clkc_match_table[] = { > { .compatible = "amlogic,axg-clkc", .data = &axg_clkc_data }, > {} > }; > +MODULE_DEVICE_TABLE(of, clkc_match_table); > > static struct platform_driver axg_driver = { > .probe = meson_eeclkc_probe, > @@ -1363,4 +1365,5 @@ static struct platform_driver axg_driver = { > }, > }; > > -builtin_platform_driver(axg_driver); > +module_platform_driver(axg_driver); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/g12a-aoclk.c b/drivers/clk/meson/g12a-aoclk.c > index 62499563e4f5..b52990e574d2 100644 > --- a/drivers/clk/meson/g12a-aoclk.c > +++ b/drivers/clk/meson/g12a-aoclk.c > @@ -12,6 +12,7 @@ > #include <linux/platform_device.h> > #include <linux/reset-controller.h> > #include <linux/mfd/syscon.h> > +#include <linux/module.h> > #include "meson-aoclk.h" > #include "g12a-aoclk.h" > > @@ -461,6 +462,7 @@ static const struct of_device_id g12a_aoclkc_match_table[] = { > }, > { } > }; > +MODULE_DEVICE_TABLE(of, g12a_aoclkc_match_table); > > static struct platform_driver g12a_aoclkc_driver = { > .probe = meson_aoclkc_probe, > @@ -470,4 +472,5 @@ static struct platform_driver g12a_aoclkc_driver = { > }, > }; > > -builtin_platform_driver(g12a_aoclkc_driver); > +module_platform_driver(g12a_aoclkc_driver); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c > index b814d44917a5..66094bfec2cc 100644 > --- a/drivers/clk/meson/g12a.c > +++ b/drivers/clk/meson/g12a.c > @@ -15,6 +15,7 @@ > #include <linux/of_device.h> > #include <linux/platform_device.h> > #include <linux/clk.h> > +#include <linux/module.h> > > #include "clk-mpll.h" > #include "clk-pll.h" > @@ -5370,6 +5371,7 @@ static const struct of_device_id clkc_match_table[] = { > }, > {} > }; > +MODULE_DEVICE_TABLE(of, clkc_match_table); > > static struct platform_driver g12a_driver = { > .probe = meson_g12a_probe, > @@ -5379,4 +5381,5 @@ static struct platform_driver g12a_driver = { > }, > }; > > -builtin_platform_driver(g12a_driver); > +module_platform_driver(g12a_driver); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/gxbb-aoclk.c b/drivers/clk/meson/gxbb-aoclk.c > index e940861a396b..fce95cf89836 100644 > --- a/drivers/clk/meson/gxbb-aoclk.c > +++ b/drivers/clk/meson/gxbb-aoclk.c > @@ -5,6 +5,7 @@ > */ > #include <linux/platform_device.h> > #include <linux/mfd/syscon.h> > +#include <linux/module.h> > #include "meson-aoclk.h" > #include "gxbb-aoclk.h" > > @@ -287,6 +288,7 @@ static const struct of_device_id gxbb_aoclkc_match_table[] = { > }, > { } > }; > +MODULE_DEVICE_TABLE(of, gxbb_aoclkc_match_table); > > static struct platform_driver gxbb_aoclkc_driver = { > .probe = meson_aoclkc_probe, > @@ -295,4 +297,5 @@ static struct platform_driver gxbb_aoclkc_driver = { > .of_match_table = gxbb_aoclkc_match_table, > }, > }; > -builtin_platform_driver(gxbb_aoclkc_driver); > +module_platform_driver(gxbb_aoclkc_driver); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c > index 0a68af6eec3d..d6eed760327d 100644 > --- a/drivers/clk/meson/gxbb.c > +++ b/drivers/clk/meson/gxbb.c > @@ -8,6 +8,7 @@ > #include <linux/init.h> > #include <linux/of_device.h> > #include <linux/platform_device.h> > +#include <linux/module.h> > > #include "gxbb.h" > #include "clk-regmap.h" > @@ -3519,6 +3520,7 @@ static const struct of_device_id clkc_match_table[] = { > { .compatible = "amlogic,gxl-clkc", .data = &gxl_clkc_data }, > {}, > }; > +MODULE_DEVICE_TABLE(of, clkc_match_table); > > static struct platform_driver gxbb_driver = { > .probe = meson_eeclkc_probe, > @@ -3528,4 +3530,5 @@ static struct platform_driver gxbb_driver = { > }, > }; > > -builtin_platform_driver(gxbb_driver); > +module_platform_driver(gxbb_driver); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/meson-aoclk.c b/drivers/clk/meson/meson-aoclk.c > index bf8bea675d24..f0858fe789bc 100644 > --- a/drivers/clk/meson/meson-aoclk.c > +++ b/drivers/clk/meson/meson-aoclk.c > @@ -14,6 +14,8 @@ > #include <linux/reset-controller.h> > #include <linux/mfd/syscon.h> > #include <linux/of_device.h> > +#include <linux/module.h> > + > #include <linux/slab.h> > #include "meson-aoclk.h" > > @@ -84,3 +86,5 @@ int meson_aoclkc_probe(struct platform_device *pdev) > return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, > (void *) data->hw_data); > } > +EXPORT_SYMBOL_GPL(meson_aoclkc_probe); > +MODULE_LICENSE("GPL v2"); > diff --git a/drivers/clk/meson/meson-eeclk.c b/drivers/clk/meson/meson-eeclk.c > index a7cb1e7aedc4..8d5a5dab955a 100644 > --- a/drivers/clk/meson/meson-eeclk.c > +++ b/drivers/clk/meson/meson-eeclk.c > @@ -9,6 +9,7 @@ > #include <linux/platform_device.h> > #include <linux/mfd/syscon.h> > #include <linux/regmap.h> > +#include <linux/module.h> > > #include "clk-regmap.h" > #include "meson-eeclk.h" > @@ -54,3 +55,5 @@ int meson_eeclkc_probe(struct platform_device *pdev) > return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, > data->hw_onecell_data); > } > +EXPORT_SYMBOL_GPL(meson_eeclkc_probe); > +MODULE_LICENSE("GPL v2");
diff --git a/drivers/clk/meson/Kconfig b/drivers/clk/meson/Kconfig index 034da203e8e0..a3417f82aa84 100644 --- a/drivers/clk/meson/Kconfig +++ b/drivers/clk/meson/Kconfig @@ -58,7 +58,7 @@ config COMMON_CLK_MESON8B want peripherals and CPU frequency scaling to work. config COMMON_CLK_GXBB - bool "GXBB and GXL SoC clock controllers support" + tristate "GXBB and GXL SoC clock controllers support" depends on ARM64 default y select COMMON_CLK_MESON_REGMAP @@ -74,7 +74,7 @@ config COMMON_CLK_GXBB Say Y if you want peripherals and CPU frequency scaling to work. config COMMON_CLK_AXG - bool "AXG SoC clock controllers support" + tristate "AXG SoC clock controllers support" depends on ARM64 default y select COMMON_CLK_MESON_REGMAP @@ -100,7 +100,7 @@ config COMMON_CLK_AXG_AUDIO aka axg, Say Y if you want audio subsystem to work. config COMMON_CLK_G12A - bool "G12 and SM1 SoC clock controllers support" + tristate "G12 and SM1 SoC clock controllers support" depends on ARM64 default y select COMMON_CLK_MESON_REGMAP diff --git a/drivers/clk/meson/axg-aoclk.c b/drivers/clk/meson/axg-aoclk.c index b488b40c9d0e..af6db437bcd8 100644 --- a/drivers/clk/meson/axg-aoclk.c +++ b/drivers/clk/meson/axg-aoclk.c @@ -12,6 +12,7 @@ #include <linux/platform_device.h> #include <linux/reset-controller.h> #include <linux/mfd/syscon.h> +#include <linux/module.h> #include "meson-aoclk.h" #include "axg-aoclk.h" @@ -326,6 +327,7 @@ static const struct of_device_id axg_aoclkc_match_table[] = { }, { } }; +MODULE_DEVICE_TABLE(of, axg_aoclkc_match_table); static struct platform_driver axg_aoclkc_driver = { .probe = meson_aoclkc_probe, @@ -335,4 +337,5 @@ static struct platform_driver axg_aoclkc_driver = { }, }; -builtin_platform_driver(axg_aoclkc_driver); +module_platform_driver(axg_aoclkc_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/axg.c b/drivers/clk/meson/axg.c index 13fc0006f63d..7ca7ea7345e5 100644 --- a/drivers/clk/meson/axg.c +++ b/drivers/clk/meson/axg.c @@ -13,6 +13,7 @@ #include <linux/init.h> #include <linux/of_device.h> #include <linux/platform_device.h> +#include <linux/module.h> #include "clk-regmap.h" #include "clk-pll.h" @@ -1354,6 +1355,7 @@ static const struct of_device_id clkc_match_table[] = { { .compatible = "amlogic,axg-clkc", .data = &axg_clkc_data }, {} }; +MODULE_DEVICE_TABLE(of, clkc_match_table); static struct platform_driver axg_driver = { .probe = meson_eeclkc_probe, @@ -1363,4 +1365,5 @@ static struct platform_driver axg_driver = { }, }; -builtin_platform_driver(axg_driver); +module_platform_driver(axg_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/g12a-aoclk.c b/drivers/clk/meson/g12a-aoclk.c index 62499563e4f5..b52990e574d2 100644 --- a/drivers/clk/meson/g12a-aoclk.c +++ b/drivers/clk/meson/g12a-aoclk.c @@ -12,6 +12,7 @@ #include <linux/platform_device.h> #include <linux/reset-controller.h> #include <linux/mfd/syscon.h> +#include <linux/module.h> #include "meson-aoclk.h" #include "g12a-aoclk.h" @@ -461,6 +462,7 @@ static const struct of_device_id g12a_aoclkc_match_table[] = { }, { } }; +MODULE_DEVICE_TABLE(of, g12a_aoclkc_match_table); static struct platform_driver g12a_aoclkc_driver = { .probe = meson_aoclkc_probe, @@ -470,4 +472,5 @@ static struct platform_driver g12a_aoclkc_driver = { }, }; -builtin_platform_driver(g12a_aoclkc_driver); +module_platform_driver(g12a_aoclkc_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/g12a.c b/drivers/clk/meson/g12a.c index b814d44917a5..66094bfec2cc 100644 --- a/drivers/clk/meson/g12a.c +++ b/drivers/clk/meson/g12a.c @@ -15,6 +15,7 @@ #include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/clk.h> +#include <linux/module.h> #include "clk-mpll.h" #include "clk-pll.h" @@ -5370,6 +5371,7 @@ static const struct of_device_id clkc_match_table[] = { }, {} }; +MODULE_DEVICE_TABLE(of, clkc_match_table); static struct platform_driver g12a_driver = { .probe = meson_g12a_probe, @@ -5379,4 +5381,5 @@ static struct platform_driver g12a_driver = { }, }; -builtin_platform_driver(g12a_driver); +module_platform_driver(g12a_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/gxbb-aoclk.c b/drivers/clk/meson/gxbb-aoclk.c index e940861a396b..fce95cf89836 100644 --- a/drivers/clk/meson/gxbb-aoclk.c +++ b/drivers/clk/meson/gxbb-aoclk.c @@ -5,6 +5,7 @@ */ #include <linux/platform_device.h> #include <linux/mfd/syscon.h> +#include <linux/module.h> #include "meson-aoclk.h" #include "gxbb-aoclk.h" @@ -287,6 +288,7 @@ static const struct of_device_id gxbb_aoclkc_match_table[] = { }, { } }; +MODULE_DEVICE_TABLE(of, gxbb_aoclkc_match_table); static struct platform_driver gxbb_aoclkc_driver = { .probe = meson_aoclkc_probe, @@ -295,4 +297,5 @@ static struct platform_driver gxbb_aoclkc_driver = { .of_match_table = gxbb_aoclkc_match_table, }, }; -builtin_platform_driver(gxbb_aoclkc_driver); +module_platform_driver(gxbb_aoclkc_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c index 0a68af6eec3d..d6eed760327d 100644 --- a/drivers/clk/meson/gxbb.c +++ b/drivers/clk/meson/gxbb.c @@ -8,6 +8,7 @@ #include <linux/init.h> #include <linux/of_device.h> #include <linux/platform_device.h> +#include <linux/module.h> #include "gxbb.h" #include "clk-regmap.h" @@ -3519,6 +3520,7 @@ static const struct of_device_id clkc_match_table[] = { { .compatible = "amlogic,gxl-clkc", .data = &gxl_clkc_data }, {}, }; +MODULE_DEVICE_TABLE(of, clkc_match_table); static struct platform_driver gxbb_driver = { .probe = meson_eeclkc_probe, @@ -3528,4 +3530,5 @@ static struct platform_driver gxbb_driver = { }, }; -builtin_platform_driver(gxbb_driver); +module_platform_driver(gxbb_driver); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/meson-aoclk.c b/drivers/clk/meson/meson-aoclk.c index bf8bea675d24..f0858fe789bc 100644 --- a/drivers/clk/meson/meson-aoclk.c +++ b/drivers/clk/meson/meson-aoclk.c @@ -14,6 +14,8 @@ #include <linux/reset-controller.h> #include <linux/mfd/syscon.h> #include <linux/of_device.h> +#include <linux/module.h> + #include <linux/slab.h> #include "meson-aoclk.h" @@ -84,3 +86,5 @@ int meson_aoclkc_probe(struct platform_device *pdev) return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, (void *) data->hw_data); } +EXPORT_SYMBOL_GPL(meson_aoclkc_probe); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/clk/meson/meson-eeclk.c b/drivers/clk/meson/meson-eeclk.c index a7cb1e7aedc4..8d5a5dab955a 100644 --- a/drivers/clk/meson/meson-eeclk.c +++ b/drivers/clk/meson/meson-eeclk.c @@ -9,6 +9,7 @@ #include <linux/platform_device.h> #include <linux/mfd/syscon.h> #include <linux/regmap.h> +#include <linux/module.h> #include "clk-regmap.h" #include "meson-eeclk.h" @@ -54,3 +55,5 @@ int meson_eeclkc_probe(struct platform_device *pdev) return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, data->hw_onecell_data); } +EXPORT_SYMBOL_GPL(meson_eeclkc_probe); +MODULE_LICENSE("GPL v2");