diff options
author | Matthew Blecker <matthewb@chromium.org> | 2022-09-09 14:28:49 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-10 01:00:58 +0000 |
commit | 1e1cc37b4078e241f9b97fd50b5ebbcd3079ab33 (patch) | |
tree | 9f340b8a25405d1d1016ac36bfee1380453884c8 | |
parent | 67ac46409cca456859adf1bb4743a3bae3ce30a2 (diff) | |
download | chrome-ec-1e1cc37b4078e241f9b97fd50b5ebbcd3079ab33.tar.gz |
servo_v4: add "cc dtsoff" and "cc dtson" commands
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>
-rw-r--r-- | board/servo_v4/usb_pd_policy.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/board/servo_v4/usb_pd_policy.c b/board/servo_v4/usb_pd_policy.c index 097d6e8ab9..5e2a27ea3c 100644 --- a/board/servo_v4/usb_pd_policy.c +++ b/board/servo_v4/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) \ @@ -1084,6 +1086,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 return EC_ERROR_PARAM2; } @@ -1102,7 +1108,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] [cc1|cc2]", + "drpdts|dtsoff|dtson] [cc1|cc2]", "Servo_v4 DTS and CHG mode"); static void fake_disconnect_end(void) |