diff options
author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-08-25 15:30:48 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-08-25 15:30:48 -0700 |
commit | 62fddf01a47bd0086b3391047789603913b7a4a7 (patch) | |
tree | c68d924271793449219e08aa7ca180a913ed8073 | |
parent | ea8714b1ba4058f151d93fafcff9c94cc1f290b3 (diff) | |
parent | ca0bfff287f1fe9b6a48f6bd86c0e5d413c84782 (diff) |
Merge "qpnp-qnovo: disable qnovo for dcin"
-rw-r--r-- | Documentation/devicetree/bindings/power/supply/qcom/qpnp-qnovo.txt | 1 | ||||
-rw-r--r-- | drivers/power/supply/qcom/qpnp-qnovo.c | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/power/supply/qcom/qpnp-qnovo.txt b/Documentation/devicetree/bindings/power/supply/qcom/qpnp-qnovo.txt index 96b7dd517231..8f35e56816ce 100644 --- a/Documentation/devicetree/bindings/power/supply/qcom/qpnp-qnovo.txt +++ b/Documentation/devicetree/bindings/power/supply/qcom/qpnp-qnovo.txt @@ -20,6 +20,7 @@ Required properties: Optional Properties: - qcom,external-rsense: To indicate whether the platform uses external or internal rsense for measuring battery current. +- qcom,enable-for-dc: To enable qnovo for dc charging path. Example: diff --git a/drivers/power/supply/qcom/qpnp-qnovo.c b/drivers/power/supply/qcom/qpnp-qnovo.c index b70d97a7edf6..cb34d73979ff 100644 --- a/drivers/power/supply/qcom/qpnp-qnovo.c +++ b/drivers/power/supply/qcom/qpnp-qnovo.c @@ -131,6 +131,7 @@ struct qnovo_dt_props { bool external_rsense; struct device_node *revid_dev_node; + bool enable_for_dc; }; struct qnovo { @@ -443,6 +444,8 @@ static int qnovo_parse_dt(struct qnovo *chip) pr_err("Missing qcom,pmic-revid property - driver failed\n"); return -EINVAL; } + chip->dt.enable_for_dc = of_property_read_bool(node, + "qcom,enable-for-dc"); return 0; } @@ -1311,6 +1314,10 @@ static void status_change_work(struct work_struct *work) if (usb_present) dc_present = 0; + /* disable qnovo for dc path by forcing dc_present = 0 always */ + if (!chip->dt.enable_for_dc) + dc_present = 0; + if (chip->dc_present && !dc_present) { /* removal */ chip->dc_present = 0; @@ -1455,6 +1462,9 @@ static int qnovo_hw_init(struct qnovo *chip) u8 vadc_offset, vadc_gain; u8 val; + vote(chip->chg_ready_votable, USB_READY_VOTER, false, 0); + vote(chip->chg_ready_votable, DC_READY_VOTER, false, 0); + vote(chip->disable_votable, USER_VOTER, true, 0); vote(chip->disable_votable, FG_AVAILABLE_VOTER, true, 0); |