summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSue Chen <sue.chen@quanta.corp-partner.google.com>2022-07-26 11:13:52 +0800
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-08-08 19:42:23 +0000
commit55cb88c87dd7340606e90d1670480d9cd3505c64 (patch)
treeaa75e899cce4cda4f6309d314b921229bf19c9f1
parent29ed38fc9ebb99af448739615a2c38de13a82cab (diff)
downloadchrome-ec-55cb88c87dd7340606e90d1670480d9cd3505c64.tar.gz
Quackingstick: Move 2s delay time to battery_is_present
Remove the workaround 2s in HOOK_INIT for first boot. Add 2s delay to battery_is_present() defined in board level. BUG=b:231911921 BRANCH=trogdor TEST=no power loss after the battery resume from cut off. Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Change-Id: Id0f8e5beeee2934b61e21d6602419c4ca29ef2de Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3787357 Reviewed-by: Wai-Hong Tam <waihong@google.com> (cherry picked from commit 44f4798c7e9dd46d404862cf248d273783cfb662) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3815861 Commit-Queue: Wai-Hong Tam <waihong@google.com>
-rw-r--r--board/quackingstick/board.c18
-rw-r--r--board/quackingstick/board.h5
2 files changed, 15 insertions, 8 deletions
diff --git a/board/quackingstick/board.c b/board/quackingstick/board.c
index f9ac97b30a..7c70d31963 100644
--- a/board/quackingstick/board.c
+++ b/board/quackingstick/board.c
@@ -425,21 +425,27 @@ void board_tcpc_init(void)
}
DECLARE_HOOK(HOOK_INIT, board_tcpc_init, HOOK_PRIO_INIT_I2C+1);
-void board_delay_on_first_power_on(void)
+enum battery_present battery_is_present(void)
{
+ static int first_check_done;
+
/*
* b/231911921: It's found that the D-FET status is incorrect
* when the battery resume from cut off. The battery needs
* about 2s to ready to discharge so delay 2s before charge
* manager init.
*/
- if (system_get_reset_flags() == EC_RESET_FLAG_POWER_ON) {
- CPRINTS("Delay 2s on the first power on.");
- sleep(2);
+ if (!first_check_done) {
+ if (battery_get_disconnect_state() ==
+ BATTERY_NOT_DISCONNECTED) {
+ CPRINTS("Delay 2s on the first power on.");
+ sleep(2);
+ }
+ first_check_done = 1;
}
+
+ return gpio_get_level(GPIO_BATT_PRES_ODL) ? BP_NO : BP_YES;
}
-DECLARE_HOOK(HOOK_INIT, board_delay_on_first_power_on,
- HOOK_PRIO_CHARGE_MANAGER_INIT - 1);
void board_hibernate(void)
{
diff --git a/board/quackingstick/board.h b/board/quackingstick/board.h
index 9a43d1a03d..a794034a69 100644
--- a/board/quackingstick/board.h
+++ b/board/quackingstick/board.h
@@ -26,8 +26,9 @@
#undef CONFIG_CMD_TASK_RESET
/* Battery */
-#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
-#define CONFIG_BATTERY_REVIVE_DISCONNECT
+#define CONFIG_BATTERY_DEVICE_CHEMISTRY "LION"
+#undef CONFIG_BATTERY_PRESENT_GPIO
+#define CONFIG_BATTERY_PRESENT_CUSTOM
#define CONFIG_BATTERY_FUEL_GAUGE
#define CONFIG_BATTERY_VENDOR_PARAM