diff options
author | Ting Shen <phoenixshen@google.com> | 2021-07-22 18:35:41 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-07-29 06:16:15 +0000 |
commit | cb1e1870303dd565c32bf4d91f6e73f47b57b7d2 (patch) | |
tree | 9bee3f5b250961b0cf23de6fe483057e2914751e /driver/tcpm/rt1718s.c | |
parent | afd9875ab56f4172d3d7fc7ec430ddf9afdc8176 (diff) | |
download | chrome-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.c | 17 |
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); } } |