From 46b94b644887c503c83462fd55ae448badbf4793 Mon Sep 17 00:00:00 2001 From: Subbaraman Narayanamurthy Date: Tue, 14 Mar 2017 19:50:57 -0700 Subject: [PATCH] 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 --- drivers/power/supply/qcom/qpnp-fg-gen3.c | 17 ++++++++--------- 1 file 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",