Skip to content

Commit

Permalink
power: supply: bq24735: configure the charger as part of enabling it
Browse files Browse the repository at this point in the history
During probe, it makes no sense to take care to first not issue any
i2c commands to verify if the connected part really is a bq24735, to
later simply fail the probe in the next step when trying to configure
the charger. So, delay configuration of the charging parameters until
the charger is accessible (i.e. when the AC adapter is present) as
part of enabling the charging.

This also fixes the rather serious issue that the charging parameters
are lost when the AC adapter is disconnected.

Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
  • Loading branch information
Peter Rosin authored and Sebastian Reichel committed Jan 4, 2017
1 parent 2e66585 commit a07bea3
Showing 1 changed file with 6 additions and 7 deletions.
13 changes: 6 additions & 7 deletions drivers/power/supply/bq24735-charger.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,15 @@ static int bq24735_config_charger(struct bq24735 *charger)

static inline int bq24735_enable_charging(struct bq24735 *charger)
{
int ret;

if (charger->pdata->ext_control)
return 0;

ret = bq24735_config_charger(charger);
if (ret)
return ret;

return bq24735_update_word(charger->client, BQ24735_CHG_OPT,
BQ24735_CHG_OPT_CHARGE_DISABLE, 0);
}
Expand Down Expand Up @@ -292,7 +298,6 @@ static int bq24735_charger_set_property(struct power_supply *psy,
mutex_unlock(&charger->lock);
if (ret)
return ret;
bq24735_config_charger(charger);
break;
case POWER_SUPPLY_STATUS_DISCHARGING:
case POWER_SUPPLY_STATUS_NOT_CHARGING:
Expand Down Expand Up @@ -434,12 +439,6 @@ static int bq24735_charger_probe(struct i2c_client *client,
}
}

ret = bq24735_config_charger(charger);
if (ret < 0) {
dev_err(&client->dev, "failed in configuring charger");
return ret;
}

/* check for AC adapter presence */
if (bq24735_charger_is_present(charger)) {
ret = bq24735_enable_charging(charger);
Expand Down

0 comments on commit a07bea3

Please sign in to comment.