diff options
Diffstat (limited to 'common/usb_pd_console_cmd.c')
-rw-r--r-- | common/usb_pd_console_cmd.c | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/common/usb_pd_console_cmd.c b/common/usb_pd_console_cmd.c deleted file mode 100644 index 3ad1944494..0000000000 --- a/common/usb_pd_console_cmd.c +++ /dev/null @@ -1,224 +0,0 @@ -/* Copyright 2020 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Console commands for USB-PD module. - */ - -#include "console.h" -#include "usb_pd.h" -#include "util.h" -#include "usb_pd_tcpm.h" - -#ifdef CONFIG_USB_PD_ALT_MODE_DFP -#ifdef CONFIG_CMD_USB_PD_PE -static void dump_pe(int port) -{ - int i, j, idh_ptype; - struct svdm_amode_data *modep; - uint32_t mode_caps; - const union disc_ident_ack *resp; - enum tcpci_msg_type type; - /* TODO(b/152417597): Output SOP' discovery results */ - const struct pd_discovery *disc = - pd_get_am_discovery(port, TCPCI_MSG_SOP); - - static const char * const idh_ptype_names[] = { - "UNDEF", "Hub", "Periph", "PCable", "ACable", "AMA", - "RSV6", "RSV7"}; - static const char * const tx_names[] = {"SOP", "SOP'", "SOP''"}; - - for (type = TCPCI_MSG_SOP; type < DISCOVERY_TYPE_COUNT; type++) { - resp = pd_get_identity_response(port, type); - if (pd_get_identity_discovery(port, type) != PD_DISC_COMPLETE) { - ccprintf("No %s identity discovered yet.\n", - tx_names[type]); - continue; - } - - idh_ptype = resp->idh.product_type; - ccprintf("IDENT %s:\n", tx_names[type]); - ccprintf("\t[ID Header] %08x :: %s, VID:%04x\n", - resp->raw_value[0], - idh_ptype_names[idh_ptype], - resp->idh.usb_vendor_id); - - ccprintf("\t[Cert Stat] %08x\n", resp->cert.xid); - for (i = 2; i < ARRAY_SIZE(resp->raw_value); i++) { - ccprintf("\t"); - if (resp->raw_value[i]) - ccprintf("[%d] %08x ", i, resp->raw_value[i]); - } - ccprintf("\n"); - } - - if (pd_get_svid_count(port, TCPCI_MSG_SOP) < 1) { - ccprintf("No SVIDS discovered yet.\n"); - return; - } - - /* TODO(b/152418267): Display discovered SVIDs and modes for SOP' */ - for (i = 0; i < pd_get_svid_count(port, TCPCI_MSG_SOP); i++) { - ccprintf("SVID[%d]: %04x MODES:", i, disc->svids[i].svid); - for (j = 0; j < disc->svids[j].mode_cnt; j++) - ccprintf(" [%d] %08x", j + 1, - disc->svids[i].mode_vdo[j]); - ccprintf("\n"); - - modep = pd_get_amode_data(port, TCPCI_MSG_SOP, - disc->svids[i].svid); - if (modep) { - mode_caps = modep->data->mode_vdo[modep->opos - 1]; - ccprintf("MODE[%d]: svid:%04x caps:%08x\n", modep->opos, - modep->fx->svid, mode_caps); - } - } -} - -static int command_pe(int argc, char **argv) -{ - int port; - char *e; - - if (argc < 3) - return EC_ERROR_PARAM_COUNT; - - /* command: pe <port> <subcmd> <args> */ - port = strtoi(argv[1], &e, 10); - if (*e || port >= board_get_usb_pd_port_count()) - return EC_ERROR_PARAM2; - if (!strncasecmp(argv[2], "dump", 4)) - dump_pe(port); - - return EC_SUCCESS; -} -DECLARE_CONSOLE_COMMAND(pe, command_pe, - "<port> dump", - "USB PE"); -#endif /* CONFIG_CMD_USB_PD_PE */ - -#ifdef CONFIG_CMD_USB_PD_CABLE -static const char * const cable_type[] = { - [IDH_PTYPE_PCABLE] = "Passive", - [IDH_PTYPE_ACABLE] = "Active", -}; - -static const char * const cable_curr[] = { - [USB_VBUS_CUR_3A] = "3A", - [USB_VBUS_CUR_5A] = "5A", -}; - -static int command_cable(int argc, char **argv) -{ - int port; - char *e; - const struct pd_discovery *disc; - enum idh_ptype ptype; - int cable_rev; - union tbt_mode_resp_cable cable_mode_resp; - - if (argc < 2) - return EC_ERROR_PARAM_COUNT; - - port = strtoi(argv[1], &e, 0); - if (*e || port >= board_get_usb_pd_port_count()) - return EC_ERROR_PARAM2; - - ptype = get_usb_pd_cable_type(port); - - ccprintf("Cable Type: "); - if (ptype != IDH_PTYPE_PCABLE && - ptype != IDH_PTYPE_ACABLE) { - ccprintf("Not Emark Cable\n"); - return EC_SUCCESS; - } - ccprintf("%s\n", cable_type[ptype]); - - cable_rev = pd_get_rev(port, TCPCI_MSG_SOP_PRIME); - disc = pd_get_am_discovery(port, TCPCI_MSG_SOP_PRIME); - cable_mode_resp.raw_value = - pd_get_tbt_mode_vdo(port, TCPCI_MSG_SOP_PRIME); - - - /* Cable revision */ - ccprintf("Cable Rev: %d.0\n", cable_rev + 1); - - /* - * For rev 2.0, rev 3.0 active and passive cables have same bits for - * connector type (Bit 19:18) and current handling capability bit 6:5 - */ - ccprintf("Connector Type: %d\n", - disc->identity.product_t1.p_rev20.connector); - - if (disc->identity.product_t1.p_rev20.vbus_cur) { - ccprintf("Cable Current: %s\n", - disc->identity.product_t1.p_rev20.vbus_cur > - ARRAY_SIZE(cable_curr) ? "Invalid" : - cable_curr[disc->identity.product_t1.p_rev20.vbus_cur]); - } else - ccprintf("Cable Current: Invalid\n"); - - /* - * For Rev 3.0 passive cables and Rev 2.0 active and passive cables, - * USB Superspeed Signaling support have same bits 2:0 - */ - if (ptype == IDH_PTYPE_PCABLE) - ccprintf("USB Superspeed Signaling support: %d\n", - disc->identity.product_t1.p_rev20.ss); - - /* - * For Rev 3.0 active cables and Rev 2.0 active and passive cables, - * SOP" controller preset have same bit 3 - */ - if (ptype == IDH_PTYPE_ACABLE) - ccprintf("SOP'' Controller: %s present\n", - disc->identity.product_t1.a_rev20.sop_p_p ? "" : "Not"); - - if (cable_rev == PD_REV30) { - /* - * For Rev 3.0 active and passive cables, Max Vbus vtg have - * same bits 10:9. - */ - ccprintf("Max vbus voltage: %d\n", - 20 + 10 * disc->identity.product_t1.p_rev30.vbus_max); - - /* For Rev 3.0 Active cables */ - if (ptype == IDH_PTYPE_ACABLE) { - ccprintf("SS signaling: USB_SS_GEN%u\n", - disc->identity.product_t2.a2_rev30.usb_gen ? - 2 : 1); - ccprintf("Number of SS lanes supported: %u\n", - disc->identity.product_t2.a2_rev30.usb_lanes); - } - } - - if (!cable_mode_resp.raw_value) - return EC_SUCCESS; - - ccprintf("Rounded support: %s\n", - cable_mode_resp.tbt_rounded == - TBT_GEN3_GEN4_ROUNDED_NON_ROUNDED ? "Yes" : "No"); - - ccprintf("Optical cable: %s\n", - cable_mode_resp.tbt_cable == TBT_CABLE_OPTICAL ? "Yes" : "No"); - - ccprintf("Retimer support: %s\n", - cable_mode_resp.retimer_type == USB_RETIMER ? - "Yes" : "No"); - - ccprintf("Link training: %s-directional\n", - cable_mode_resp.lsrx_comm == BIDIR_LSRX_COMM ? "Bi" : "Uni"); - - ccprintf("Thunderbolt cable type: %s\n", - cable_mode_resp.tbt_active_passive == TBT_CABLE_ACTIVE ? - "Active" : "Passive"); - - return EC_SUCCESS; -} - -DECLARE_CONSOLE_COMMAND(pdcable, command_cable, - "<port>", - "Cable Characteristics"); -#endif /* CONFIG_CMD_USB_PD_CABLE */ - -#endif /* CONFIG_USB_PD_ALT_MODE_DFP */ |