Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 47ba44f9 authored by Ashish Chavan's avatar Ashish Chavan Committed by Gerrit - the friendly Code Review server
Browse files

power: smb1398: Add ILIM offset due to inaccuracy



SMB1396 ILIM accuracy is off by ~5%, add this additional
offset while configuring the ILIM register.

Change-Id: I756e2c815cd2d75714f2528a8f51512c56e80e19
Signed-off-by: default avatarAshish Chavan <ashichav@codeaurora.org>
parent 02b56508
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -205,6 +205,7 @@
/* Need to define max ILIM for smb1398 */
#define DIV2_MAX_ILIM_UA		3200000
#define DIV2_MAX_ILIM_DUAL_CP_UA	6400000
#define DIV2_ILIM_CFG_PCT		105

#define TAPER_STEPPER_UA_DEFAULT	100000
#define TAPER_STEPPER_UA_IN_CC_MODE	200000
@@ -953,7 +954,8 @@ static int div2_cp_master_get_prop(struct power_supply *psy,
		} else {
			rc = smb1398_get_iin_ma(chip, &ilim_ma);
			if (!rc)
				val->intval = ilim_ma * 1000;
				val->intval = (ilim_ma * 1000 * 100)
							/ DIV2_ILIM_CFG_PCT;
		}
		chip->cp_ilim = val->intval;
		break;
@@ -1246,6 +1248,9 @@ static int smb1398_div2_cp_slave_disable_vote_cb(struct votable *votable,
	if (disable && (chip->div2_cp_ilim_votable)) {
		ilim_ua = get_effective_result_locked(
				chip->div2_cp_ilim_votable);

		ilim_ua = (ilim_ua * DIV2_ILIM_CFG_PCT) / 100;

		if (ilim_ua > DIV2_MAX_ILIM_UA)
			ilim_ua = DIV2_MAX_ILIM_UA;

@@ -1276,6 +1281,8 @@ static int smb1398_div2_cp_ilim_vote_cb(struct votable *votable,
	if (!client)
		return -EINVAL;

	ilim_ua = (ilim_ua * DIV2_ILIM_CFG_PCT) / 100;

	max_ilim_ua = is_cps_available(chip) ?
		DIV2_MAX_ILIM_DUAL_CP_UA : DIV2_MAX_ILIM_UA;
	ilim_ua = min(ilim_ua, max_ilim_ua);