summaryrefslogtreecommitdiff
path: root/driver/bc12/pi3usb9281.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/bc12/pi3usb9281.c')
-rw-r--r--driver/bc12/pi3usb9281.c42
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);
}
}