summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorSue Chen <sue.chen@quanta.corp-partner.google.com>2021-08-10 15:32:17 +0800
committerCommit Bot <commit-bot@chromium.org>2021-08-27 15:06:11 +0000
commit8b25b53ed917fa93bd496e5839fc1c69d9ef4728 (patch)
tree7d4123c81f7472b6f42dcc65823fa45e00f37698 /common
parent3dfe1dc79a2d76630b8e9a8624a81ec5ca5d7986 (diff)
downloadchrome-ec-8b25b53ed917fa93bd496e5839fc1c69d9ef4728.tar.gz
charge_manager: board specific callback to get vbus voltage
Add board_get_vbus_voltage to get vbus voltage by board, for ADC_VBUS maybe is only for one typec port when the DUT supports multiple typec. BUG=b:196001868 BRANCH=none TEST=show correct C1 vbus voltage on tomato Signed-off-by: Sue Chen <sue.chen@quanta.corp-partner.google.com> Change-Id: Ia567ec3bddf4f62a08c9902b4f0721783f2c07ff Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3084403 Reviewed-by: Ting Shen <phoenixshen@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org>
Diffstat (limited to 'common')
-rw-r--r--common/charge_manager.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/common/charge_manager.c b/common/charge_manager.c
index a20ab33068..28fe109f1d 100644
--- a/common/charge_manager.c
+++ b/common/charge_manager.c
@@ -350,6 +350,11 @@ static enum usb_power_roles get_current_power_role(int port,
return role;
}
+__overridable int board_get_vbus_voltage(int port)
+{
+ return 0;
+}
+
static int get_vbus_voltage(int port, enum usb_power_roles current_role)
{
int voltage_mv;
@@ -375,6 +380,8 @@ static int get_vbus_voltage(int port, enum usb_power_roles current_role)
#elif defined(CONFIG_USB_PD_VBUS_MEASURE_NOT_PRESENT)
/* No VBUS ADC channel - voltage is unknown */
voltage_mv = 0;
+#elif defined(CONFIG_USB_PD_VBUS_MEASURE_BY_BOARD)
+ voltage_mv = board_get_vbus_voltage(port);
#else
/* There is a single ADC that measures joint Vbus */
voltage_mv = adc_read_channel(ADC_VBUS);