summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2020-05-05 11:18:38 -0700
committerCommit Bot <commit-bot@chromium.org>2020-05-06 02:49:12 +0000
commit78422f9035b88bee9d0c01fa2974e209e4a0e4f8 (patch)
tree7453323084ec21ee57e2251002d32ed51311fada
parente7af52a082dbb4510fed7ea66d967f8996745de3 (diff)
downloadchrome-ec-78422f9035b88bee9d0c01fa2974e209e4a0e4f8.tar.gz
lm4: Add chip_read_reset_flags and chip_save_reset_flags
Battery backed up RAM is used to store the reset flags. This patch wraps the code reading and writing the reset flags with APIs for the consistency and make it available to external callers like other chips. Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> BUG=chromium:1078470 BRANCH=none TEST=buildall Change-Id: I39c8646e57755d661b239979946df2871275878b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2182561 Reviewed-by: Craig Hesling <hesling@chromium.org> Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org> Tested-by: Daisuke Nojiri <dnojiri@chromium.org> Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r--chip/lm4/system.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/chip/lm4/system.c b/chip/lm4/system.c
index 6a32804bf0..75e7d556ec 100644
--- a/chip/lm4/system.c
+++ b/chip/lm4/system.c
@@ -103,6 +103,16 @@ static int hibdata_write(enum hibdata_index index, uint32_t value)
return wait_for_hibctl_wc();
}
+uint32_t chip_read_reset_flags(void)
+{
+ return hibdata_read(HIBDATA_INDEX_SAVED_RESET_FLAGS);
+}
+
+void chip_save_reset_flags(uint32_t flags)
+{
+ hibdata_write(HIBDATA_INDEX_SAVED_RESET_FLAGS, flags);
+}
+
static void check_reset_cause(void)
{
uint32_t hib_status = LM4_HIBERNATE_HIBRIS;
@@ -169,8 +179,8 @@ static void check_reset_cause(void)
flags |= EC_RESET_FLAG_LOW_BATTERY;
/* Restore then clear saved reset flags */
- flags |= hibdata_read(HIBDATA_INDEX_SAVED_RESET_FLAGS);
- hibdata_write(HIBDATA_INDEX_SAVED_RESET_FLAGS, 0);
+ flags |= chip_read_reset_flags();
+ chip_save_reset_flags(0);
system_set_reset_flags(flags);
}
@@ -529,7 +539,7 @@ void system_reset(int flags)
if (flags & SYSTEM_RESET_LEAVE_AP_OFF)
save_flags |= EC_RESET_FLAG_AP_OFF;
- hibdata_write(HIBDATA_INDEX_SAVED_RESET_FLAGS, save_flags);
+ chip_save_reset_flags(save_flags);
if (flags & SYSTEM_RESET_HARD) {
#ifdef CONFIG_SOFTWARE_PANIC