summaryrefslogtreecommitdiff
path: root/driver/tcpm/rt1718s.c
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2021-07-22 18:35:41 +0800
committerCommit Bot <commit-bot@chromium.org>2021-07-29 06:16:15 +0000
commitcb1e1870303dd565c32bf4d91f6e73f47b57b7d2 (patch)
tree9bee3f5b250961b0cf23de6fe483057e2914751e /driver/tcpm/rt1718s.c
parentafd9875ab56f4172d3d7fc7ec430ddf9afdc8176 (diff)
downloadchrome-ec-cb1e1870303dd565c32bf4d91f6e73f47b57b7d2.tar.gz
ppc/rt1718s: notify charger task about vbus change
PPC driver is responsible to notify charger task about vbus change. Original driver didn't implementation this. Also make BC1.2 driver correctly enables BC1.2 detection on vbus change. BUG=b:192422592 TEST=manually verify PD and BC1.2 works BRANCH=main Signed-off-by: Ting Shen <phoenixshen@google.com> Change-Id: I0bcbe0a1a43d9a9bcae61d69e247829648dd0d7c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3045249 Tested-by: Ting Shen <phoenixshen@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Eric Yilun Lin <yllin@google.com>
Diffstat (limited to 'driver/tcpm/rt1718s.c')
-rw-r--r--driver/tcpm/rt1718s.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/driver/tcpm/rt1718s.c b/driver/tcpm/rt1718s.c
index 0c3c9c9b10..fb5da803eb 100644
--- a/driver/tcpm/rt1718s.c
+++ b/driver/tcpm/rt1718s.c
@@ -273,19 +273,20 @@ static void rt1718s_bc12_usb_charger_task(const int port)
while (1) {
uint32_t evt = task_wait_event(-1);
- if (evt & USB_CHG_EVENT_DR_UFP)
- rt1718s_enable_bc12_sink(port, true);
-
- if ((evt & USB_CHG_EVENT_DR_DFP) ||
- (evt & USB_CHG_EVENT_CC_OPEN)) {
- rt1718s_update_charge_manager(
- port, CHARGE_SUPPLIER_NONE);
+ if (evt & USB_CHG_EVENT_VBUS) {
+ if (pd_snk_is_vbus_provided(port))
+ rt1718s_enable_bc12_sink(port, true);
+ else
+ rt1718s_update_charge_manager(
+ port, CHARGE_SUPPLIER_NONE);
}
/* detection done, update charge_manager and stop detection */
if (evt & USB_CHG_EVENT_BC12) {
+ int type = rt1718s_get_bc12_type(port);
+
rt1718s_update_charge_manager(
- port, rt1718s_get_bc12_type(port));
+ port, type);
rt1718s_enable_bc12_sink(port, false);
}
}