Merge "target: msm8952: Add PMIC support for qm215 target"
diff --git a/include/platform.h b/include/platform.h
index cd55d7e..64f683d 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -67,6 +67,7 @@
 int platform_is_msm8992();
 int platform_is_msm8937();
 int platform_is_msm8917();
+int platform_is_qm215();
 uint32_t platform_get_apcs_ipc_base();
 int platform_is_msm8952();
 int platform_is_msm8953();
diff --git a/platform/msm8952/msm8952-clock.c b/platform/msm8952/msm8952-clock.c
index 3d2b85c..6b1989c 100644
--- a/platform/msm8952/msm8952-clock.c
+++ b/platform/msm8952/msm8952-clock.c
@@ -651,7 +651,8 @@
 	}
 
 	if (platform_is_msm8937() || platform_is_msm8917() ||
-		platform_is_sdm429() || platform_is_sdm439())
+		platform_is_sdm429() || platform_is_sdm439() ||
+		platform_is_qm215())
 		msm8937_clock_override();
 
 	clk_init(msm_clocks_8952, ARRAY_SIZE(msm_clocks_8952));
diff --git a/platform/msm8952/platform.c b/platform/msm8952/platform.c
index e865b30..6fa24f2 100644
--- a/platform/msm8952/platform.c
+++ b/platform/msm8952/platform.c
@@ -214,6 +214,22 @@
 		case MSM8217:
 		case MSM8617:
 		case APQ8017:
+			ret = 1;
+			break;
+		default:
+			ret = 0;
+	};
+
+	return ret;
+}
+
+int platform_is_qm215()
+{
+	uint32_t platform = board_platform_id();
+	uint32_t ret = 0;
+
+	switch(platform)
+	{
 		case QM215:
 			ret = 1;
 			break;
@@ -321,7 +337,8 @@
 uint32_t platform_get_tz_app_add()
 {
 	if(platform_is_msm8937() || platform_is_msm8917() ||
-		platform_is_sdm429() || platform_is_sdm439())
+		platform_is_sdm429() || platform_is_sdm439() ||
+		platform_is_qm215())
 		return APP_REGION_ADDR_8937;
 	else
 		return APP_REGION_ADDR_8952;
@@ -330,7 +347,8 @@
 uint32_t platform_get_tz_app_size()
 {
 	if(platform_is_msm8937() || platform_is_msm8917() ||
-		platform_is_sdm429() || platform_is_sdm439())
+		platform_is_sdm429() || platform_is_sdm439() ||
+		platform_is_qm215())
 		return APP_REGION_SIZE_8937;
 	else
 		return APP_REGION_SIZE_8952;
@@ -338,7 +356,7 @@
 
 uint32_t platform_get_apcs_ipc_base()
 {
-	if(platform_is_msm8917() || platform_is_sdm429())
+	if(platform_is_msm8917() || platform_is_sdm429() || platform_is_qm215())
 		return APCS_ALIAS1_IPC_INTERRUPT_1;
 	else
 		return APCS_ALIAS0_IPC_INTERRUPT_2;
diff --git a/target/msm8952/init.c b/target/msm8952/init.c
index 93b9edc..4ce91ec 100644
--- a/target/msm8952/init.c
+++ b/target/msm8952/init.c
@@ -723,14 +723,19 @@
 
 uint32_t target_get_pmic()
 {
+	uint32_t pmi_type = 0;
+
 	if (target_is_pmi_enabled()) {
-		uint32_t pmi_type = board_pmic_target(1) & PMIC_TYPE_MASK;
+		pmi_type = board_pmic_target(1) & PMIC_TYPE_MASK;
 		if (pmi_type == PMIC_IS_PMI632)
 			return PMIC_IS_PMI632;
 		else
 			return PMIC_IS_PMI8950;
-	}
-	else {
+	} else {
+		if (platform_is_qm215()) {
+			pmi_type = board_pmic_target(0) & PMIC_TYPE_MASK;
+			return pmi_type;
+		}
 		return PMIC_IS_UNKNOWN;
 	}
 }