diff options
author | johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com> | 2022-09-12 16:38:51 +0800 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-13 05:25:48 +0000 |
commit | 7531bb61da19c4b2ea0c362e8e196c4772e06dec (patch) | |
tree | 89bad0afdbc8ca9681eb83dd0e696323ef3eca6d | |
parent | 4453b1e2bb1eacebc51de6e6cc2d82ec915f71ab (diff) | |
download | chrome-ec-7531bb61da19c4b2ea0c362e8e196c4772e06dec.tar.gz |
Xivu: Add helper function extpower_handle_update
This change adds a helper function extpower_handle_update() that
performs all the necessary actions that need to be done on external
power state change:
1. Call hook_notify with AC_CHANGE
2. Update memmap_batt_flags to update EC_BATT_FLAG_AC_PRESENT
3. Set host event for EC_HOST_EVENT_AC_CONNECTED or
EC_HOST_EVENT_AC_DISCONNECTED.
BUG=b:244831994
BRANCH=None
TEST=Test on xivu,can resume from suspend when plug/unplug AC.
Signed-off-by: johnwc_yeh <johnwc_yeh@compal.corp-partner.google.com>
Change-Id: I48000be65184356217ec50415829e3b4099cf871
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3890026
Reviewed-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-by: SamSP Liu <samsp_liu2@compal.corp-partner.google.com>
Reviewed-by: Andrew McRae <amcrae@google.com>
Code-Coverage: Andrew McRae <amcrae@google.com>
-rw-r--r-- | zephyr/projects/nissa/xivu/src/charger.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/zephyr/projects/nissa/xivu/src/charger.c b/zephyr/projects/nissa/xivu/src/charger.c index 8ad841572d..5021a55758 100644 --- a/zephyr/projects/nissa/xivu/src/charger.c +++ b/zephyr/projects/nissa/xivu/src/charger.c @@ -36,9 +36,17 @@ int extpower_is_present(void) */ __override void board_check_extpower(void) { + static int last_extpower_present; int extpower_present_p0 = 0; int extpower_present_p1 = 0; + int extpower_present = extpower_is_present(); + + if (last_extpower_present ^ extpower_present) + extpower_handle_update(extpower_present); + + last_extpower_present = extpower_present; + if (pd_is_connected(0)) extpower_present_p0 = extpower_is_present(); else if (pd_is_connected(1)) |