summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubbaraman Narayanamurthy <subbaram@codeaurora.org>2017-03-14 19:50:57 -0700
committerSubbaraman Narayanamurthy <subbaram@codeaurora.org>2017-03-23 16:39:06 -0700
commit46b94b644887c503c83462fd55ae448badbf4793 (patch)
tree888c87f6ce742ba91037edde59ede2327435a887
parentbda96ffdc06ced1a33b0469e01116d4e1b855dd4 (diff)
power: qpnp-fg-gen3: allow negative Rconn configuration
In some cases, to offset the battery resistance which may be high because of battery profile characterization and hardware layout, negative connector resistance (Rconn) should be specified. Allow configuring it. Change-Id: Ief64ac13ba0a384a599fe6fffdbc0d093180d0b8 Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
-rw-r--r--drivers/power/supply/qcom/qpnp-fg-gen3.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/power/supply/qcom/qpnp-fg-gen3.c b/drivers/power/supply/qcom/qpnp-fg-gen3.c
index 5dcd4c36675a..6fdcc494cdc5 100644
--- a/drivers/power/supply/qcom/qpnp-fg-gen3.c
+++ b/drivers/power/supply/qcom/qpnp-fg-gen3.c
@@ -1598,6 +1598,9 @@ static int fg_rconn_config(struct fg_chip *chip)
u64 scaling_factor;
u32 val = 0;
+ if (!chip->dt.rconn_mohms)
+ return 0;
+
rc = fg_sram_read(chip, PROFILE_INTEGRITY_WORD,
SW_CONFIG_OFFSET, (u8 *)&val, 1, FG_IMA_DEFAULT);
if (rc < 0) {
@@ -3176,12 +3179,10 @@ static int fg_hw_init(struct fg_chip *chip)
return rc;
}
- if (chip->dt.rconn_mohms > 0) {
- rc = fg_rconn_config(chip);
- if (rc < 0) {
- pr_err("Error in configuring Rconn, rc=%d\n", rc);
- return rc;
- }
+ rc = fg_rconn_config(chip);
+ if (rc < 0) {
+ pr_err("Error in configuring Rconn, rc=%d\n", rc);
+ return rc;
}
fg_encode(chip->sp, FG_SRAM_ESR_TIGHT_FILTER,
@@ -3957,9 +3958,7 @@ static int fg_parse_dt(struct fg_chip *chip)
pr_err("Error in parsing Ki coefficients, rc=%d\n", rc);
rc = of_property_read_u32(node, "qcom,fg-rconn-mohms", &temp);
- if (rc < 0)
- chip->dt.rconn_mohms = -EINVAL;
- else
+ if (!rc)
chip->dt.rconn_mohms = temp;
rc = of_property_read_u32(node, "qcom,fg-esr-filter-switch-temp",