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

Commit 7f5c679f authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "power: qpnp-smbcharger: Remove soc based charging resume"

parents 36983f72 c1b3e4d6
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -136,10 +136,6 @@ Optional Properties:
				required in order to initiate a new charging
				cycle. Supported values are: 50, 100, 200 and
				300mV.
- qcom,resume-soc		Indictates at what state of charge the device
				should resume charging. If this is not defined,
				the only way to resume charging is through the
				voltage drop specified by qcom,resume-delta-mv.
- qcom,chg-inhibit-fg		Indicates if the recharge threshold source has
				to be Fuel gauge ADC. If this is not set, it
				will be analog sensor by default.
+3 −55
Original line number Diff line number Diff line
@@ -83,7 +83,6 @@ struct smbchg_chip {
	int				safety_time;
	int				prechg_safety_time;
	int				bmd_pin_src;
	int				resume_soc_threshold;
	bool				use_vfloat_adjustments;
	bool				iterm_disabled;
	bool				bmd_algo_disabled;
@@ -1876,44 +1875,6 @@ static void smbchg_unknown_battery_en(struct smbchg_chip *chip, bool en)
	}
}

#define CHGR_CFG2			0xFC
#define CHG_EN_COMMAND_BIT		BIT(6)
#define CHARGER_INHIBIT_BIT		BIT(0)
static void smbchg_restart_charging(struct smbchg_chip *chip)
{
	int rc;

	pr_smb(PR_STATUS, "restarting charging\n");

	rc = smbchg_sec_masked_write(chip, chip->chgr_base + CHGR_CFG2,
			CHARGER_INHIBIT_BIT | CHG_EN_COMMAND_BIT, 0);
	if (rc < 0) {
		dev_err(chip->dev, "Couldn't set chgr_cfg2 rc=%d\n", rc);
		return;
	}

	/* Sleep for 100 ms in order to let charge inhibit fall */
	msleep(100);

	rc = smbchg_sec_masked_write(chip, chip->chgr_base + CHGR_CFG2,
			CHG_EN_COMMAND_BIT, CHG_EN_COMMAND_BIT);
	if (rc < 0) {
		dev_err(chip->dev, "Couldn't set chgr_cfg2 rc=%d\n", rc);
		return;
	}

	/* Sleep for 500 ms in order to give charging a chance to restart */
	msleep(500);

	rc = smbchg_sec_masked_write(chip, chip->chgr_base + CHGR_CFG2,
			CHARGER_INHIBIT_BIT | CHG_EN_COMMAND_BIT,
			CHARGER_INHIBIT_BIT | CHG_EN_COMMAND_BIT);
	if (rc < 0) {
		dev_err(chip->dev, "Couldn't set chgr_cfg2 rc=%d\n", rc);
		return;
	}
}

#define CMD_CHG_REG	0x42
#define EN_BAT_CHG_BIT		BIT(1)
static int smbchg_charging_en(struct smbchg_chip *chip, bool en)
@@ -1943,21 +1904,6 @@ static void smbchg_external_power_changed(struct power_supply *psy)
		smbchg_unknown_battery_en(chip, en);
		en = strcmp(prop.strval, LOADING_BATT_TYPE) != 0;
		smbchg_charging_en(chip, en);

		if (get_prop_batt_capacity(chip) <= chip->resume_soc_threshold
				&& chip->resume_soc_threshold >= 0
				&& !chip->batt_cool && !chip->batt_warm
				&& (get_prop_batt_status(chip)
					== POWER_SUPPLY_STATUS_FULL
				|| get_prop_batt_status(chip)
					== POWER_SUPPLY_STATUS_NOT_CHARGING))
			smbchg_restart_charging(chip);
		else if (chip->resume_soc_threshold >= 0)
			pr_smb(PR_MISC,
				"not resuming, soc: %d - %d, status = %d\n",
				get_prop_batt_capacity(chip),
				chip->resume_soc_threshold,
				get_prop_batt_status(chip));
	}

	rc = chip->usb_psy->get_property(chip->usb_psy,
@@ -2802,6 +2748,7 @@ static inline int get_bpd(const char *name)
#define CHGR_CFG1			0xFB
#define RECHG_THRESHOLD_SRC_BIT		BIT(1)
#define TERM_I_SRC_BIT			BIT(2)
#define CHGR_CFG2			0xFC
#define CHG_INHIB_CFG_REG		0xF7
#define CHG_INHIBIT_50MV_VAL		0x00
#define CHG_INHIBIT_100MV_VAL		0x01
@@ -2810,9 +2757,11 @@ static inline int get_bpd(const char *name)
#define CHG_INHIBIT_MASK		0x03
#define USE_REGISTER_FOR_CURRENT	BIT(2)
#define CHG_EN_SRC_BIT			BIT(7)
#define CHG_EN_COMMAND_BIT		BIT(6)
#define P2F_CHG_TRAN			BIT(5)
#define I_TERM_BIT			BIT(3)
#define AUTO_RECHG_BIT			BIT(2)
#define CHARGER_INHIBIT_BIT		BIT(0)
#define CFG_TCC_REG			0xF9
#define CHG_ITERM_50MA			0x1
#define CHG_ITERM_100MA			0x2
@@ -3174,7 +3123,6 @@ static int smb_parse_dt(struct smbchg_chip *chip)
	OF_PROP_READ(chip, chip->vfloat_mv, "float-voltage-mv", rc, 1);
	OF_PROP_READ(chip, chip->safety_time, "charging-timeout-mins", rc, 1);
	OF_PROP_READ(chip, chip->rpara_uohm, "rparasitic-uohm", rc, 1);
	OF_PROP_READ(chip, chip->resume_soc_threshold, "resume-soc", rc, 1);
	OF_PROP_READ(chip, chip->prechg_safety_time, "precharging-timeout-mins",
			rc, 1);
	if (chip->safety_time != -EINVAL &&