summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarry Yang <harryy@codeaurora.org>2017-03-23 22:40:31 -0700
committerHarry Yang <harryy@codeaurora.org>2017-03-28 22:57:00 -0700
commitcfe86e482b0abc75da90d1f4fb52d95331af0ab0 (patch)
tree66bbe125aa1b95d18761c6211d4d78430c92fb95
parent9ac55848ca7c1981cf1f0635e0ecfe717f39856c (diff)
qcom: smb2: Disable parallel charging on qnovo charging below 2A
Add qnovo as pl charging voter and disable parallel charging when qnovo is enabled with fcc below 2A. Change-Id: Ic03a18318a89344f2bd5c8a72445abe22cd3d142 Signed-off-by: Harry Yang <harryy@codeaurora.org>
-rw-r--r--drivers/power/supply/qcom/qpnp-smb2.c2
-rw-r--r--drivers/power/supply/qcom/smb-lib.h1
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/power/supply/qcom/qpnp-smb2.c b/drivers/power/supply/qcom/qpnp-smb2.c
index ee4b78181ade..e8249163e948 100644
--- a/drivers/power/supply/qcom/qpnp-smb2.c
+++ b/drivers/power/supply/qcom/qpnp-smb2.c
@@ -999,6 +999,8 @@ static int smb2_batt_set_prop(struct power_supply *psy,
break;
case POWER_SUPPLY_PROP_CURRENT_QNOVO:
chg->qnovo_fcc_ua = val->intval;
+ vote(chg->pl_disable_votable, PL_QNOVO_VOTER,
+ val->intval != -EINVAL && val->intval < 2000000, 0);
rc = rerun_election(chg->fcc_votable);
break;
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX:
diff --git a/drivers/power/supply/qcom/smb-lib.h b/drivers/power/supply/qcom/smb-lib.h
index 0645b60310b3..32a1c29bb376 100644
--- a/drivers/power/supply/qcom/smb-lib.h
+++ b/drivers/power/supply/qcom/smb-lib.h
@@ -37,6 +37,7 @@ enum print_reason {
#define USB_PSY_VOTER "USB_PSY_VOTER"
#define PL_TAPER_WORK_RUNNING_VOTER "PL_TAPER_WORK_RUNNING_VOTER"
#define PL_INDIRECT_VOTER "PL_INDIRECT_VOTER"
+#define PL_QNOVO_VOTER "PL_QNOVO_VOTER"
#define USBIN_I_VOTER "USBIN_I_VOTER"
#define USBIN_V_VOTER "USBIN_V_VOTER"
#define CHG_STATE_VOTER "CHG_STATE_VOTER"