[PATCH v7 4/7] pmdomain: rockchip: Add smc call to inform firmware
Heiko Stübner
heiko at sntech.de
Mon Feb 10 23:35:58 PST 2025
Am Mittwoch, 5. Februar 2025, 07:15:53 MEZ schrieb Shawn Lin:
> Inform firmware to keep the power domain on or off.
>
> Suggested-by: Ulf Hansson <ulf.hansson at linaro.org>
> Signed-off-by: Shawn Lin <shawn.lin at rock-chips.com>
Acked-by: Heiko Stuebner <heiko at sntech.de>
> ---
>
> Changes in v7: None
> Changes in v6: None
> Changes in v5:
> - fix a compile warning
>
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
>
> drivers/pmdomain/rockchip/pm-domains.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/pmdomain/rockchip/pm-domains.c b/drivers/pmdomain/rockchip/pm-domains.c
> index cb0f938..49842f1 100644
> --- a/drivers/pmdomain/rockchip/pm-domains.c
> +++ b/drivers/pmdomain/rockchip/pm-domains.c
> @@ -5,6 +5,7 @@
> * Copyright (c) 2015 ROCKCHIP, Co. Ltd.
> */
>
> +#include <linux/arm-smccc.h>
> #include <linux/io.h>
> #include <linux/iopoll.h>
> #include <linux/err.h>
> @@ -20,6 +21,7 @@
> #include <linux/regmap.h>
> #include <linux/mfd/syscon.h>
> #include <soc/rockchip/pm_domains.h>
> +#include <soc/rockchip/rockchip_sip.h>
> #include <dt-bindings/power/px30-power.h>
> #include <dt-bindings/power/rockchip,rv1126-power.h>
> #include <dt-bindings/power/rk3036-power.h>
> @@ -540,6 +542,7 @@ static void rockchip_do_pmu_set_power_domain(struct rockchip_pm_domain *pd,
> struct generic_pm_domain *genpd = &pd->genpd;
> u32 pd_pwr_offset = pd->info->pwr_offset;
> bool is_on, is_mem_on = false;
> + struct arm_smccc_res res;
>
> if (pd->info->pwr_mask == 0)
> return;
> @@ -567,6 +570,11 @@ static void rockchip_do_pmu_set_power_domain(struct rockchip_pm_domain *pd,
> genpd->name, is_on);
> return;
> }
> +
> + /* Inform firmware to keep this pd on or off */
> + arm_smccc_smc(ROCKCHIP_SIP_SUSPEND_MODE, ROCKCHIP_SLEEP_PD_CONFIG,
> + pmu->info->pwr_offset + pd_pwr_offset,
> + pd->info->pwr_mask, on, 0, 0, 0, &res);
> }
>
> static int rockchip_pd_power(struct rockchip_pm_domain *pd, bool power_on)
>
More information about the Linux-rockchip
mailing list