diff options
Diffstat (limited to 'driver/bc12/pi3usb9281.c')
-rw-r--r-- | driver/bc12/pi3usb9281.c | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/driver/bc12/pi3usb9281.c b/driver/bc12/pi3usb9281.c index 9bdf875468..f1bd3ce8d4 100644 --- a/driver/bc12/pi3usb9281.c +++ b/driver/bc12/pi3usb9281.c @@ -289,7 +289,6 @@ void usb_charger_set_switches(int port, enum usb_switch setting) static void bc12_detect(int port) { int device_type, charger_status; - struct charge_port_info charge = {0}; int type; if (usb_charger_port_is_sourcing_vbus(port)) { @@ -351,6 +350,7 @@ static void bc12_detect(int port) /* Attachment: decode + update available charge */ if (device_type || PI3USB9281_CHG_STATUS_ANY(charger_status)) { + struct charge_port_info chg; if (PI3USB9281_CHG_STATUS_ANY(charger_status)) type = CHARGE_SUPPLIER_PROPRIETARY; else if (device_type & PI3USB9281_TYPE_CDP) @@ -362,31 +362,21 @@ static void bc12_detect(int port) else type = CHARGE_SUPPLIER_OTHER; - charge.voltage = USB_CHARGER_VOLTAGE_MV; - charge.current = pi3usb9281_get_ilim(device_type, - charger_status); - charge_manager_update_charge(type, port, &charge); - } else { /* Detachment */ - charge_manager_update_charge( - CHARGE_SUPPLIER_PROPRIETARY, - port, - &charge); - charge_manager_update_charge( - CHARGE_SUPPLIER_BC12_CDP, - port, - &charge); - charge_manager_update_charge( - CHARGE_SUPPLIER_BC12_DCP, - port, - &charge); - charge_manager_update_charge( - CHARGE_SUPPLIER_BC12_SDP, - port, - &charge); - charge_manager_update_charge( - CHARGE_SUPPLIER_OTHER, - port, - &charge); + chg.voltage = USB_CHARGER_VOLTAGE_MV; + chg.current = pi3usb9281_get_ilim(device_type, charger_status); + charge_manager_update_charge(type, port, &chg); + } else { + /* Detachment */ + charge_manager_update_charge(CHARGE_SUPPLIER_PROPRIETARY, + port, NULL); + charge_manager_update_charge(CHARGE_SUPPLIER_BC12_CDP, + port, NULL); + charge_manager_update_charge(CHARGE_SUPPLIER_BC12_DCP, + port, NULL); + charge_manager_update_charge(CHARGE_SUPPLIER_BC12_SDP, + port, NULL); + charge_manager_update_charge(CHARGE_SUPPLIER_OTHER, + port, NULL); } } |