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 */