Skip to content

Commit ad3d9c7

Browse files
jwrdegoedesre
authored andcommitted
power: supply: bq25890: Call power_supply_changed() after updating input current or voltage
The bq25892 model relies on external charger-type detection and once that is done the bq25890_charger code will update the input current and if pumpexpress is used also the input voltage. In this case, when the initial power_supply_changed() call is made from the interrupt handler, the input settings are 5V/0.5A which on many devices is not enough power to charge (while the device is on). On many devices the fuel-gauge relies in its external_power_changed callback to timely signal userspace about charging <-> discharging status changes. Add a power_supply_changed() call after updating the input current or voltage. This allows the fuel-gauge driver to timely recheck if the battery is charging after the new input settings have been applied and then it can immediately notify userspace about this. Fixes: 48f45b0 ("power: supply: bq25890: Support higher charging voltages through Pump Express+ protocol") Fixes: eab25b4 ("power: supply: bq25890: On the bq25892 set the IINLIM based on external charger detection") Signed-off-by: Hans de Goede <[email protected]> Signed-off-by: Sebastian Reichel <[email protected]>
1 parent 59dddea commit ad3d9c7

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

drivers/power/supply/bq25890_charger.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -775,6 +775,7 @@ static void bq25890_charger_external_power_changed(struct power_supply *psy)
775775
}
776776

777777
bq25890_field_write(bq, F_IINLIM, input_current_limit);
778+
power_supply_changed(psy);
778779
}
779780

780781
static int bq25890_get_chip_state(struct bq25890_device *bq,
@@ -1106,6 +1107,8 @@ static void bq25890_pump_express_work(struct work_struct *data)
11061107
dev_info(bq->dev, "Hi-voltage charging requested, input voltage is %d mV\n",
11071108
voltage);
11081109

1110+
power_supply_changed(bq->charger);
1111+
11091112
return;
11101113
error_print:
11111114
bq25890_field_write(bq, F_PUMPX_EN, 0);

0 commit comments

Comments
 (0)