mdmzirc: Enable SMD support for mdmzirc

Initialize RPM SMD at bootloader init for adding display support

Change-Id: I1080c87fa5ee2e88f856cfc99a785a9ce4d881b9
diff --git a/platform/msmzirc/include/platform/iomap.h b/platform/msmzirc/include/platform/iomap.h
index 5aefde8..6cee378 100644
--- a/platform/msmzirc/include/platform/iomap.h
+++ b/platform/msmzirc/include/platform/iomap.h
@@ -190,4 +190,7 @@
 #define BOOT_CONFIG_OFFSET          0x0000602C
 #define BOOT_CONFIG_REG             (SEC_CTRL_CORE_BASE + BOOT_CONFIG_OFFSET)
 
+/* QPIC DISPLAY */
+#define QPIC_BASE                   0x7980000
+#define APCS_ALIAS0_IPC_INTERRUPT   0xB011008
 #endif
diff --git a/platform/msmzirc/include/platform/irqs.h b/platform/msmzirc/include/platform/irqs.h
index c6740d0..a0efe05 100644
--- a/platform/msmzirc/include/platform/irqs.h
+++ b/platform/msmzirc/include/platform/irqs.h
@@ -58,5 +58,5 @@
 
 #define NR_IRQS                                (NR_MSM_IRQS + NR_GPIO_IRQS + \
                                                NR_BOARD_IRQS)
-
+#define SMD_IRQ                                (GIC_SPI_START + 168)
 #endif /* __IRQS_9635_H */
diff --git a/project/msmzirc.mk b/project/msmzirc.mk
index e2a3f42..eaad091 100644
--- a/project/msmzirc.mk
+++ b/project/msmzirc.mk
@@ -34,3 +34,8 @@
 
 #Override linker for mdm targets
 LD := $(TOOLCHAIN_PREFIX)ld.bfd
+
+ENABLE_SMD_SUPPORT := 1
+ifeq ($(ENABLE_SMD_SUPPORT),1)
+DEFINES += SMD_SUPPORT=1
+endif
diff --git a/target/msmzirc/init.c b/target/msmzirc/init.c
index 542558c..9a4d870 100644
--- a/target/msmzirc/init.c
+++ b/target/msmzirc/init.c
@@ -46,6 +46,8 @@
 #include <platform/clock.h>
 #include <qmp_phy.h>
 #include <qusb2_phy.h>
+#include <rpm-smd.h>
+#include <scm.h>
 
 extern void smem_ptable_init(void);
 extern void smem_add_modem_partitions(struct ptable *flash_ptable);
@@ -158,6 +160,7 @@
 
 		update_ptable_names();
 		flash_set_ptable(&flash_ptable);
+		rpm_smd_init();
 	}
 }
 
@@ -326,6 +329,7 @@
 
 void target_uninit(void)
 {
+	rpm_smd_uninit();
 	if (platform_boot_dev_isemmc())
 	{
 		mmc_put_card_to_sleep(dev);