Merge "target: msm8996: Add support for weak battery charging"
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index 0b9fd12..6f72f15 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -63,6 +63,10 @@
#include <rpmb.h>
#endif
+#if ENABLE_WBC
+#include <pm_app_smbchg.h>
+#endif
+
#if DEVICE_TREE
#include <libfdt.h>
#include <dev_tree.h>
@@ -3187,7 +3191,14 @@
if (!check_alarm_boot()) {
#endif
dprintf(SPEW, "Display Init: Start\n");
+#if ENABLE_WBC
+ if (!pm_appsbl_display_init_done())
+ target_display_init(device.display_panel);
+ else
+ display_image_on_screen();
+#else
target_display_init(device.display_panel);
+#endif
dprintf(SPEW, "Display Init: Done\n");
#if NO_ALARM_DISPLAY
}
diff --git a/project/msm8996.mk b/project/msm8996.mk
index 9dd510b..b7beef7 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