diff options
author | Subbaraman Narayanamurthy <subbaram@codeaurora.org> | 2017-03-14 19:50:57 -0700 |
---|---|---|
committer | Subbaraman Narayanamurthy <subbaram@codeaurora.org> | 2017-03-23 16:39:06 -0700 |
commit | 46b94b644887c503c83462fd55ae448badbf4793 (patch) | |
tree | 888c87f6ce742ba91037edde59ede2327435a887 | |
parent | bda96ffdc06ced1a33b0469e01116d4e1b855dd4 (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.c | 17 |
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", |