| 
					
				 | 
			
			
				@@ -2973,3 +2973,154 @@ static struct omap_hwmod_class omap3xxx_mmu_hwmod_class = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.name = "mmu", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.sysc = &mmu_sysc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* mmu isp */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_mmu_dev_attr mmu_isp_dev_attr = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.da_start	= 0x0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.da_end		= 0xfffff000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.nr_tlb_entries = 8, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap3xxx_mmu_isp_hwmod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_irq_info omap3xxx_mmu_isp_irqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = 24 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_addr_space omap3xxx_mmu_isp_addrs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_start	= 0x480bd400, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_end		= 0x480bd47f, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags		= ADDR_TYPE_RT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* l4_core -> mmu isp */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_ocp_if omap3xxx_l4_core__mmu_isp = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.master		= &omap3xxx_l4_core_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave		= &omap3xxx_mmu_isp_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.addr		= omap3xxx_mmu_isp_addrs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.user		= OCP_USER_MPU | OCP_USER_SDMA, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap3xxx_mmu_isp_hwmod = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "mmu_isp", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.class		= &omap3xxx_mmu_hwmod_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mpu_irqs	= omap3xxx_mmu_isp_irqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.main_clk	= "cam_ick", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev_attr	= &mmu_isp_dev_attr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= HWMOD_NO_IDLEST, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#ifdef CONFIG_OMAP_IOMMU_IVA2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* mmu iva */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_mmu_dev_attr mmu_iva_dev_attr = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.da_start	= 0x11000000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.da_end		= 0xfffff000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.nr_tlb_entries = 32, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap3xxx_mmu_iva_hwmod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_irq_info omap3xxx_mmu_iva_irqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = 28 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_rst_info omap3xxx_mmu_iva_resets[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "mmu", .rst_shift = 1, .st_shift = 9 }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_addr_space omap3xxx_mmu_iva_addrs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_start	= 0x5d000000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_end		= 0x5d00007f, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags		= ADDR_TYPE_RT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* l3_main -> iva mmu */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_ocp_if omap3xxx_l3_main__mmu_iva = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.master		= &omap3xxx_l3_main_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave		= &omap3xxx_mmu_iva_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.addr		= omap3xxx_mmu_iva_addrs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.user		= OCP_USER_MPU | OCP_USER_SDMA, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap3xxx_mmu_iva_hwmod = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "mmu_iva", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.class		= &omap3xxx_mmu_hwmod_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mpu_irqs	= omap3xxx_mmu_iva_irqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.rst_lines	= omap3xxx_mmu_iva_resets, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.rst_lines_cnt	= ARRAY_SIZE(omap3xxx_mmu_iva_resets), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.main_clk	= "iva2_ck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.prcm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.omap2 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.module_offs = OMAP3430_IVA2_MOD, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev_attr	= &mmu_iva_dev_attr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= HWMOD_NO_IDLEST, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* l4_per -> gpio4 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_addr_space omap3xxx_gpio4_addrs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_start	= 0x49054000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_end		= 0x490541ff, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags		= ADDR_TYPE_RT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio4 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.master		= &omap3xxx_l4_per_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave		= &omap3xxx_gpio4_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.addr		= omap3xxx_gpio4_addrs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.user		= OCP_USER_MPU | OCP_USER_SDMA, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* l4_per -> gpio5 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_addr_space omap3xxx_gpio5_addrs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_start	= 0x49056000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_end		= 0x490561ff, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags		= ADDR_TYPE_RT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio5 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.master		= &omap3xxx_l4_per_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave		= &omap3xxx_gpio5_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.addr		= omap3xxx_gpio5_addrs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.user		= OCP_USER_MPU | OCP_USER_SDMA, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* l4_per -> gpio6 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_addr_space omap3xxx_gpio6_addrs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_start	= 0x49058000, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.pa_end		= 0x490581ff, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.flags		= ADDR_TYPE_RT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_ocp_if omap3xxx_l4_per__gpio6 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.master		= &omap3xxx_l4_per_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave		= &omap3xxx_gpio6_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.addr		= omap3xxx_gpio6_addrs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.user		= OCP_USER_MPU | OCP_USER_SDMA, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* dma_system -> L3 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_ocp_if omap3xxx_dma_system__l3 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.master		= &omap3xxx_dma_system_hwmod, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.slave		= &omap3xxx_l3_main_hwmod, 
			 |