From 3f6232f2d3de13425c56be4847efd880a414b476 Mon Sep 17 00:00:00 2001 From: Shawn Nematbakhsh Date: Fri, 7 Oct 2016 10:53:13 -0700 Subject: hibernate: Re-init GPIO levels on hibernate wake Reset-on-hibernate wake performs a soft-reset, which re-initializes GPIO states to ROM POR values. Therefore, it is necessary to re-init GPIO states once again based on board-level GPIO settings. BUG=chrome-os-partner:58077 BRANCH=gru TEST=Run `hibernate` on gru, wake, then run `bd99955_dump`. Verify actual register values are printed rather than zeros. Signed-off-by: Shawn Nematbakhsh Change-Id: Ib3eb1dd6aa264d00d42d8e386bfd1ef7f6cf7717 Reviewed-on: https://chromium-review.googlesource.com/395426 Commit-Ready: Shawn N Tested-by: Shawn N Reviewed-by: Shawn N --- chip/it83xx/system.c | 3 ++- chip/mec1322/system.c | 3 ++- chip/npcx/system.c | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/chip/it83xx/system.c b/chip/it83xx/system.c index fee95f2611..32ab43231f 100644 --- a/chip/it83xx/system.c +++ b/chip/it83xx/system.c @@ -94,7 +94,8 @@ int system_is_reboot_warm(void) (reset_flags & RESET_FLAG_POWER_ON) || (reset_flags & RESET_FLAG_WATCHDOG) || (reset_flags & RESET_FLAG_HARD) || - (reset_flags & RESET_FLAG_SOFT)) + (reset_flags & RESET_FLAG_SOFT) || + (reset_flags & RESET_FLAG_HIBERNATE)) return 0; else return 1; diff --git a/chip/mec1322/system.c b/chip/mec1322/system.c index 0090c6b862..26d89c10e3 100644 --- a/chip/mec1322/system.c +++ b/chip/mec1322/system.c @@ -70,7 +70,8 @@ int system_is_reboot_warm(void) (reset_flags & RESET_FLAG_POWER_ON) || (reset_flags & RESET_FLAG_WATCHDOG) || (reset_flags & RESET_FLAG_HARD) || - (reset_flags & RESET_FLAG_SOFT)) + (reset_flags & RESET_FLAG_SOFT) || + (reset_flags & RESET_FLAG_HIBERNATE)) return 0; else return 1; diff --git a/chip/npcx/system.c b/chip/npcx/system.c index 4c350b85ec..2d11217f5b 100644 --- a/chip/npcx/system.c +++ b/chip/npcx/system.c @@ -741,7 +741,8 @@ int system_is_reboot_warm(void) (reset_flags & RESET_FLAG_POWER_ON) || (reset_flags & RESET_FLAG_WATCHDOG) || (reset_flags & RESET_FLAG_HARD) || - (reset_flags & RESET_FLAG_SOFT)) + (reset_flags & RESET_FLAG_SOFT) || + (reset_flags & RESET_FLAG_HIBERNATE)) return 0; else return 1; -- cgit v1.2.1