Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

power: supply: smb347-charger: Utilize generic regmap caching

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@gmail.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>

authored by

Dmitry Osipenko and committed by
Sebastian Reichel
17e7bc53 4ac59d85

+4 -12
+4 -12
drivers/power/supply/smb347-charger.c
··· 135 135 * @id: SMB charger ID 136 136 * @mains_online: is AC/DC input connected 137 137 * @usb_online: is USB input connected 138 - * @charging_enabled: is charging enabled 139 138 * @irq_unsupported: is interrupt unsupported by SMB hardware 140 139 * @max_charge_current: maximum current (in uA) the battery can be charged 141 140 * @max_charge_voltage: maximum voltage (in uV) the battery can be charged ··· 191 192 unsigned int id; 192 193 bool mains_online; 193 194 bool usb_online; 194 - bool charging_enabled; 195 195 bool irq_unsupported; 196 196 197 197 unsigned int max_charge_current; ··· 356 358 357 359 static int smb347_charging_set(struct smb347_charger *smb, bool enable) 358 360 { 359 - int ret = 0; 360 - 361 361 if (smb->enable_control != SMB3XX_CHG_ENABLE_SW) { 362 362 dev_dbg(smb->dev, "charging enable/disable in SW disabled\n"); 363 363 return 0; 364 364 } 365 365 366 - if (smb->charging_enabled != enable) { 367 - ret = regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED, 368 - enable ? CMD_A_CHG_ENABLED : 0); 369 - if (!ret) 370 - smb->charging_enabled = enable; 371 - } 372 - 373 - return ret; 366 + return regmap_update_bits(smb->regmap, CMD_A, CMD_A_CHG_ENABLED, 367 + enable ? CMD_A_CHG_ENABLED : 0); 374 368 } 375 369 376 370 static inline int smb347_charging_enable(struct smb347_charger *smb) ··· 1300 1310 .max_register = SMB347_MAX_REGISTER, 1301 1311 .volatile_reg = smb347_volatile_reg, 1302 1312 .readable_reg = smb347_readable_reg, 1313 + .cache_type = REGCACHE_FLAT, 1314 + .num_reg_defaults_raw = SMB347_MAX_REGISTER, 1303 1315 }; 1304 1316 1305 1317 static const struct power_supply_desc smb347_mains_desc = {