diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-09-10 12:36:02 -0700 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2018-12-08 02:14:32 +0000 |
commit | 034c392201ff83dfbbedce8e40d57f88ee3b34e0 (patch) | |
tree | 29d97f756106c36b618eee978cd91dc53fa01bf1 | |
parent | 798e20ad1ac4b12497872683672eb541379753f4 (diff) | |
download | chrome-ec-034c392201ff83dfbbedce8e40d57f88ee3b34e0.tar.gz |
ectool: Allow usbpdpower command to take port #
Currently, usbpdpower command enumerates all USB-C ports found
on the board. Since barrel jack adapters are not recognized as
a USB-C port, they're not handled by the command.
This patch allows the command to take a port number as a new
parameter.
Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org>
BUG=chromium:841944
BRANCH=none
TEST=Verify ectool usbpdpower 1 return 'Port 1: Disconnected' and
'Port 1: SNK (not charging)' without and with a BJ adapter connected
respectively on Fizz.
Change-Id: If3437c8f3f9952a4cc6004614ccff7bb6bbb4de5
Reviewed-on: https://chromium-review.googlesource.com/1217606
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/1364314
Reviewed-by: YH Lin <yueherngl@chromium.org>
Commit-Queue: YH Lin <yueherngl@chromium.org>
Tested-by: YH Lin <yueherngl@chromium.org>
-rw-r--r-- | util/ectool.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/util/ectool.c b/util/ectool.c index 7d98b44da4..6058753cb6 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -268,7 +268,7 @@ const char help_str[] = " Control USB PD/type-C\n" " usbpdmuxinfo\n" " Get USB-C SS mux info\n" - " usbpdpower\n" + " usbpdpower [port]\n" " Get USB PD power information\n" " version\n" " Prints EC version\n" @@ -4985,6 +4985,7 @@ int cmd_usb_pd_power(int argc, char *argv[]) struct ec_response_usb_pd_power_info *r = (struct ec_response_usb_pd_power_info *)ec_inbuf; int num_ports, i, rv; + char *e; rv = ec_command(EC_CMD_USB_PD_PORTS, 0, NULL, 0, ec_inbuf, ec_max_insize); @@ -4992,15 +4993,31 @@ int cmd_usb_pd_power(int argc, char *argv[]) return rv; num_ports = ((struct ec_response_usb_pd_ports *)r)->num_ports; - for (i = 0; i < num_ports; i++) { - p.port = i; + if (argc < 2) { + for (i = 0; i < num_ports; i++) { + p.port = i; + rv = ec_command(EC_CMD_USB_PD_POWER_INFO, 0, + &p, sizeof(p), + ec_inbuf, ec_max_insize); + if (rv < 0) + return rv; + + printf("Port %d: ", i); + print_pd_power_info(r); + } + } else { + p.port = strtol(argv[1], &e, 0); + if (e && *e) { + fprintf(stderr, "Bad port.\n"); + return -1; + } rv = ec_command(EC_CMD_USB_PD_POWER_INFO, 0, &p, sizeof(p), ec_inbuf, ec_max_insize); if (rv < 0) return rv; - printf("Port %d: ", i); + printf("Port %d: ", p.port); print_pd_power_info(r); } |