platform: msm_shared: Add support for smem v11

Add support for smem v11

Change-Id: Id9af92220695a0efb3bf6c4f80f5b8eaa91ee3c7
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index ceb25e6..5067b8a 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -33,10 +33,13 @@
 
 #include <sys/types.h>
 #include <platform.h>
+#include <malloc.h>
+#include <string.h>
 
 #define SMEM_V7_SMEM_MAX_PMIC_DEVICES   1
 #define SMEM_V8_SMEM_MAX_PMIC_DEVICES   3
-#define SMEM_MAX_PMIC_DEVICES           SMEM_V8_SMEM_MAX_PMIC_DEVICES
+#define SMEM_V11_SMEM_MAX_PMIC_DEVICES  4 // this is the max that device tree currently supports
+#define SMEM_MAX_PMIC_DEVICES           SMEM_V11_SMEM_MAX_PMIC_DEVICES
 
 #define SMEM_RAM_PTABLE_VERSION_OFFSET  8
 
@@ -207,6 +210,18 @@
 	uint32_t chip_serial; /* Used as serial number for v10 */
 };
 
+struct smem_board_info_v11 {
+	struct smem_board_info_v3 board_info_v3;
+	unsigned platform_version;
+	unsigned fused_chip;
+	unsigned platform_subtype;
+	struct smem_pmic_info pmic_info[SMEM_V8_SMEM_MAX_PMIC_DEVICES]; // Depreciated
+	uint32_t foundry_id; /* Used as foundry_id only for v9  */
+	uint32_t chip_serial; /* Used as serial number for v10 */
+	uint32_t num_pmics; /* Number of pmics in array */
+	uint32_t pmic_array_offset; /* Offset from base of structure to array of pmic info types */
+};
+
 typedef struct {
 	unsigned key_len;
 	unsigned iv_len;