summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn Nematbakhsh <shawnn@chromium.org>2017-09-20 16:44:48 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2017-09-25 19:09:33 +0000
commitb42eebb9531f4ad58af6bc71abfe16601dc3a661 (patch)
treef53e0e41c53a85a45583cde1752d2a5996452517
parent193e4ff4e3a358fbe29762ea1bcc733b97cfc9f9 (diff)
downloadchrome-ec-b42eebb9531f4ad58af6bc71abfe16601dc3a661.tar.gz
pd: Apply consistent Rp at boot
CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT Rp is applied when neither port is a source, so apply it at boot to be consistent. BUG=chromium:766814 BRANCH=gru TEST=On kevin, verify 3A Rp is applied to both ports at boot. Change-Id: Ib62a96063783e8ef9ac9240800f445fa9e5a59af Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/677087
-rw-r--r--common/usb_pd_protocol.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index a522e66147..0653b79613 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -1540,7 +1540,12 @@ void pd_task(void)
pd[port].power_role = PD_ROLE_DEFAULT;
pd[port].vdm_state = VDM_STATE_DONE;
set_state(port, this_state);
+#ifdef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT
+ ASSERT(PD_ROLE_DEFAULT == PD_ROLE_SINK);
+ tcpm_select_rp_value(port, CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT);
+#else
tcpm_select_rp_value(port, CONFIG_USB_PD_PULLUP);
+#endif
tcpm_set_cc(port, PD_ROLE_DEFAULT == PD_ROLE_SOURCE ? TYPEC_CC_RP :
TYPEC_CC_RD);