diff --git a/drivers/power/supply/qcom/smb5-lib.c b/drivers/power/supply/qcom/smb5-lib.c
index 7d9c7ba..a5c3254 100644
--- a/drivers/power/supply/qcom/smb5-lib.c
+++ b/drivers/power/supply/qcom/smb5-lib.c
@@ -1236,6 +1236,38 @@
 	return 0;
 }
 
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+static int smblib_jeita_rechg_voltage_vote_callback(struct votable *votable, void *data,
+			int voltage, const char *client)
+{
+	struct smb_charger *chg = data;
+	int rc = 0;
+	u32 temp = VBAT_TO_VRAW_ADC((voltage/1000));
+
+	temp = ((temp & 0xFF00) >> 8) | ((temp & 0xFF) << 8);
+	rc = smblib_batch_write(chg,
+		CHGR_ADC_RECHARGE_THRESHOLD_MSB_REG, (u8 *)&temp, 2);
+	if (rc < 0) {
+		dev_err(chg->dev, "Couldn't configure ADC_RECHARGE_THRESHOLD REG rc=%d\n",
+			rc);
+		return rc;
+	}
+	/* Program the sample count for VBAT based recharge to 3 */
+	rc = smblib_masked_write(chg, CHGR_NO_SAMPLE_TERM_RCHG_CFG_REG,
+				NO_OF_SAMPLE_FOR_RCHG,
+				2 << NO_OF_SAMPLE_FOR_RCHG_SHIFT);
+	if (rc < 0) {
+		dev_err(chg->dev, "Couldn't configure CHGR_NO_SAMPLE_FOR_TERM_RCHG_CFG rc=%d\n",
+			rc);
+		return rc;
+	}
+
+	dev_err(chg->dev, "jeita_rechg_voltage =%d\n", voltage);
+
+	return rc;
+}
+//>2020/04/28-JessicaTseng
+
 /*******************
  * VCONN REGULATOR *
  * *****************/
@@ -4428,6 +4460,16 @@
 		return rc;
 	}
 
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+	chg->rechg_vol_votable = create_votable("RECHG_VOL", VOTE_MIN,
+					smblib_jeita_rechg_voltage_vote_callback,
+					chg);
+	if (IS_ERR(chg->rechg_vol_votable)) {
+		rc = PTR_ERR(chg->rechg_vol_votable);
+		return rc;
+	}
+//>2020/04/28-JessicaTseng
+
 	return rc;
 }
 
diff --git a/drivers/power/supply/qcom/smb5-lib.h b/drivers/power/supply/qcom/smb5-lib.h
index 63061da..c00db85 100644
--- a/drivers/power/supply/qcom/smb5-lib.h
+++ b/drivers/power/supply/qcom/smb5-lib.h
@@ -341,6 +341,9 @@
 	struct votable		*chg_disable_votable;
 	struct votable		*pl_enable_votable_indirect;
 	struct votable		*usb_irq_enable_votable;
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+	struct votable		*rechg_vol_votable;
+//>2020/04/28-JessicaTseng
 
 	/* work */
 	struct work_struct	bms_update_work;
diff --git a/drivers/power/supply/qcom/step-chg-jeita.c b/drivers/power/supply/qcom/step-chg-jeita.c
index 3e8b46b..63b3950 100644
--- a/drivers/power/supply/qcom/step-chg-jeita.c
+++ b/drivers/power/supply/qcom/step-chg-jeita.c
@@ -80,6 +80,9 @@
 	struct votable		*fcc_votable;
 	struct votable		*fv_votable;
 	struct votable		*usb_icl_votable;
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+	struct votable		*rechg_vol_votable;
+//>2020/04/28-JessicaTseng
 	struct wakeup_source	*step_chg_ws;
 	struct power_supply	*batt_psy;
 	struct power_supply	*bms_psy;
@@ -500,6 +503,10 @@
 }
 
 #define JEITA_SUSPEND_HYST_UV		50000
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+#define JEITA_RECHG_HYST_UV		200000//100000
+//>2020/04/28-JessicaTseng
+
 static int handle_jeita(struct step_chg_info *chip)
 {
 	union power_supply_propval pval = {0, };
@@ -561,6 +568,11 @@
 	if (rc < 0)
 		fv_uv = 0;
 
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+	if (!chip->rechg_vol_votable)
+		chip->rechg_vol_votable = find_votable("RECHG_VOL");
+//>2020/04/28-JessicaTseng
+
 	chip->fv_votable = find_votable("FV");
 	if (!chip->fv_votable)
 		goto update_time;
@@ -597,6 +609,10 @@
 
 set_jeita_fv:
 	vote(chip->fv_votable, JEITA_VOTER, fv_uv ? true : false, fv_uv);
+//<2020/04/28-JessicaTseng, Setting jeita fv re-charge voltage for warm temp
+	vote(chip->rechg_vol_votable,
+			JEITA_VOTER, true, (fv_uv -JEITA_RECHG_HYST_UV));
+//>2020/04/28-JessicaTseng
 
 update_time:
 	chip->jeita_last_update_time = ktime_get();
