diff options
author | Philip Chen <philipchen@chromium.org> | 2019-03-07 11:41:08 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-03-08 21:20:54 -0800 |
commit | 938805d1cc5c75631deee48e7dac2b9f6a871d03 (patch) | |
tree | 283555d9be5bee0d5feb333206adfbfe4d3c9f88 | |
parent | 0907090490b07357902927f089228d63a775cdf0 (diff) | |
download | chrome-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.c | 10 |
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); |