[PATCH 2/2] clk: spacemit: register pm domain auxiliary driver
Iker Pedrosa
ikerpedrosam at gmail.com
Thu Oct 15 09:58:00 PDT 2026
Tested on OrangePi RV2.
Tested-by: Iker Pedrosa <ikerpedrosam at gmail.com>
Reviewed-by: Iker Pedrosa <ikerpedrosam at gmail.com>
El jue, 8 oct 2026 a las 4:58, Yixun Lan (<dlan at kernel.org>) escribió:
>
> 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