From bc59f37c9bf3f9c86653a0d0fa29110d26372edf Mon Sep 17 00:00:00 2001 From: Antony Arun T Date: Fri, 6 Sep 2019 12:09:53 +0530 Subject: [PATCH] ipq6018: reset: Do pmic reset if "atf" env variable is set Change-Id: Ie8e1f1907841cac52c52005209bbcec5690de4de Signed-off-by: Antony Arun T --- board/qca/arm/ipq6018/ipq6018.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/board/qca/arm/ipq6018/ipq6018.c b/board/qca/arm/ipq6018/ipq6018.c index faeac48b12..f128d9e565 100644 --- a/board/qca/arm/ipq6018/ipq6018.c +++ b/board/qca/arm/ipq6018/ipq6018.c @@ -1150,10 +1150,27 @@ void qti_scm_pshold(void) writel(0, GCNT_PSHOLD); } +static void atf_reset(void) +{ + if(*tz_wonce == 0 ) { /*COLD REBOOT*/ + if(do_pmic_reset()) + printf("PMIC Reset failed, please do power cycle\n"); + } + else { /*WARM REBOOT*/ + psci_sys_reset(); + } + while(1); +} + void reset_cpu(unsigned long a) { reset_crashdump(); - psci_sys_reset(); + + if(getenv("atf")) + atf_reset(); + else + psci_sys_reset(); + while(1); }