iommu/msm: Support for secure context banks

Allocate and provide required memory needed by trustzone
for pagetable maintenance of all secure context banks.

Global address space and secure context banks programming
is done by trustzone for IOMMUs that have atleast one secure
context bank.

Map and Unmap call into trustzone for updating the secure
pagetables by providing the scatter gather list.

Change-Id: Id356a8525a36768695fe27228514c106c4076511
Signed-off-by: Sathish Ambley <sambley@codeaurora.org>
Signed-off-by: Hanumant Singh <hanumant@codeaurora.org>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
diff --git a/arch/arm/mach-msm/include/mach/iommu.h b/arch/arm/mach-msm/include/mach/iommu.h
index 41a59af6..69ddeb9 100644
--- a/arch/arm/mach-msm/include/mach/iommu.h
+++ b/arch/arm/mach-msm/include/mach/iommu.h
@@ -20,9 +20,11 @@
 
 extern pgprot_t     pgprot_kernel;
 extern struct platform_device *msm_iommu_root_dev;
+extern struct bus_type msm_iommu_sec_bus_type;
 
 /* Domain attributes */
 #define MSM_IOMMU_DOMAIN_PT_CACHEABLE	0x1
+#define MSM_IOMMU_DOMAIN_PT_SECURE	0x2
 
 /* Mask for the cache policy attribute */
 #define MSM_IOMMU_CP_MASK		0x03
@@ -103,6 +105,7 @@
 	const char *name;
 	struct regulator *gdsc;
 	struct msm_iommu_bfb_settings *bfb_settings;
+	int sec_id;
 };
 
 /**