diff options
-rw-r--r-- | common/charge_manager.c | 3 | ||||
-rw-r--r-- | include/ec_commands.h | 3 | ||||
-rw-r--r-- | util/ectool.c | 5 |
3 files changed, 11 insertions, 0 deletions
diff --git a/common/charge_manager.c b/common/charge_manager.c index 01552a7144..3bea74747f 100644 --- a/common/charge_manager.c +++ b/common/charge_manager.c @@ -201,6 +201,9 @@ static int hc_pd_power_info(struct host_cmd_handler_args *args) else r->role = USB_PD_PORT_POWER_DISCONNECTED; + /* TODO: fill in appropriate dual-role status */ + r->dualrole = 0; + if (sup == CHARGE_SUPPLIER_NONE) { r->type = USB_CHG_TYPE_NONE; r->voltage_max = 0; diff --git a/include/ec_commands.h b/include/ec_commands.h index df392d7d62..2266f07971 100644 --- a/include/ec_commands.h +++ b/include/ec_commands.h @@ -2778,9 +2778,12 @@ enum usb_power_roles { struct ec_response_usb_pd_power_info { uint8_t role; uint8_t type; + uint8_t dualrole; + uint8_t reserved1; uint16_t voltage_max; uint16_t voltage_now; uint16_t current_max; + uint16_t reserved2; uint32_t max_power; } __packed; diff --git a/util/ectool.c b/util/ectool.c index e9f0195077..062ffafedb 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -2921,6 +2921,11 @@ int cmd_usb_pd_power(int argc, char *argv[]) printf("Unknown\n"); } + if (r->role != USB_PD_PORT_POWER_DISCONNECTED) { + printf(" %s\n", r->dualrole ? + "Dual-role device" : "Dedicated charger"); + } + printf(" Charger type: "); switch (r->type) { case USB_CHG_TYPE_PD: |