summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaisuke Nojiri <dnojiri@chromium.org>2018-09-10 12:36:02 -0700
committerchrome-bot <chrome-bot@chromium.org>2018-09-13 18:58:40 -0700
commit26767c965ee02fe47d86a96a28117a4a61bf90b2 (patch)
treef53117e76b62a52f08404c4cecf69e8d1b18867b
parent7f450285ef998ca7c9a268b76fdc10914e2ee6ab (diff)
downloadchrome-ec-26767c965ee02fe47d86a96a28117a4a61bf90b2.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>
-rw-r--r--util/ectool.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/util/ectool.c b/util/ectool.c
index c2ce4dc8da..4806f298d8 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -276,7 +276,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"
@@ -5119,6 +5119,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);
@@ -5126,15 +5127,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);
}