[PATCH 2/2] clk: spacemit: register pm domain auxiliary driver

Yixun Lan dlan at kernel.org
Wed Oct 7 19:57:56 PDT 2026


The APMU (Application Subsystem Power Management Unit) register region
block contains the pm domain management capabilities, introduce a pm_name
member inside CCU data to register a pm domain device via the auxiliary
bus if that is needed - if pm_name is null, no device is registered.

Signed-off-by: Yixun Lan <dlan at kernel.org>
---
 drivers/clk/spacemit/ccu-k1.c     | 1 +
 drivers/clk/spacemit/ccu-k3.c     | 1 +
 drivers/clk/spacemit/ccu_common.c | 4 ++++
 drivers/clk/spacemit/ccu_common.h | 1 +
 4 files changed, 7 insertions(+)

diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c
index dee14d25f75d..9e2727521916 100644
--- a/drivers/clk/spacemit/ccu-k1.c
+++ b/drivers/clk/spacemit/ccu-k1.c
@@ -972,6 +972,7 @@ static struct clk_hw *k1_ccu_apmu_hws[] = {
 
 static const struct spacemit_ccu_data k1_ccu_apmu_data = {
 	.reset_name	= "k1-apmu-reset",
+	.pm_name	= "k1-apmu-pmdomain",
 	.hws		= k1_ccu_apmu_hws,
 	.num		= ARRAY_SIZE(k1_ccu_apmu_hws),
 };
diff --git a/drivers/clk/spacemit/ccu-k3.c b/drivers/clk/spacemit/ccu-k3.c
index 92b930d5ff30..e895d3ee6a28 100644
--- a/drivers/clk/spacemit/ccu-k3.c
+++ b/drivers/clk/spacemit/ccu-k3.c
@@ -1449,6 +1449,7 @@ static struct clk_hw *k3_ccu_apmu_hws[] = {
 
 static const struct spacemit_ccu_data k3_ccu_apmu_data = {
 	.reset_name	= "k3-apmu-reset",
+	.pm_name	= "k3-apmu-pmdomain",
 	.hws		= k3_ccu_apmu_hws,
 	.num		= ARRAY_SIZE(k3_ccu_apmu_hws),
 };
diff --git a/drivers/clk/spacemit/ccu_common.c b/drivers/clk/spacemit/ccu_common.c
index 56f3d081857e..38577fb7776a 100644
--- a/drivers/clk/spacemit/ccu_common.c
+++ b/drivers/clk/spacemit/ccu_common.c
@@ -169,6 +169,10 @@ int spacemit_ccu_probe(struct platform_device *pdev, const char *compat)
 	if (ret)
 		return dev_err_probe(dev, ret, "failed to register resets\n");
 
+	ret = spacemit_ccu_aux_register(dev, base_regmap, data->pm_name);
+	if (ret)
+		return dev_err_probe(dev, ret, "failed to register pm domain\n");
+
 	return 0;
 }
 EXPORT_SYMBOL_NS_GPL(spacemit_ccu_probe, "CLK_SPACEMIT");
diff --git a/drivers/clk/spacemit/ccu_common.h b/drivers/clk/spacemit/ccu_common.h
index 8691698e007d..221a92117b94 100644
--- a/drivers/clk/spacemit/ccu_common.h
+++ b/drivers/clk/spacemit/ccu_common.h
@@ -41,6 +41,7 @@ static inline struct ccu_common *hw_to_ccu_common(struct clk_hw *hw)
 
 struct spacemit_ccu_data {
 	const char *reset_name;
+	const char *pm_name;
 	struct clk_hw **hws;
 	size_t num;
 };

-- 
2.56.0




More information about the linux-riscv mailing list