diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2020-05-05 11:18:38 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-06 02:49:12 +0000 |
commit | 78422f9035b88bee9d0c01fa2974e209e4a0e4f8 (patch) | |
tree | 7453323084ec21ee57e2251002d32ed51311fada | |
parent | e7af52a082dbb4510fed7ea66d967f8996745de3 (diff) | |
download | chrome-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.c | 16 |
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 |