diff options
author | Nina Wu <nina-cm.wu@mediatek.com> | 2020-07-02 12:10:13 +0800 |
---|---|---|
committer | Nina Wu <nina-cm.wu@mediatek.com> | 2020-10-28 17:21:55 +0800 |
commit | 0f408247292b6e49a4228dc7bd3941caf1db5dbc (patch) | |
tree | 5d0e09c1a520fe8990af5897db8754b89f7a3fda | |
parent | b6cec337854b80c8ec3a36b0c7a82c531d59acac (diff) |
mediatek: mt8192: Add reboot function for PSCI
Add system_reset function in psci ops
Change-Id: If85be70b8ae9d6487e02626356f0ff1e78b76de9
Signed-off-by: Nina Wu <nina-cm.wu@mediatek.com>
-rw-r--r-- | plat/mediatek/mt8192/plat_pm.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/plat/mediatek/mt8192/plat_pm.c b/plat/mediatek/mt8192/plat_pm.c index 81a170dd7..becf5d311 100644 --- a/plat/mediatek/mt8192/plat_pm.c +++ b/plat/mediatek/mt8192/plat_pm.c @@ -5,16 +5,36 @@ */ /* common headers */ +#include <arch_helpers.h> +#include <common/debug.h> +#include <drivers/gpio.h> #include <lib/psci/psci.h> /* mediatek platform specific headers */ +#include <plat_params.h> +/******************************************************************************* + * MTK handlers to shutdown/reboot the system + ******************************************************************************/ +static void __dead2 plat_mtk_system_reset(void) +{ + struct bl_aux_gpio_info *gpio_reset = plat_get_mtk_gpio_reset(); + + INFO("MTK System Reset\n"); + + gpio_set_value(gpio_reset->index, gpio_reset->polarity); + + wfi(); + ERROR("MTK System Reset: operation not handled.\n"); + panic(); +} /******************************************************************************* * MTK_platform handler called when an affinity instance is about to be turned * on. The level and mpidr determine the affinity instance. ******************************************************************************/ static const plat_psci_ops_t plat_plat_pm_ops = { + .system_reset = plat_mtk_system_reset, }; int plat_setup_psci_ops(uintptr_t sec_entrypoint, |