summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);