diff options
author | Furquan Shaikh <furquan@google.com> | 2019-07-15 15:57:32 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-07-16 05:49:41 +0000 |
commit | b95d79b7e496390f6c9cc6f0813685cce286132e (patch) | |
tree | 82e1045e84134b4bee6de4af69228a9833369caa /baseboard | |
parent | 92094927ded5bb9729636377642204b16b9bb961 (diff) | |
download | chrome-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>
Diffstat (limited to 'baseboard')
-rw-r--r-- | baseboard/hatch/baseboard.h | 4 | ||||
-rw-r--r-- | baseboard/hatch/battery.c | 10 |
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; } |