diff options
author | Matthew Blecker <matthewb@chromium.org> | 2022-09-09 16:39:33 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-13 06:41:01 +0000 |
commit | 54ecf904b924e757feb091492000553aa1fa9150 (patch) | |
tree | 2a58a928913eff656c7850b9c8770bf3795428c2 | |
parent | 7531bb61da19c4b2ea0c362e8e196c4772e06dec (diff) | |
download | chrome-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.c | 8 |
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) |