summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhijeet Dharmapurikar <adharmap@codeaurora.org>2017-08-08 16:04:46 -0700
committerAbhijeet Dharmapurikar <adharmap@codeaurora.org>2017-08-24 09:54:49 -0700
commitca0bfff287f1fe9b6a48f6bd86c0e5d413c84782 (patch)
tree60e7e5ca6912c9917baf98ba2480648e34f20574
parent47235a715509c87b8694a5cf4b1c9978f77346ba (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.txt1
-rw-r--r--drivers/power/supply/qcom/qpnp-qnovo.c7
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;