diff options
| author | Abhijeet Dharmapurikar <adharmap@codeaurora.org> | 2017-08-08 16:04:46 -0700 |
|---|---|---|
| committer | Abhijeet Dharmapurikar <adharmap@codeaurora.org> | 2017-08-24 09:54:49 -0700 |
| commit | ca0bfff287f1fe9b6a48f6bd86c0e5d413c84782 (patch) | |
| tree | 60e7e5ca6912c9917baf98ba2480648e34f20574 | |
| parent | 47235a715509c87b8694a5cf4b1c9978f77346ba (diff) | |
qpnp-qnovo: disable qnovo for dcin
Usually, DC path is connected to a wireless charger. It is advisable
to disable qnovo when charging wirelessly.
Disable qnovo for dc path unless a property in device tree is set to
specifically enable qnovo for dc path.
Change-Id: I4ca475f30ca0a564f533b4ed8bcd55cfb5da291f
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
| -rw-r--r-- | Documentation/devicetree/bindings/power/supply/qcom/qpnp-qnovo.txt | 1 | ||||
| -rw-r--r-- | drivers/power/supply/qcom/qpnp-qnovo.c | 7 |
2 files changed, 8 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 2887b17ce2ed..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; |
