diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2018-09-12 13:12:31 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-09-20 21:29:58 -0700 |
commit | fd3f9b9a304bb4838bd0b015981e1798b15552f6 (patch) | |
tree | f2ba226c0c7020beda9ee1739057e5a116f60673 /common/usb_charger.c | |
parent | f0ea1b379d4661c4334a50d1cc68c573b6cf84cd (diff) | |
download | chrome-ec-fd3f9b9a304bb4838bd0b015981e1798b15552f6.tar.gz |
chgmgr: Set available voltage to 0 on disconnect
Currently, available current is consistently set to zero when a supplier
is disconnected across BC 1.2 drivers, PD task, usb charger task but
voltage is set to zero only in some places.
This patch will set available voltage consistently to 0 on disconnected
ports.
This change should have no impact externally or internally because
currently ports are treated as a disconnected port as long as available
current is zero.
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.
Verify ectool usbpdpower prints 'Disconnected' and 'SNK Charger PD'
on Vayne without and with USB-C charger, respectively.
Verify ectool usbpdpower prints 'Disconnected' and 'SNK Charger Type-C'
on Vayne without and with a phone USB-C charger, respectively.
Change-Id: I9aca575a4a4240ec1f669c55437decaedf758a77
Reviewed-on: https://chromium-review.googlesource.com/1222092
Commit-Ready: Daisuke Nojiri <dnojiri@chromium.org>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'common/usb_charger.c')
-rw-r--r-- | common/usb_charger.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/common/usb_charger.c b/common/usb_charger.c index e42fee48bd..545907ea72 100644 --- a/common/usb_charger.c +++ b/common/usb_charger.c @@ -25,14 +25,12 @@ static void update_vbus_supplier(int port, int vbus_level) { - struct charge_port_info charge; + struct charge_port_info charge = {0}; - charge.voltage = USB_CHARGER_VOLTAGE_MV; - - if (vbus_level && !usb_charger_port_is_sourcing_vbus(port)) + if (vbus_level && !usb_charger_port_is_sourcing_vbus(port)) { + charge.voltage = USB_CHARGER_VOLTAGE_MV; charge.current = USB_CHARGER_MIN_CURR_MA; - else - charge.current = 0; + } charge_manager_update_charge(CHARGE_SUPPLIER_VBUS, port, &charge); } @@ -85,11 +83,9 @@ void usb_charger_vbus_change(int port, int vbus_level) static void usb_charger_init(void) { int i; - struct charge_port_info charge_none; + struct charge_port_info charge_none = {0}; /* Initialize all charge suppliers */ - charge_none.voltage = USB_CHARGER_VOLTAGE_MV; - charge_none.current = 0; for (i = 0; i < CONFIG_USB_PD_PORT_COUNT; i++) { charge_manager_update_charge(CHARGE_SUPPLIER_PROPRIETARY, i, |