summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Blecker <matthewb@chromium.org>2022-09-09 14:28:49 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-12 19:02:17 +0000
commite97156237f1f211f972214c8119f1dd0a4277711 (patch)
treebc643404d83a5fbcd651d9081723d520aadcbf51
parentd771c18ba9989eed5eca134d27e1973a63bded74 (diff)
downloadchrome-ec-firmware-servo-12768.B-master.tar.gz
servo_v4: add "cc dtsoff" and "cc dtson" commandsfirmware-servo-12768.B-master
BRANCH=none BUG=none TEST=Built servo_v4 firmware with this change cherry-picked onto d771c18ba9989eed5eca134d27e1973a63bded74 from cros/firmware-servo-12768.B-master branch (current top-of-branch) and flashed it to a Servo v4 with Type-C CCD DUT cable. Repeated the following steps with and without a DUT charge plugged into Servo v4: 1) Power on the Servo v4 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. Change-Id: I780073165609f2278d3323f42ff8cf6a1ea71999 Signed-off-by: Matthew Blecker <matthewb@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3888998 Reviewed-by: Brian Nemec <bnemec@google.com> Reviewed-by: Wai-Hong Tam <waihong@google.com> (cherry picked from commit 1e1cc37b4078e241f9b97fd50b5ebbcd3079ab33) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3888999
-rw-r--r--board/servo_v4/usb_pd_policy.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/board/servo_v4/usb_pd_policy.c b/board/servo_v4/usb_pd_policy.c
index a54393d9b5..4a318a91e8 100644
--- a/board/servo_v4/usb_pd_policy.c
+++ b/board/servo_v4/usb_pd_policy.c
@@ -64,6 +64,12 @@
#define CONFIG_DRPDTS(c) CONFIG_SET_CLEAR(c, \
CC_ALLOW_SRC | CC_ENABLE_DRP, \
CC_DISABLE_DTS | CC_SNK_WITH_PD)
+#define CONFIG_DTSOFF(c) CONFIG_SET_CLEAR(c, \
+ CC_DISABLE_DTS, \
+ 0)
+#define CONFIG_DTSON(c) CONFIG_SET_CLEAR(c, \
+ 0, \
+ CC_DISABLE_DTS)
/* Macros to apply Rd/Rp to CC lines */
#define DUT_ACTIVE_CC_SET(r, flags) \
@@ -1132,6 +1138,10 @@ static int command_cc(int argc, char **argv)
cc_config_new = CONFIG_PDSNKDTS(cc_config_new);
else if (!strcasecmp(argv[1], "drpdts"))
cc_config_new = CONFIG_DRPDTS(cc_config_new);
+ else if (!strcasecmp(argv[1], "dtsoff"))
+ cc_config_new = CONFIG_DTSOFF(cc_config_new);
+ else if (!strcasecmp(argv[1], "dtson"))
+ cc_config_new = CONFIG_DTSON(cc_config_new);
else
return EC_ERROR_PARAM2;
}
@@ -1150,7 +1160,7 @@ static int command_cc(int argc, char **argv)
}
DECLARE_CONSOLE_COMMAND(cc, command_cc,
"[off|on|src|snk|pdsnk|drp|srcdts|snkdts|pdsnkdts|"
- "drpdts] [cc1|cc2]",
+ "drpdts|dtsoff|dtson] [cc1|cc2]",
"Servo_v4 DTS and CHG mode");
static void fake_disconnect_end(void)