summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Blecker <matthewb@chromium.org>2022-09-09 16:39:33 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-13 06:41:01 +0000
commit54ecf904b924e757feb091492000553aa1fa9150 (patch)
tree2a58a928913eff656c7850b9c8770bf3795428c2
parent7531bb61da19c4b2ea0c362e8e196c4772e06dec (diff)
downloadchrome-ec-54ecf904b924e757feb091492000553aa1fa9150.tar.gz
servo_v4p1: add "cc dtsoff" and "cc dtson" commands
BRANCH=none BUG=none TEST=Built servo_v4p1 firmware with this change and flashed it to a Servo v4.1 with Type-C CCD DUT cable. Repeated the following steps with and without a DUT charge plugged into Servo v4.1: 1) Power on the Servo v4.1 while connected to a known-good CCD capable DUT. Verify presence of CR50 CCD USB device on servo host machine. 2) Run "cc" to log its output. 3) Run "cc dtsoff" and compare the output. Only change is "dts mode: on" changing to "dts mode: off" . Verify absence of CR50 CCD USB device on servo host machine. 4) Run "cc dtson" and compare the output. Only change is going back to "dts mode: on" . Verify presence of CR50 CCD USB device on servo host machine. Signed-off-by: Matthew Blecker <matthewb@chromium.org> Change-Id: I39b9e62d0e6c74e1264b698d9c04008042d36eac Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3889000 Reviewed-by: Wai-Hong Tam <waihong@google.com>
-rw-r--r--board/servo_v4p1/usb_pd_policy.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/board/servo_v4p1/usb_pd_policy.c b/board/servo_v4p1/usb_pd_policy.c
index 5f3376d3f1..98d6255c29 100644
--- a/board/servo_v4p1/usb_pd_policy.c
+++ b/board/servo_v4p1/usb_pd_policy.c
@@ -63,6 +63,8 @@
#define CONF_DRPDTS(c) \
CONF_SET_CLEAR(c, CC_ALLOW_SRC | CC_ENABLE_DRP, \
CC_DISABLE_DTS | CC_SNK_WITH_PD)
+#define CONF_DTSOFF(c) CONF_SET_CLEAR(c, CC_DISABLE_DTS, 0)
+#define CONF_DTSON(c) CONF_SET_CLEAR(c, 0, CC_DISABLE_DTS)
/* Macros to apply Rd/Rp to CC lines */
#define DUT_ACTIVE_CC_SET(r, flags) \
@@ -1216,6 +1218,10 @@ static int command_cc(int argc, const char **argv)
cc_config_new = CONF_PDSNKDTS(cc_config_new);
else if (!strcasecmp(argv[1], "drpdts"))
cc_config_new = CONF_DRPDTS(cc_config_new);
+ else if (!strcasecmp(argv[1], "dtsoff"))
+ cc_config_new = CONF_DTSOFF(cc_config_new);
+ else if (!strcasecmp(argv[1], "dtson"))
+ cc_config_new = CONF_DTSON(cc_config_new);
else if (!strcasecmp(argv[1], "emca"))
cc_config_new |= CC_EMCA_SERVO;
else if (!strcasecmp(argv[1], "nonemca"))
@@ -1238,7 +1244,7 @@ static int command_cc(int argc, const char **argv)
}
DECLARE_CONSOLE_COMMAND(cc, command_cc,
"[off|on|src|snk|pdsnk|drp|srcdts|snkdts|pdsnkdts|"
- "drpdts|emca|nonemca] [cc1|cc2]",
+ "drpdts|dtsoff|dtson|emca|nonemca] [cc1|cc2]",
"Servo_v4 DTS and CHG mode");
static void fake_disconnect_end(void)