[PATCH V2 3/4] soc: c3: Add support for power domains controller
Kevin Hilman
khilman at baylibre.com
Wed Jul 26 15:40:23 PDT 2023
Xianwei Zhao <xianwei.zhao at amlogic.com> writes:
> Add support for C3 Power controller. C3 power control
> registers are in secure domain, and should be accessed by SMC.
>
> Signed-off-by: Xianwei Zhao <xianwei.zhao at amlogic.com>
> ---
> V1 -> V2: Fixed some formatting.
> ---
> drivers/soc/amlogic/meson-secure-pwrc.c | 26 +++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/drivers/soc/amlogic/meson-secure-pwrc.c b/drivers/soc/amlogic/meson-secure-pwrc.c
> index c11d65a3e3d9..a1ffebf70de3 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/amlogic,c3-pwrc.h>
> #include <dt-bindings/power/meson-s4-power.h>
> #include <linux/arm-smccc.h>
> #include <linux/firmware/meson/meson_sm.h>
> @@ -120,6 +121,22 @@ static struct meson_secure_pwrc_domain_desc a1_pwrc_domains[] = {
> SEC_PD(RSA, 0),
> };
>
> +static struct meson_secure_pwrc_domain_desc c3_pwrc_domains[] = {
> + SEC_PD(C3_NNA, 0),
> + SEC_PD(C3_AUDIO, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_SDIOA, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_EMMC, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_USB_COMB, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_SDCARD, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_ETH, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_GE2D, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_CVE, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_GDC_WRAP, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_ISP_TOP, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_MIPI_ISP_WRAP, GENPD_FLAG_ALWAYS_ON),
> + SEC_PD(C3_VCODEC, 0),
> +};
All of these domains being hard-coded to ALWAYS_ON looks suspicious, and
can also be an indicator that the drivers for these domains are not
(properly) using runtime PM, or not connected to the correct domains the DT.
Similar to the tables for s4 and a1 in this same file, please describe
the reason that each of these domains needs to be hard coded to be
always on.
Thanks,
Kevin
More information about the linux-arm-kernel
mailing list