target: msm8996: Add support for weak battery charging
Initialize charger driver to make sure the battery is good enough to
continue boot up.
Change-Id: Iff425b804352b01f019377988d2c0f9982ec6caf
diff --git a/project/msm8996.mk b/project/msm8996.mk
index 396e108..73aa1bc 100644
--- a/project/msm8996.mk
+++ b/project/msm8996.mk
@@ -43,6 +43,7 @@
DEFINES += USB_RESET_FROM_CLK=1
DEFINES += USE_BOOTDEV_CMDLINE=1
DEFINES += USE_RPMB_FOR_DEVINFO=1
+DEFINES += ENABLE_WBC=1
#Disable thumb mode
ENABLE_THUMB := false
diff --git a/target/msm8996/init.c b/target/msm8996/init.c
index f407eea..488ed47 100644
--- a/target/msm8996/init.c
+++ b/target/msm8996/init.c
@@ -58,6 +58,9 @@
#include <qusb2_phy.h>
#include <rpmb.h>
#include <rpm-glink.h>
+#if ENABLE_WBC
+#include <pm_app_smbchg.h>
+#endif
#define CE_INSTANCE 1
#define CE_EE 1
@@ -147,6 +150,10 @@
}
}
+#if ENABLE_WBC
+ pm_appsbl_set_dcin_suspend(1);
+#endif
+
/* Tear down glink channels */
rpm_glink_uninit();
@@ -237,6 +244,18 @@
spmi_init(PMIC_ARB_CHANNEL_NUM, PMIC_ARB_OWNER_ID);
+ /* Initialize Glink */
+ rpm_glink_init();
+
+#if ENABLE_WBC
+ /* Look for battery voltage and make sure we have enough to bootup
+ * Otherwise initiate battery charging
+ * Charging should happen as early as possible, any other driver
+ * initialization before this should consider the power impact
+ */
+ pm_appsbl_chg_check_weak_battery_status(1);
+#endif
+
target_keystatus();
if (target_use_signed_kernel())
@@ -266,9 +285,6 @@
dprintf(CRITICAL, "RPMB init failed\n");
ASSERT(0);
}
- /* Initialize Glink */
- rpm_glink_init();
-
}
unsigned board_machtype(void)
diff --git a/target/msm8996/rules.mk b/target/msm8996/rules.mk
index 8966c0a..a0c3a8d 100644
--- a/target/msm8996/rules.mk
+++ b/target/msm8996/rules.mk
@@ -28,6 +28,7 @@
dev/qpnp_wled \
dev/qpnp_led \
dev/gcdb/display \
+ dev/pmic/pmi8994 \
lib/ptable \
lib/libfdt