summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Chen <philipchen@chromium.org>2019-03-07 11:41:08 -0800
committerchrome-bot <chrome-bot@chromium.org>2019-03-08 21:20:54 -0800
commit938805d1cc5c75631deee48e7dac2b9f6a871d03 (patch)
tree283555d9be5bee0d5feb333206adfbfe4d3c9f88
parent0907090490b07357902927f089228d63a775cdf0 (diff)
downloadchrome-ec-938805d1cc5c75631deee48e7dac2b9f6a871d03.tar.gz
bq25710: Report VBUS as 0 when VBUS is too low to measure
BUG=b:124968142 BRANCH=none TEST=verify VBUS measurement via 'ectool usbpdpower' Change-Id: I1966537f394016706f96e975c7b54008ea8bfa33 Signed-off-by: Philip Chen <philipchen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1509176 Reviewed-by: Scott Collyer <scollyer@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org>
-rw-r--r--driver/charger/bq25710.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c
index c9724b7d4c..6ace672da3 100644
--- a/driver/charger/bq25710.c
+++ b/driver/charger/bq25710.c
@@ -324,9 +324,13 @@ int charger_get_vbus_voltage(int port)
if (rv)
goto error;
- /* LSB => 64mV */
- return (reg >> BQ25710_ADC_VBUS_STEP_BIT_OFFSET) *
- BQ25710_ADC_VBUS_STEP_MV + BQ25710_ADC_VBUS_BASE_MV;
+ reg >>= BQ25710_ADC_VBUS_STEP_BIT_OFFSET;
+ /*
+ * LSB => 64mV.
+ * Return 0 when VBUS <= 3.2V as ADC can't measure it.
+ */
+ return reg ?
+ (reg * BQ25710_ADC_VBUS_STEP_MV + BQ25710_ADC_VBUS_BASE_MV) : 0;
error:
CPRINTF("Could not read VBUS ADC! Error: %d\n", rv);