diff options
Diffstat (limited to 'common/usbc/usb_pd_console.c')
-rw-r--r-- | common/usbc/usb_pd_console.c | 75 |
1 files changed, 42 insertions, 33 deletions
diff --git a/common/usbc/usb_pd_console.c b/common/usbc/usb_pd_console.c index 6b1ea259eb..027a0d66c5 100644 --- a/common/usbc/usb_pd_console.c +++ b/common/usbc/usb_pd_console.c @@ -1,4 +1,4 @@ -/* Copyright 2020 The Chromium OS Authors. All rights reserved. +/* Copyright 2020 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -16,7 +16,8 @@ #ifndef TEST_USB_PD_CONSOLE static #endif -int command_pd(int argc, char **argv) + int + command_pd(int argc, const char **argv) { int port; char *e; @@ -43,7 +44,7 @@ int command_pd(int argc, char **argv) return EC_SUCCESS; } } else if (IS_ENABLED(CONFIG_USB_PD_TRY_SRC) && - !strcasecmp(argv[1], "trysrc")) { + !strcasecmp(argv[1], "trysrc")) { enum try_src_override_t ov = tc_get_try_src_override(); if (argc >= 3) { @@ -111,7 +112,7 @@ int command_pd(int argc, char **argv) else if (!strcasecmp(argv[3], "data")) pd_dpm_request(port, DPM_REQUEST_DR_SWAP); else if (IS_ENABLED(CONFIG_USBC_VCONN_SWAP) && - !strcasecmp(argv[3], "vconn")) + !strcasecmp(argv[3], "vconn")) pd_dpm_request(port, DPM_REQUEST_VCONN_SWAP); else return EC_ERROR_PARAM3; @@ -135,60 +136,66 @@ int command_pd(int argc, char **argv) case PD_DRP_FORCE_SOURCE: ccprintf("force source\n"); break; - cflush(); + cflush(); } } else { if (!strcasecmp(argv[3], "on")) pd_set_dual_role(port, - PD_DRP_TOGGLE_ON); + PD_DRP_TOGGLE_ON); else if (!strcasecmp(argv[3], "off")) pd_set_dual_role(port, - PD_DRP_TOGGLE_OFF); + PD_DRP_TOGGLE_OFF); else if (!strcasecmp(argv[3], "freeze")) pd_set_dual_role(port, PD_DRP_FREEZE); else if (!strcasecmp(argv[3], "sink")) pd_set_dual_role(port, - PD_DRP_FORCE_SINK); + PD_DRP_FORCE_SINK); else if (!strcasecmp(argv[3], "source")) pd_set_dual_role(port, - PD_DRP_FORCE_SOURCE); + PD_DRP_FORCE_SOURCE); else return EC_ERROR_PARAM4; } return EC_SUCCESS; + } else if (!strcasecmp(argv[2], "suspend")) { + pd_comm_enable(port, 0); + pd_set_suspend(port, 1); + } else if (!strcasecmp(argv[2], "resume")) { + pd_comm_enable(port, 1); + pd_set_suspend(port, 0); } } if (!strcasecmp(argv[2], "state")) { cflush(); - ccprintf("Port C%d CC%d, %s - Role: %s-%s", - port, pd_get_polarity(port) + 1, - pd_comm_is_enabled(port) ? "Enable" : "Disable", - pd_get_power_role(port) == - PD_ROLE_SOURCE ? "SRC" : "SNK", - pd_get_data_role(port) == PD_ROLE_DFP ? "DFP" : "UFP"); + ccprintf("Port C%d CC%d, %s - Role: %s-%s", port, + pd_get_polarity(port) + 1, + pd_comm_is_enabled(port) ? "Enable" : "Disable", + pd_get_power_role(port) == PD_ROLE_SOURCE ? "SRC" : + "SNK", + pd_get_data_role(port) == PD_ROLE_DFP ? "DFP" : "UFP"); if (IS_ENABLED(CONFIG_USBC_VCONN)) ccprintf("%s ", tc_is_vconn_src(port) ? "-VC" : ""); ccprintf("TC State: %s, Flags: 0x%04x", - tc_get_current_state(port), - tc_get_flags(port)); + tc_get_current_state(port), tc_get_flags(port)); if (IS_ENABLED(CONFIG_USB_PE_SM)) ccprintf(" PE State: %s, Flags: 0x%04x\n", - pe_get_current_state(port), - pe_get_flags(port)); + pe_get_current_state(port), + pe_get_flags(port)); else ccprintf("\n"); cflush(); } else if (!strcasecmp(argv[2], "srccaps")) { pd_srccaps_dump(port); + } else if (!strcasecmp(argv[2], "cc")) { + ccprintf("Port C%d CC%d\n", port, pd_get_task_cc_state(port)); } - if (IS_ENABLED(CONFIG_CMD_PD_TIMER) && - !strcasecmp(argv[2], "timer")) { + if (IS_ENABLED(CONFIG_CMD_PD_TIMER) && !strcasecmp(argv[2], "timer")) { pd_timer_dump(port); } @@ -196,22 +203,24 @@ int command_pd(int argc, char **argv) } #ifndef TEST_USB_PD_CONSOLE DECLARE_CONSOLE_COMMAND(pd, command_pd, - "version" - "\ndump [0|1|2|3]" + "version" + "\ndump [0|1|2|3]" #ifdef CONFIG_USB_PD_TRY_SRC - "\ntrysrc [0|1|2]" + "\ntrysrc [0|1|2]" #endif - "\n\t<port> state" - "\n\t<port> srccaps" + "\n\t<port> state" + "\n\t<port> srccaps" + "\n\t<port> cc" #ifdef CONFIG_CMD_PD_TIMER - "\n\t<port> timer" + "\n\t<port> timer" #endif /* CONFIG_CMD_PD_TIMER */ #ifdef CONFIG_USB_PD_DUAL_ROLE - "|tx|charger|dev" - "\n\t<port> disable|enable|soft|hard" - "\n\t<port> dualrole [on|off|freeze|sink|source]" - "\n\t<port> swap [power|data|vconn]" + "|tx|charger|dev" + "\n\t<port> disable|enable|soft|hard" + "\n\t<port> suspend|resume" + "\n\t<port> dualrole [on|off|freeze|sink|source]" + "\n\t<port> swap [power|data|vconn]" #endif /* CONFIG_USB_PD_DUAL_ROLE */ - , - "USB PD"); + , + "USB PD"); #endif |