diff options
author | Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com> | 2021-07-12 19:29:52 +0900 |
---|---|---|
committer | Marek Vasut <marek.vasut+renesas@gmail.com> | 2021-10-16 17:41:50 +0200 |
commit | 731aa26f38d76645b6d50077c28dffb9b02dd08a (patch) | |
tree | 773f8bd45a166aa206cd88dfcf4a501e38b60559 /plat/renesas | |
parent | 49593cc1ce0d0471aeef7ca24a5415da2dd55bea (diff) | |
download | arm-trusted-firmware-731aa26f38d76645b6d50077c28dffb9b02dd08a.tar.gz |
feat(plat/rcar): change process for Suspend To RAM
- Added the function rcar_pwr_domain_pwr_down_wfi() for power down process.
And change the sequence to power down.
- Removed clearing the count of psci_locks (PSCI exclusive lock) during
Warm Boot.
Signed-off-by: Koichi Yamaguchi <koichi.yamaguchi.zb@hitachi.com>
Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I684d54a798a6dccde15fbebe16c6e104cbb470ed
Diffstat (limited to 'plat/renesas')
-rw-r--r-- | plat/renesas/common/plat_pm.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/plat/renesas/common/plat_pm.c b/plat/renesas/common/plat_pm.c index 6a9ad450d..1d4a7f634 100644 --- a/plat/renesas/common/plat_pm.c +++ b/plat/renesas/common/plat_pm.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2020, Renesas Electronics Corporation. All rights reserved. + * Copyright (c) 2015-2021, Renesas Electronics Corporation. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -128,11 +128,6 @@ static void rcar_pwr_domain_suspend(const psci_power_state_t *target_state) rcar_pwrc_clusteroff(mpidr); } - -#if RCAR_SYSTEM_SUSPEND - if (SYSTEM_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) - rcar_pwrc_suspend_to_ram(); -#endif } static void rcar_pwr_domain_suspend_finish(const psci_power_state_t @@ -160,6 +155,18 @@ finish: rcar_pwr_domain_on_finish(target_state); } +static void __dead2 rcar_pwr_domain_pwr_down_wfi(const psci_power_state_t *target_state) +{ +#if RCAR_SYSTEM_SUSPEND + if (SYSTEM_PWR_STATE(target_state) == PLAT_MAX_OFF_STATE) + rcar_pwrc_suspend_to_ram(); +#endif + wfi(); + + ERROR("RCAR Power Down: operation not handled.\n"); + panic(); +} + static void __dead2 rcar_system_off(void) { #if PMIC_ROHM_BD9571 @@ -292,6 +299,7 @@ static const plat_psci_ops_t rcar_plat_psci_ops = { .system_off = rcar_system_off, .system_reset = rcar_system_reset, .validate_power_state = rcar_validate_power_state, + .pwr_domain_pwr_down_wfi = rcar_pwr_domain_pwr_down_wfi, #if RCAR_SYSTEM_SUSPEND .get_sys_suspend_power_state = rcar_get_sys_suspend_power_state, #endif |