summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Staaf <robotboy@chromium.org>2015-02-09 10:53:58 -0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-02-10 23:07:25 +0000
commitf154f32f9ed483bc974c7a0f21ed641cf308a7b0 (patch)
tree83ad5f62812f02f93180cdb9d7d6e13114a0f5a4
parent98345fdfc1c89d77f429c6a2ed9bdef1bfc1e1ab (diff)
downloadchrome-ec-f154f32f9ed483bc974c7a0f21ed641cf308a7b0.tar.gz
CCD: Enable CCD when a debug peripheral is detected
This includes an additional call to board_set_usb_mux to ensure that the USB lines are correctly muxed for Case Closed Debugging to work. Signed-off-by: Anton Staaf <robotboy@chromium.org> BRANCH=None BUG=None TEST=make buildall -j Change-Id: I80694a1bc6cabb9c2ac2437552a68210855e94f0 Reviewed-on: https://chromium-review.googlesource.com/247722 Trybot-Ready: Anton Staaf <robotboy@chromium.org> Tested-by: Anton Staaf <robotboy@chromium.org> Reviewed-by: Vic Yang <victoryang@chromium.org> Commit-Queue: Anton Staaf <robotboy@chromium.org>
-rw-r--r--common/usb_pd_protocol.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 77329ef5a4..c8004d3daf 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -6,6 +6,7 @@
#include "adc.h"
#include "battery.h"
#include "board.h"
+#include "case_closed_debug.h"
#include "charge_manager.h"
#include "chipset.h"
#include "common.h"
@@ -1987,6 +1988,16 @@ void pd_task(void)
/* Remove VBUS */
pd_power_supply_reset(port);
#endif
+
+#ifdef CONFIG_USBC_SS_MUX
+ board_set_usb_mux(port, TYPEC_MUX_USB,
+ pd[port].polarity);
+#endif
+
+#ifdef CONFIG_CASE_CLOSED_DEBUG
+ if (new_cc_state == PD_CC_DEBUG_ACC)
+ ccd_set_mode(CCD_MODE_ENABLED);
+#endif
set_state(port, PD_STATE_SRC_ACCESSORY);
}
break;
@@ -2003,6 +2014,9 @@ void pd_task(void)
(pd[port].cc_state == PD_CC_DEBUG_ACC &&
(!CC_RD(cc1_volt) || !CC_RD(cc2_volt)))) {
set_state(port, PD_STATE_SRC_DISCONNECTED);
+#ifdef CONFIG_CASE_CLOSED_DEBUG
+ ccd_set_mode(CCD_MODE_DISABLED);
+#endif
timeout = 10*MSEC;
}
break;