[PATCH 2/2] clk: spacemit: register pm domain auxiliary driver
From: Yixun Lan
Date: Wed Oct 07 2026 - 22:59:02 EST
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@xxxxxxxxxx>
---
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