Hi, On Sat, Jul 31, 2021 at 08:38:37PM +0300, Dmitry Osipenko wrote: > Utilize generic regmap caching in order to avoid unnecessary slow I2C > accesses to all constant registers each time the supply status updated > and remove local caching of charger state to make code cleaner. > > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx> -- Sebastian > drivers/power/supply/smb347-charger.c | 16 ++++------------ > 1 file changed, 4 insertions(+), 12 deletions(-) > > diff --git a/drivers/power/supply/smb347-charger.c b/drivers/power/supply/smb347-charger.c > index db1378b41f80..27254e6efdde 100644 > --- a/drivers/power/supply/smb347-charger.c > +++ b/drivers/power/supply/smb347-charger.c > @@ -135,7 +135,6 @@ > * @id: SMB charger ID > * @mains_online: is AC/DC input connected > * @usb_online: is USB input connected > - * @charging_enabled: is charging enabled > * @irq_unsupported: is interrupt unsupported by SMB hardware > * @max_charge_current: maximum current (in uA) the battery can be charged > * @max_charge_voltage: maximum voltage (in uV) the battery can be charged > @@ -192,7 +191,6 @@ struct smb347_charger { > unsigned int id; > bool mains_online; > bool usb_online; > - bool charging_enabled; > bool irq_unsupported; > > unsigned int max_charge_current; > @@ -358,21 +356,13 @@ static int smb347_charging_status(struct smb347_charger *smb) > > static int smb347_charging_set(struct smb347_charger *smb, bool enable) > { > - int ret = 0; > - > if (smb->enable_control != SMB3XX_CHG_ENABLE_SW) { > dev_dbg(smb->dev, "charging enable/disable in SW disabled\n"); > return 0; > } > > - if (smb->charging_enabled != enable) { > - ret = regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED, > - enable ? CMD_A_CHG_ENABLED : 0); > - if (!ret) > - smb->charging_enabled = enable; > - } > - > - return ret; > + return regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED, > + enable ? CMD_A_CHG_ENABLED : 0); > } > > static inline int smb347_charging_enable(struct smb347_charger *smb) > @@ -1310,6 +1300,8 @@ static const struct regmap_config smb347_regmap = { > .max_register = SMB347_MAX_REGISTER, > .volatile_reg = smb347_volatile_reg, > .readable_reg = smb347_readable_reg, > + .cache_type = REGCACHE_FLAT, > + .num_reg_defaults_raw = SMB347_MAX_REGISTER, > }; > > static const struct power_supply_desc smb347_mains_desc = { > -- > 2.32.0 >
Attachment:
signature.asc
Description: PGP signature