summaryrefslogtreecommitdiff
path: root/util/ectool.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/ectool.c')
-rw-r--r--util/ectool.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/util/ectool.c b/util/ectool.c
index 8cb2b50a6a..3471d3406c 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -7729,9 +7729,10 @@ int cmd_pd_control(int argc, char *argv[])
int cmd_pd_chip_info(int argc, char *argv[])
{
struct ec_params_pd_chip_info p;
- struct ec_response_pd_chip_info r;
+ struct ec_response_pd_chip_info_v1 r;
char *e;
int rv;
+ int cmdver = 1;
if (argc < 2 || 3 < argc) {
fprintf(stderr, "Usage: %s <port> [renew(on/off)]\n", argv[0]);
@@ -7754,7 +7755,11 @@ int cmd_pd_chip_info(int argc, char *argv[])
p.renew = val;
}
- rv = ec_command(EC_CMD_PD_CHIP_INFO, 0, &p, sizeof(p), &r, sizeof(r));
+ if (!ec_cmd_version_supported(EC_CMD_PD_CHIP_INFO, cmdver))
+ cmdver = 0;
+
+ rv = ec_command(EC_CMD_PD_CHIP_INFO, cmdver, &p, sizeof(p), &r,
+ sizeof(r));
if (rv < 0)
return rv;
@@ -7762,14 +7767,16 @@ int cmd_pd_chip_info(int argc, char *argv[])
printf("product_id: 0x%x\n", r.product_id);
printf("device_id: 0x%x\n", r.device_id);
- switch (r.vendor_id) {
- case ANX74XX_VENDOR_ID:
- case PS8XXX_VENDOR_ID:
+ if (r.fw_version_number != -1)
printf("fw_version: 0x%" PRIx64 "\n", r.fw_version_number);
- break;
- default:
+ else
printf("fw_version: UNSUPPORTED\n");
- }
+
+ if (cmdver >= 1)
+ printf("min_req_fw_version: 0x%" PRIx64 "\n",
+ r.min_req_fw_version_number);
+ else
+ printf("min_req_fw_version: UNSUPPORTED\n");
return 0;
}