summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2019-07-15 15:57:32 -0700
committerCommit Bot <commit-bot@chromium.org>2019-07-16 05:49:41 +0000
commitb95d79b7e496390f6c9cc6f0813685cce286132e (patch)
tree82e1045e84134b4bee6de4af69228a9833369caa
parent92094927ded5bb9729636377642204b16b9bb961 (diff)
downloadchrome-ec-b95d79b7e496390f6c9cc6f0813685cce286132e.tar.gz
baseboard/hatch: Allow hatch variant to provide battery present info
In case of some hatch variants, there might be a need to identify battery hardware presence using custom method i.e. GPIO_EC_BATT_PRES_ODL might not work correctly. In order to accommodate these variants, this change provides a callback variant_battery_present() that allows variant to provide its own implementation if required. By default, a weak implementation is provided which returns BP_NOT_SURE to use the default GPIO for reading battery present state. BUG=b:135278000 BRANCH=None TEST=None Change-Id: I8504e807cff853dc3276d76a0cd3db1ccb587b9e Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1702869 Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: YongBeum Ha <ybha@samsung.com> Reviewed-by: Philip Chen <philipchen@chromium.org> Tested-by: YongBeum Ha <ybha@samsung.com> Tested-by: Furquan Shaikh <furquan@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
-rw-r--r--baseboard/hatch/baseboard.h4
-rw-r--r--baseboard/hatch/battery.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/baseboard/hatch/baseboard.h b/baseboard/hatch/baseboard.h
index 38e414ad2c..5c096863c1 100644
--- a/baseboard/hatch/baseboard.h
+++ b/baseboard/hatch/baseboard.h
@@ -177,6 +177,10 @@ enum mst_source {
void board_reset_pd_mcu(void);
void baseboard_mst_enable_control(enum mst_source, int level);
+
+/* Check with variant about battery presence. */
+enum battery_present variant_battery_present(void);
+
#endif /* !__ASSEMBLER__ */
#endif /* __CROS_EC_BASEBOARD_H */
diff --git a/baseboard/hatch/battery.c b/baseboard/hatch/battery.c
index 28c57471e6..063aa3721d 100644
--- a/baseboard/hatch/battery.c
+++ b/baseboard/hatch/battery.c
@@ -13,8 +13,18 @@
static enum battery_present batt_pres_prev = BP_NOT_SURE;
+enum battery_present __attribute__((weak)) variant_battery_present(void)
+{
+ return BP_NOT_SURE;
+}
+
enum battery_present battery_hw_present(void)
{
+ enum battery_present bp = variant_battery_present();
+
+ if (bp != BP_NOT_SURE)
+ return bp;
+
return gpio_get_level(GPIO_EC_BATT_PRES_ODL) ? BP_NO : BP_YES;
}