diff options
Diffstat (limited to 'plat')
-rw-r--r-- | plat/freescale/imx8qm/imx8qm_psci.c | 11 | ||||
-rw-r--r-- | plat/freescale/imx8qxp/imx8qxp_psci.c | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/plat/freescale/imx8qm/imx8qm_psci.c b/plat/freescale/imx8qm/imx8qm_psci.c index 7cc80c88..ebc7d08c 100644 --- a/plat/freescale/imx8qm/imx8qm_psci.c +++ b/plat/freescale/imx8qm/imx8qm_psci.c @@ -224,6 +224,16 @@ void __attribute__((noreturn)) imx_system_reset(void) ; } +void __attribute__((noreturn)) imx_system_off(void) +{ + /* + * Never return, no SCFW API is available for + * system poweroff, here just do wfi for now + */ + while (1) + wfi(); +} + static const plat_psci_ops_t imx_plat_psci_ops = { .pwr_domain_on = imx_pwr_domain_on, .pwr_domain_on_finish = imx_pwr_domain_on_finish, @@ -235,6 +245,7 @@ static const plat_psci_ops_t imx_plat_psci_ops = { .pwr_domain_suspend_finish = imx_domain_suspend_finish, .get_sys_suspend_power_state = imx_get_sys_suspend_power_state, .system_reset = imx_system_reset, + .system_off = imx_system_off, }; /* export the platform specific psci ops */ diff --git a/plat/freescale/imx8qxp/imx8qxp_psci.c b/plat/freescale/imx8qxp/imx8qxp_psci.c index 6f2883f4..f235d5ec 100644 --- a/plat/freescale/imx8qxp/imx8qxp_psci.c +++ b/plat/freescale/imx8qxp/imx8qxp_psci.c @@ -201,6 +201,16 @@ void __attribute__((noreturn)) imx_system_reset(void) ; } +void __attribute__((noreturn)) imx_system_off(void) +{ + /* + * Never return, no SCFW API is available for + * system poweroff, here just do wfi for now + */ + while (1) + wfi(); +} + static const plat_psci_ops_t imx_plat_psci_ops = { .pwr_domain_on = imx_pwr_domain_on, .pwr_domain_on_finish = imx_pwr_domain_on_finish, @@ -212,6 +222,7 @@ static const plat_psci_ops_t imx_plat_psci_ops = { .pwr_domain_suspend_finish = imx_domain_suspend_finish, .get_sys_suspend_power_state = imx_get_sys_suspend_power_state, .system_reset = imx_system_reset, + .system_off = imx_system_off, }; /* export the platform specific psci ops */ |