diff options
Diffstat (limited to 'plat/imx/imx8m/gpc_common.c')
-rw-r--r-- | plat/imx/imx8m/gpc_common.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/plat/imx/imx8m/gpc_common.c b/plat/imx/imx8m/gpc_common.c index 81755a70..d8d349fb 100644 --- a/plat/imx/imx8m/gpc_common.c +++ b/plat/imx/imx8m/gpc_common.c @@ -9,6 +9,7 @@ #include <arch.h> #include <arch_helpers.h> #include <common/debug.h> +#include <common/runtime_svc.h> #include <lib/mmio.h> #include <lib/psci/psci.h> @@ -16,6 +17,8 @@ #include <imx8m_psci.h> #include <plat_imx8.h> +#define FSL_SIP_CONFIG_GPC_PM_DOMAIN 0x03 + static uint32_t gpc_imr_offset[] = { 0x30, 0x40, 0x1c0, 0x1d0, }; #pragma weak imx_set_cpu_pwr_off @@ -272,3 +275,16 @@ void imx_anamix_override(bool enter) } } } + +int imx_gpc_handler(uint32_t smc_fid, u_register_t x1, u_register_t x2, u_register_t x3) +{ + switch(x1) { + case FSL_SIP_CONFIG_GPC_PM_DOMAIN: + imx_gpc_pm_domain_enable(x2, x3); + break; + default: + return SMC_UNK; + } + + return 0; +} |