power: rk3399: Use longer SYS_RST hold time on chipset reset

BUG=chrome-os-partner:57990
BRANCH=gru
TEST=On kevin, verify `apreset` and kernel panic cause successful AP
reset.

Change-Id: Ic5ad2fd2d2d08ae32a60314e30f4cdff061da164
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/395533
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
(cherry picked from commit 8fb0dedd8daebeca3757bc341d0a5355d3b26ba5)
Reviewed-on: https://chromium-review.googlesource.com/396136
Commit-Ready: Shawn N <shawnn@chromium.org>
Tested-by: Shawn N <shawnn@chromium.org>
Reviewed-by: Shawn N <shawnn@chromium.org>
This commit is contained in:
Shawn Nematbakhsh
2016-10-08 09:45:52 -07:00
committed by chrome-bot
parent 6598f08930
commit 81d32b8106

View File

@@ -58,6 +58,7 @@ void chipset_force_shutdown(void)
task_wake(TASK_ID_CHIPSET);
}
#define SYS_RST_HOLD_US (1 * MSEC)
void chipset_reset(int cold_reset)
{
/* Print out the RTC to help correlate resets in logs. */
@@ -68,7 +69,10 @@ void chipset_reset(int cold_reset)
/* Pulse SYS_RST */
gpio_set_level(GPIO_SYS_RST_L, 0);
udelay(90);
if (in_interrupt_context())
udelay(SYS_RST_HOLD_US);
else
usleep(SYS_RST_HOLD_US);
gpio_set_level(GPIO_SYS_RST_L, 1);
}