target: msm8952: disable pmi for 8917

add option to disable pmi on 8917 LE based targets

Change-Id: I6d6552b0dac3ed5381a40171261f0ed38edc91d5
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 */