[target/msm7630] Get power on reason and pass to kernel for fluid

 Added similar method from msm7627_* to target msm7630. Added a check
 to work only for fluid device

 CRs-fixed: 251522

Change-Id: Id3cbd887e04fb741931d6d19cc5a3ab541f6da21
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index 2b404f7..7e78293 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -121,7 +121,7 @@
 	SMEM_POWER_ON_STATUS_INFO = 403,
 
 	SMEM_FIRST_VALID_TYPE = SMEM_SPINLOCK_ARRAY,
-	SMEM_LAST_VALID_TYPE = SMEM_USABLE_RAM_PARTITION_TABLE,
+	SMEM_LAST_VALID_TYPE = SMEM_POWER_ON_STATUS_INFO,
 } smem_mem_type_t;
 
 /* Note: buf MUST be 4byte aligned, and max_len MUST be a multiple of 4. */
diff --git a/target/msm7630_surf/init.c b/target/msm7630_surf/init.c
index f05c728..bf956e6 100644
--- a/target/msm7630_surf/init.c
+++ b/target/msm7630_surf/init.c
@@ -345,6 +345,34 @@
     return mode[0];
 }
 
+static unsigned target_check_power_on_reason(void)
+{
+    unsigned power_on_status = 0;
+    unsigned int status_len = sizeof(power_on_status);
+    unsigned smem_status;
+
+    smem_status = smem_read_alloc_entry(SMEM_POWER_ON_STATUS_INFO,
+                                        &power_on_status, status_len);
+
+    if (!smem_status)
+    {
+        dprintf(CRITICAL, "ERROR: unable to read shared memory for power on reason\n");
+    }
+
+    return power_on_status;
+}
+
+unsigned target_pause_for_battery_charge(void)
+{
+    //check power on reason only for fluid devices
+    if( hw_platform_type != LINUX_MACHTYPE_7x30_FLUID)
+        return 0;
+
+    if (target_check_power_on_reason() == PWR_ON_EVENT_USB_CHG)
+        return 1;
+   return 0;
+}
+
 void target_battery_charging_enable(unsigned enable, unsigned disconnect)
 {
 }