diff options
Diffstat (limited to 'util/ectool.c')
-rw-r--r-- | util/ectool.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/util/ectool.c b/util/ectool.c index 64bbf86c67..15d04424af 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -4922,9 +4922,10 @@ int cmd_usb_charge_set_mode(int argc, char *argv[]) char *e; int rv; - if (argc != 3) { + if (argc != 3 && argc != 4) { fprintf(stderr, - "Usage: %s <port_id> <mode_id>\n", argv[0]); + "Usage: %s <port_id> <mode_id> <inhibit_charge>\n", + argv[0]); return -1; } p.usb_port_id = strtol(argv[1], &e, 0); @@ -4937,8 +4938,18 @@ int cmd_usb_charge_set_mode(int argc, char *argv[]) fprintf(stderr, "Bad mode ID.\n"); return -1; } + p.inhibit_charge = 0; + if (argc == 4) { + p.inhibit_charge = strtol(argv[3], &e, 0); + if ((e && *e) || (p.inhibit_charge != 0 && + p.inhibit_charge != 1)) { + fprintf(stderr, "Bad value\n"); + return -1; + } + } - printf("Setting port %d to mode %d...\n", p.usb_port_id, p.mode); + printf("Setting port %d to mode %d inhibit_charge %d...\n", + p.usb_port_id, p.mode, p.inhibit_charge); rv = ec_command(EC_CMD_USB_CHARGE_SET_MODE, 0, &p, sizeof(p), NULL, 0); |