target: msm8952: disable pmi for 8917

add option to disable pmi on 8917 LE based targets

Change-Id: I6d6552b0dac3ed5381a40171261f0ed38edc91d5
diff --git a/dev/qpnp_haptic/qpnp_haptic.c b/dev/qpnp_haptic/qpnp_haptic.c
index 51de2e5..a4e3820 100644
--- a/dev/qpnp_haptic/qpnp_haptic.c
+++ b/dev/qpnp_haptic/qpnp_haptic.c
@@ -87,6 +87,9 @@
 {
 	struct qpnp_hap vib_config = {0};
 
+	if(!target_is_pmi_enabled())
+		return;
+
 	get_vibration_type(&vib_config);
 	/* Configure the ACTUATOR TYPE register as ERM*/
 	pmic_spmi_reg_mask_write(QPNP_HAP_ACT_TYPE_REG,
@@ -149,6 +152,9 @@
 /* Turn off vibrator */
 void pm_vib_turn_off(void)
 {
+	if(!target_is_pmi_enabled())
+		return;
+
 	/* Disable control register */
 	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL_REG,
 					QPNP_HAP_PLAY_MASK, QPNP_HAP_PLAY_DIS);
diff --git a/dev/qpnp_wled/qpnp_wled.c b/dev/qpnp_wled/qpnp_wled.c
index 9282a7b..4267372 100644
--- a/dev/qpnp_wled/qpnp_wled.c
+++ b/dev/qpnp_wled/qpnp_wled.c
@@ -33,6 +33,7 @@
 #include <qpnp_wled.h>
 #include <pm8x41_wled.h>
 #include <qtimer.h>
+#include <target.h>
 
 static int qpnp_wled_avdd_target_voltages[NUM_SUPPORTED_AVDD_VOLTAGES] = {
 	7900, 7600, 7300, 6400, 6100, 5800,
@@ -598,6 +599,9 @@
 	int rc;
 	struct qpnp_wled *wled;
 
+	if(!target_is_pmi_enabled())
+		return ERR_NOT_FOUND;
+
 	wled = malloc(sizeof(struct qpnp_wled));
 	if (!wled)
 		return ERR_NO_MEMORY;
diff --git a/include/target.h b/include/target.h
index 62369ed..a9a1eea 100644
--- a/include/target.h
+++ b/include/target.h
@@ -95,6 +95,7 @@
 int target_get_qmp_regsize();
 uint32_t target_ddr_cfg_reg();
 
+bool target_is_pmi_enabled(void);
 #if PON_VIB_SUPPORT
 void get_vibration_type();
 #endif
diff --git a/project/msm8952.mk b/project/msm8952.mk
index d7d74b9..b6f5dd6 100644
--- a/project/msm8952.mk
+++ b/project/msm8952.mk
@@ -23,9 +23,13 @@
 ENABLE_SECAPP_LOADER := 1
 ENABLE_RPMB_SUPPORT := 1
 #enable fbcon display menu
+ifneq (,$(findstring DISPLAY_SPLASH_SCREEN,$(DEFINES)))
 ENABLE_FBCON_DISPLAY_MSG := 1
-endif
-endif
+else
+ENABLE_FBCON_DISPLAY_MSG := 0
+endif #DISPLAY_SPLASH_SCREEN END
+endif #ENABLE_VBOOT_MOTA_SUPPORT END
+endif #VERIFIED_BOOT
 
 
 
diff --git a/target/init.c b/target/init.c
index a0e0e10..ff2869b 100644
--- a/target/init.c
+++ b/target/init.c
@@ -242,6 +242,11 @@
 {
 }
 
+__WEAK bool target_is_pmi_enabled(void)
+{
+	return 1;
+}
+
 /* Default CFG delay value */
 __WEAK uint32_t target_ddr_cfg_val()
 {
@@ -358,8 +363,11 @@
 		case PMIC_IS_PMI8950:
 		case PMIC_IS_PMI8994:
 		case PMIC_IS_PMI8996:
-			value = REG_READ(PMIC_SLAVE_ID|
-			BAT_IF_BAT_PRES_STATUS);
+			if(target_is_pmi_enabled())
+			{
+				value = REG_READ(PMIC_SLAVE_ID|
+						BAT_IF_BAT_PRES_STATUS);
+			}
 			break;
 		default:
 			dprintf(CRITICAL, "ERROR: Couldn't get the pmic type\n");
@@ -391,10 +399,13 @@
 		case PMIC_IS_PMI8950:
 		case PMIC_IS_PMI8994:
 		case PMIC_IS_PMI8996:
-			if (!pm_fg_usr_get_vbat(1, &vbat)) {
-				vbat = vbat*1000; //uv
-			} else {
-				dprintf(CRITICAL, "ERROR: Get battery voltage failed!!!\n");
+			if(target_is_pmi_enabled())
+			{
+				if (!pm_fg_usr_get_vbat(1, &vbat)) {
+					vbat = vbat*1000; //uv
+				} else {
+					dprintf(CRITICAL, "ERROR: Get battery voltage failed!!!\n");
+				}
 			}
 			break;
 		default:
diff --git a/target/msm8952/init.c b/target/msm8952/init.c
index 77d685c..112a3c8 100644
--- a/target/msm8952/init.c
+++ b/target/msm8952/init.c
@@ -292,21 +292,25 @@
 
 	spmi_init(PMIC_ARB_CHANNEL_NUM, PMIC_ARB_OWNER_ID);
 
-	if(platform_is_msm8937() || platform_is_msm8917())
+	if(target_is_pmi_enabled())
 	{
-		uint8_t pmi_rev = 0;
-		uint32_t pmi_type = 0;
-
-		pmi_type = board_pmic_target(1) & 0xffff;
-		if(pmi_type == PMIC_IS_PMI8950)
+		if(platform_is_msm8937() || platform_is_msm8917())
 		{
-			/* read pmic spare register for rev */
-			pmi_rev = pmi8950_get_pmi_subtype();
-			if(pmi_rev)
-				board_pmi_target_set(1,pmi_rev);
+			uint8_t pmi_rev = 0;
+			uint32_t pmi_type = 0;
+
+			pmi_type = board_pmic_target(1) & 0xffff;
+			if(pmi_type == PMIC_IS_PMI8950)
+			{
+				/* read pmic spare register for rev */
+				pmi_rev = pmi8950_get_pmi_subtype();
+				if(pmi_rev)
+					board_pmi_target_set(1,pmi_rev);
+			}
 		}
 	}
 
+
 	target_keystatus();
 
 	target_sdc_init();
@@ -317,12 +321,14 @@
 	}
 
 #if LONG_PRESS_POWER_ON
-	shutdown_detect();
+	if(target_is_pmi_enabled())
+		shutdown_detect();
 #endif
 
 #if PON_VIB_SUPPORT
 	/* turn on vibrator to indicate that phone is booting up to end user */
-	vib_timed_turn_on(VIBRATE_TIME);
+	if(target_is_pmi_enabled())
+		vib_timed_turn_on(VIBRATE_TIME);
 #endif
 
 	if (target_use_signed_kernel())
@@ -492,7 +498,11 @@
 	else
 		reset_type = PON_PSHOLD_HARD_RESET;
 
-	pm8994_reset_configure(reset_type);
+	if(target_is_pmi_enabled())
+		pm8994_reset_configure(reset_type);
+	else
+		pm8x41_reset_configure(reset_type);
+
 
 	ret = scm_halt_pmic_arbiter();
 	if (ret)
@@ -527,8 +537,12 @@
 {
 	uint8_t pon_reason = pm8x41_get_pon_reason();
 	uint8_t is_cold_boot = pm8x41_get_is_cold_boot();
-	bool usb_present_sts = !(USBIN_UV_RT_STS &
-				pm8x41_reg_read(SMBCHG_USB_RT_STS));
+	bool usb_present_sts = 1;	/* don't care by default */
+
+	if(target_is_pmi_enabled())
+		usb_present_sts = (!(USBIN_UV_RT_STS &
+						 pm8x41_reg_read(SMBCHG_USB_RT_STS)));
+
 	dprintf(INFO, "%s : pon_reason is:0x%x cold_boot:%d usb_sts:%d\n", __func__,
 		pon_reason, is_cold_boot, usb_present_sts);
 	/* In case of fastboot reboot,adb reboot or if we see the power key
@@ -548,7 +562,8 @@
 void target_uninit(void)
 {
 #if PON_VIB_SUPPORT
-	turn_off_vib_early();
+	if(target_is_pmi_enabled())
+		turn_off_vib_early();
 #endif
 	mmc_put_card_to_sleep(dev);
 	sdhci_mode_disable(&dev->host);
@@ -741,6 +756,15 @@
 	crypto_init_params(&ce_params);
 }
 
+bool target_is_pmi_enabled(void)
+{
+	if(platform_is_msm8917() &&
+	   (board_hardware_subtype() ==	HW_PLATFORM_SUBTYPE_SNAP_NOPMI))
+		return 0;
+	else
+		return 1;
+}
+
 uint32_t target_get_pmic()
 {
 	return PMIC_IS_PMI8950;
diff --git a/target/msm8996/init.c b/target/msm8996/init.c
index dc3186d..f9e63ee 100644
--- a/target/msm8996/init.c
+++ b/target/msm8996/init.c
@@ -370,7 +370,8 @@
 		case HW_PLATFORM_MTP:
 		case HW_PLATFORM_FLUID:
 		case HW_PLATFORM_QRD:
-			pm_appsbl_chg_check_weak_battery_status(1);
+			if(target_is_pmi_enabled())
+				pm_appsbl_chg_check_weak_battery_status(1);
 			break;
 		default:
 			/* Charging not supported */