]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clk: spacemit: Respect Kconfig setting when building modules
authorInochi Amaoto <inochiama@gmail.com>
Fri, 19 Dec 2025 01:28:17 +0000 (09:28 +0800)
committerYixun Lan <dlan@gentoo.org>
Tue, 23 Dec 2025 02:28:28 +0000 (10:28 +0800)
Currently, the SPACEMIT_CCU entry is only a switch for enabling entry
SPACEMIT_K1_CCU. It does not guide the build for common clock codes
even if it is a tristate entry. This makes this entry useless.

Change the Makefile to add a separate build for common clock logic,
so the SPACEMIT_CCU entry takes effect, also add necessary
MODULE_LICENSE()/MODULE_DESCRIPTION()/EXPORT_SYMBOL() for the module
build.

Fixes: 1b72c59db0ad ("clk: spacemit: Add clock support for SpacemiT K1 SoC")
Signed-off-by: Inochi Amaoto <inochiama@gmail.com>
Reviewed-by: Yixun Lan <dlan@gentoo.org>
Link: https://lore.kernel.org/r/20251219012819.440972-2-inochiama@gmail.com
Signed-off-by: Yixun Lan <dlan@gentoo.org>
drivers/clk/spacemit/Makefile
drivers/clk/spacemit/ccu-k1.c
drivers/clk/spacemit/ccu_common.c [new file with mode: 0644]
drivers/clk/spacemit/ccu_ddn.c
drivers/clk/spacemit/ccu_mix.c
drivers/clk/spacemit/ccu_pll.c

index 5ec6da61db98e0aeb6773ceae55066f94dcde5b1..ad2bf315109b805271ade4c931732df7db2a28b4 100644 (file)
@@ -1,5 +1,10 @@
 # SPDX-License-Identifier: GPL-2.0
 
-obj-$(CONFIG_SPACEMIT_K1_CCU)  = spacemit-ccu-k1.o
-spacemit-ccu-k1-y              = ccu_pll.o ccu_mix.o ccu_ddn.o
+obj-$(CONFIG_SPACEMIT_CCU)     += spacemit-ccu.o
+spacemit-ccu-y                 += ccu_common.o
+spacemit-ccu-y                 += ccu_pll.o
+spacemit-ccu-y                 += ccu_mix.o
+spacemit-ccu-y                 += ccu_ddn.o
+
+obj-$(CONFIG_SPACEMIT_K1_CCU)  += spacemit-ccu-k1.o
 spacemit-ccu-k1-y              += ccu-k1.o
index 4761bc1e3b6e60bacfcaf3a1be7a32a2180747ad..01d9485b615d32807dd8f9f0ef3c6d00ac59081e 100644 (file)
@@ -1204,6 +1204,7 @@ static struct platform_driver k1_ccu_driver = {
 };
 module_platform_driver(k1_ccu_driver);
 
+MODULE_IMPORT_NS("CLK_SPACEMIT");
 MODULE_DESCRIPTION("SpacemiT K1 CCU driver");
 MODULE_AUTHOR("Haylen Chu <heylenay@4d2.org>");
 MODULE_LICENSE("GPL");
diff --git a/drivers/clk/spacemit/ccu_common.c b/drivers/clk/spacemit/ccu_common.c
new file mode 100644 (file)
index 0000000..4412c41
--- /dev/null
@@ -0,0 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include <linux/module.h>
+
+MODULE_DESCRIPTION("SpacemiT CCU common clock driver");
+MODULE_LICENSE("GPL");
index 5b16e273bee5b1085626f4aea4e41235874a16c0..b5540e0781ffa37c81e7906aecee035a662f0728 100644 (file)
@@ -84,3 +84,4 @@ const struct clk_ops spacemit_ccu_ddn_ops = {
        .determine_rate = ccu_ddn_determine_rate,
        .set_rate       = ccu_ddn_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_ddn_ops, "CLK_SPACEMIT");
index 7b7990875372314dce131295af7f40267d0a127a..67f8b12b4f5b7d2cfcd7fedb53aaf988414fc613 100644 (file)
@@ -198,24 +198,28 @@ const struct clk_ops spacemit_ccu_gate_ops = {
        .enable         = ccu_gate_enable,
        .is_enabled     = ccu_gate_is_enabled,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_gate_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_factor_ops = {
        .determine_rate = ccu_factor_determine_rate,
        .recalc_rate    = ccu_factor_recalc_rate,
        .set_rate       = ccu_factor_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_factor_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_mux_ops = {
        .determine_rate = ccu_mix_determine_rate,
        .get_parent     = ccu_mux_get_parent,
        .set_parent     = ccu_mux_set_parent,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_div_ops = {
        .determine_rate = ccu_mix_determine_rate,
        .recalc_rate    = ccu_div_recalc_rate,
        .set_rate       = ccu_mix_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_div_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_factor_gate_ops = {
        .disable        = ccu_gate_disable,
@@ -226,6 +230,7 @@ const struct clk_ops spacemit_ccu_factor_gate_ops = {
        .recalc_rate    = ccu_factor_recalc_rate,
        .set_rate       = ccu_factor_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_factor_gate_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_mux_gate_ops = {
        .disable        = ccu_gate_disable,
@@ -236,6 +241,7 @@ const struct clk_ops spacemit_ccu_mux_gate_ops = {
        .get_parent     = ccu_mux_get_parent,
        .set_parent     = ccu_mux_set_parent,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_gate_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_div_gate_ops = {
        .disable        = ccu_gate_disable,
@@ -246,6 +252,7 @@ const struct clk_ops spacemit_ccu_div_gate_ops = {
        .recalc_rate    = ccu_div_recalc_rate,
        .set_rate       = ccu_mix_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_div_gate_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_mux_div_gate_ops = {
        .disable        = ccu_gate_disable,
@@ -259,6 +266,7 @@ const struct clk_ops spacemit_ccu_mux_div_gate_ops = {
        .recalc_rate    = ccu_div_recalc_rate,
        .set_rate       = ccu_mix_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_div_gate_ops, "CLK_SPACEMIT");
 
 const struct clk_ops spacemit_ccu_mux_div_ops = {
        .get_parent     = ccu_mux_get_parent,
@@ -268,3 +276,4 @@ const struct clk_ops spacemit_ccu_mux_div_ops = {
        .recalc_rate    = ccu_div_recalc_rate,
        .set_rate       = ccu_mix_set_rate,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_div_ops, "CLK_SPACEMIT");
index d92f0dae65a490e9db52f25a538a518baa487ea8..76d0244873d87c320d5e9675c0a440a421479a76 100644 (file)
@@ -157,3 +157,4 @@ const struct clk_ops spacemit_ccu_pll_ops = {
        .determine_rate = ccu_pll_determine_rate,
        .is_enabled     = ccu_pll_is_enabled,
 };
+EXPORT_SYMBOL_NS_GPL(spacemit_ccu_pll_ops, "CLK_SPACEMIT");