From 5d39a5984f816ecdc39003c646aec24e3719412a Mon Sep 17 00:00:00 2001
From: "choongryeol.lee" <choongryeol.lee@lge.com>
Date: Fri, 31 Oct 2014 17:14:04 -0700
Subject: [PATCH] power: qpnp-charger: apply polarity change of ibat

Since the sign of battery CURRENT_NOW prop is opposite
of qpnp-charger's convention, apply ibat polarity change
for the charger driver.

Change-Id: Ib4221228e3297b889786dfb390eb14f21491593d
Signed-off-by: choongryeol.lee <choongryeol.lee@lge.com>
---
 drivers/power/qpnp-charger.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/power/qpnp-charger.c b/drivers/power/qpnp-charger.c
index 86f656131ae5..2c0cf18cd37a 100644
--- a/drivers/power/qpnp-charger.c
+++ b/drivers/power/qpnp-charger.c
@@ -2421,7 +2421,11 @@ get_prop_current_now(struct qpnp_chg_chip *chip)
 	if (chip->bms_psy) {
 		chip->bms_psy->get_property(chip->bms_psy,
 			  POWER_SUPPLY_PROP_CURRENT_NOW, &ret);
-		return ret.intval;
+		/*
+		 * qpnp-charger's sign of ibat convention
+		 * is opposite of power_supply's CURRENT_NOW
+		 */
+		return -1 * ret.intval;
 	} else {
 		pr_debug("No BMS supply registered return 0\n");
 	}
@@ -2693,7 +2697,8 @@ qpnp_batt_power_get_property(struct power_supply *psy,
 		val->intval = get_prop_capacity(chip);
 		break;
 	case POWER_SUPPLY_PROP_CURRENT_NOW:
-		val->intval = get_prop_current_now(chip);
+		/* positive value indicate current entering battery */
+		val->intval = -1 * get_prop_current_now(chip);
 		break;
 	case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
 		val->intval = get_prop_full_design(chip);
-- 
GitLab