aboutsummaryrefslogtreecommitdiffstats
path: root/plat
diff options
context:
space:
mode:
authorHsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>2020-08-12 16:32:10 +0800
committerManish Pandey <manish.pandey2@arm.com>2020-12-07 23:29:47 +0000
commit26f3dbe2d656e0fda9c52669af7d369c277c259e (patch)
treefbf91b486f4b5105fdbd9ff6baf96599603a0175 /plat
parentcbd6331beb650d0c76a957f0d74e2df0461344f9 (diff)
downloadplatform_external_arm-trusted-firmware-26f3dbe2d656e0fda9c52669af7d369c277c259e.tar.gz
platform_external_arm-trusted-firmware-26f3dbe2d656e0fda9c52669af7d369c277c259e.tar.bz2
platform_external_arm-trusted-firmware-26f3dbe2d656e0fda9c52669af7d369c277c259e.zip
mediatek: mt8192: add power-off support
add power-off support Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com> Change-Id: If19e99971515a8ae1ac9ae21046e4382adc18a69
Diffstat (limited to 'plat')
-rw-r--r--plat/mediatek/mt8192/plat_pm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/plat/mediatek/mt8192/plat_pm.c b/plat/mediatek/mt8192/plat_pm.c
index 654a9a9f8..ac6cb8085 100644
--- a/plat/mediatek/mt8192/plat_pm.c
+++ b/plat/mediatek/mt8192/plat_pm.c
@@ -19,6 +19,7 @@
#include <plat_mtk_lpm.h>
#include <plat_params.h>
#include <plat_pm.h>
+#include <pmic.h>
/*
* Cluster state request:
@@ -334,6 +335,17 @@ static void plat_get_sys_suspend_power_state(psci_power_state_t *req_state)
sizeof(plat_power_state[cpu]));
}
+static void __dead2 plat_mtk_system_off(void)
+{
+ INFO("MTK System Off\n");
+
+ pmic_power_off();
+
+ wfi();
+ ERROR("MTK System Off: operation not handled.\n");
+ panic();
+}
+
static void __dead2 plat_mtk_system_reset(void)
{
struct bl_aux_gpio_info *gpio_reset = plat_get_mtk_gpio_reset();
@@ -355,6 +367,7 @@ static const plat_psci_ops_t plat_psci_ops = {
.pwr_domain_off = plat_power_domain_off,
.pwr_domain_suspend = plat_power_domain_suspend,
.pwr_domain_suspend_finish = plat_power_domain_suspend_finish,
+ .system_off = plat_mtk_system_off,
.validate_power_state = plat_validate_power_state,
.get_sys_suspend_power_state = plat_get_sys_suspend_power_state
};