summaryrefslogtreecommitdiff
path: root/common/charge_manager.c
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2018-03-08 15:02:17 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-03-09 20:05:13 -0800
commitef4e70174ac2797f0c02753685b35d038a317a6a (patch)
tree9edd3ebb8ae1da806a874835c11e13a119b31de1 /common/charge_manager.c
parentb593d1c05b150fdad68c474ef0e521d5d9c3acea (diff)
downloadchrome-ec-ef4e70174ac2797f0c02753685b35d038a317a6a.tar.gz
usbc: add config support for multiple (and no) vbus adc channels
yorp measures each port's vbus separately on a deticated ADC. Also, add config to take care of ADV_VBUS -1 case too. BRANCH=none BUG=b:74127309 TEST=none Change-Id: I6f4df96caffc3b527b69e67358631dd448172cde Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/956555 Reviewed-by: Edward Hill <ecgh@chromium.org>
Diffstat (limited to 'common/charge_manager.c')
-rw-r--r--common/charge_manager.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/common/charge_manager.c b/common/charge_manager.c
index 2a97e66235..b5fdfa7af9 100644
--- a/common/charge_manager.c
+++ b/common/charge_manager.c
@@ -370,15 +370,17 @@ static void charge_manager_fill_power_info(int port,
if (r->role == USB_PD_PORT_POWER_SINK_NOT_CHARGING)
r->meas.voltage_now = 5000;
else {
-#ifdef CONFIG_USB_PD_VBUS_MEASURE_CHARGER
+#if defined(CONFIG_USB_PD_VBUS_MEASURE_CHARGER)
r->meas.voltage_now = charger_get_vbus_voltage(port);
+#elif defined(CONFIG_USB_PD_VBUS_MEASURE_ADC_EACH_PORT)
+ r->meas.voltage_now =
+ adc_read_channel(board_get_vbus_adc(port));
+#elif defined(CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT)
+ /* No VBUS ADC channel - voltage is unknown */
+ r->meas.voltage_now = 0;
#else
- if (ADC_VBUS >= 0)
- r->meas.voltage_now =
- adc_read_channel(ADC_VBUS);
- else
- /* No VBUS ADC channel - voltage is unknown */
- r->meas.voltage_now = 0;
+ /* There is a single ADC that measures joint Vbus */
+ r->meas.voltage_now = adc_read_channel(ADC_VBUS);
#endif
}
}