power: pm8921-charger: report DC online for some platforms.
Some hardware platforms can supply VPH_PWR without battery
or charger being present.
To avoid shutting down due to no connected power sources
from the perspective of software set a flag that forces
the DC supply to be online for this type of platform.
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
(cherry picked from commit a3cf943ef8c91435e2cb94b8e8bcc482dc65cb27)
Conflicts:
drivers/power/pm8921-charger.c
Change-Id: I565edb1ab797384481ce5e37aee73ee0a8e80428
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
diff --git a/drivers/power/pm8921-charger.c b/drivers/power/pm8921-charger.c
index 2654bed..9c8814a 100644
--- a/drivers/power/pm8921-charger.c
+++ b/drivers/power/pm8921-charger.c
@@ -282,6 +282,7 @@
int rconn_mohm;
enum pm8921_chg_led_src_config led_src_config;
bool host_mode;
+ bool has_dc_supply;
u8 active_path;
int ext_batt_health;
int ext_batt_temp_monitor;
@@ -1216,6 +1217,12 @@
case POWER_SUPPLY_PROP_PRESENT:
case POWER_SUPPLY_PROP_ONLINE:
val->intval = 0;
+
+ if (the_chip->has_dc_supply) {
+ val->intval = 1;
+ return 0;
+ }
+
if (charging_disabled)
return 0;
@@ -1737,8 +1744,10 @@
*/
if (!get_prop_batt_present(the_chip)
&& !is_dc_chg_plugged_in(the_chip)) {
- pr_err("rejected: no other power source connected\n");
- return;
+ if (!the_chip->has_dc_supply) {
+ pr_err("rejected: no other power source connected\n");
+ return;
+ }
}
if (usb_max_current && mA > usb_max_current) {
@@ -4511,6 +4520,7 @@
chip->hot_thr = pdata->hot_thr;
chip->rconn_mohm = pdata->rconn_mohm;
chip->led_src_config = pdata->led_src_config;
+ chip->has_dc_supply = pdata->has_dc_supply;
chip->ext_batt_temp_monitor = pdata->ext_batt_temp_monitor;
chip->eoc_check_soc = pdata->eoc_check_soc;
if (chip->ext_batt_temp_monitor)