[PATCH 2/2] soc: s4: Add support for power domains controller

Kevin Hilman khilman at baylibre.com
Tue Feb 1 11:52:41 PST 2022


Hi Shunzhou,

Shunzhou Jiang <shunzhou.jiang at amlogic.com> writes:

> Add support s4 Power controller. In s4, power control
> registers are in secure domain, and should be accessed by smc.
>
> Signed-off-by: Shunzhou Jiang <shunzhou.jiang at amlogic.com>

Thank you for adding support for S4 power domains.

> ---
>  drivers/soc/amlogic/meson-secure-pwrc.c | 21 +++++++++++++++++++++
>  1 file changed, 21 insertions(+)
>
> diff --git a/drivers/soc/amlogic/meson-secure-pwrc.c b/drivers/soc/amlogic/meson-secure-pwrc.c
> index 59bd195fa9c9..8fee01aabab6 100644
> --- a/drivers/soc/amlogic/meson-secure-pwrc.c
> +++ b/drivers/soc/amlogic/meson-secure-pwrc.c
> @@ -11,6 +11,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/pm_domain.h>
>  #include <dt-bindings/power/meson-a1-power.h>
> +#include <dt-bindings/power/meson-s4-power.h>
>  #include <linux/arm-smccc.h>
>  #include <linux/firmware/meson/meson_sm.h>
>  #include <linux/module.h>
> @@ -119,6 +120,17 @@ static struct meson_secure_pwrc_domain_desc a1_pwrc_domains[] = {
>  	SEC_PD(RSA,	0),
>  };
>  
> +static struct meson_secure_pwrc_domain_desc s4_pwrc_domains[] = {
> +	SEC_PD(S4_DOS_HEVC,	0),
> +	SEC_PD(S4_DOS_VDEC,	0),
> +	SEC_PD(S4_VPU_HDMI,	GENPD_FLAG_ALWAYS_ON),
> +	SEC_PD(S4_USB_COMB,	GENPD_FLAG_ALWAYS_ON),
> +	SEC_PD(S4_GE2D,		0),
> +	SEC_PD(S4_ETH,		GENPD_FLAG_ALWAYS_ON),
> +	SEC_PD(S4_DEMOD,	0),
> +	SEC_PD(S4_AUDIO,	0),
> +};

We should avoid the GENPD_FLAG_ALWAYS_ON unless strictly necessary.  If
you look at a1_pwrc_domains[] in this same driver, any use of this flag
has a comment for why it's needed, and it's usually because the domain
is used by low-level SoC/PM code not controlled by linux.

All of these appear to be domains that linux should have driver control,
so should not be set to always on.

Kevin




More information about the linux-amlogic mailing list