| 
					
				 | 
			
			
				@@ -1513,3 +1513,117 @@ static struct omap_hwmod_class_sysconfig omap44xx_i2c_sysc = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.syss_offs	= 0x0090, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	.sysc_flags	= (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			   SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			   SIDLE_SMART_WKUP), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clockact	= CLOCKACT_TEST_ICLK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.sysc_fields	= &omap_hwmod_sysc_type1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_class omap44xx_i2c_hwmod_class = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name	= "i2c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.sysc	= &omap44xx_i2c_sysc, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.rev	= OMAP_I2C_IP_VERSION_2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.reset	= &omap_i2c_reset, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_i2c_dev_attr i2c_dev_attr = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags	= OMAP_I2C_FLAG_BUS_SHIFT_NONE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* i2c1 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_irq_info omap44xx_i2c1_irqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = 56 + OMAP44XX_IRQ_GIC_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_dma_info omap44xx_i2c1_sdma_reqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "tx", .dma_req = 26 + OMAP44XX_DMA_REQ_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "rx", .dma_req = 27 + OMAP44XX_DMA_REQ_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .dma_req = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap44xx_i2c1_hwmod = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "i2c1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.class		= &omap44xx_i2c_hwmod_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "l4_per_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= HWMOD_16BIT_REG | HWMOD_SET_DEFAULT_CLOCKACT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mpu_irqs	= omap44xx_i2c1_irqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.sdma_reqs	= omap44xx_i2c1_sdma_reqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.main_clk	= "i2c1_fck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.prcm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.omap4 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.clkctrl_offs = OMAP4_CM_L4PER_I2C1_CLKCTRL_OFFSET, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.context_offs = OMAP4_RM_L4PER_I2C1_CONTEXT_OFFSET, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.modulemode   = MODULEMODE_SWCTRL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev_attr	= &i2c_dev_attr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* i2c2 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_irq_info omap44xx_i2c2_irqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = 57 + OMAP44XX_IRQ_GIC_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_dma_info omap44xx_i2c2_sdma_reqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "tx", .dma_req = 28 + OMAP44XX_DMA_REQ_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "rx", .dma_req = 29 + OMAP44XX_DMA_REQ_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .dma_req = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap44xx_i2c2_hwmod = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "i2c2", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.class		= &omap44xx_i2c_hwmod_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "l4_per_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= HWMOD_16BIT_REG | HWMOD_SET_DEFAULT_CLOCKACT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mpu_irqs	= omap44xx_i2c2_irqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.sdma_reqs	= omap44xx_i2c2_sdma_reqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.main_clk	= "i2c2_fck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.prcm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.omap4 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.clkctrl_offs = OMAP4_CM_L4PER_I2C2_CLKCTRL_OFFSET, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.context_offs = OMAP4_RM_L4PER_I2C2_CONTEXT_OFFSET, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.modulemode   = MODULEMODE_SWCTRL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev_attr	= &i2c_dev_attr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* i2c3 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_irq_info omap44xx_i2c3_irqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = 61 + OMAP44XX_IRQ_GIC_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_dma_info omap44xx_i2c3_sdma_reqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "tx", .dma_req = 24 + OMAP44XX_DMA_REQ_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .name = "rx", .dma_req = 25 + OMAP44XX_DMA_REQ_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .dma_req = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod omap44xx_i2c3_hwmod = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.name		= "i2c3", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.class		= &omap44xx_i2c_hwmod_class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.clkdm_name	= "l4_per_clkdm", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.flags		= HWMOD_16BIT_REG | HWMOD_SET_DEFAULT_CLOCKACT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.mpu_irqs	= omap44xx_i2c3_irqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.sdma_reqs	= omap44xx_i2c3_sdma_reqs, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.main_clk	= "i2c3_fck", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.prcm = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.omap4 = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.clkctrl_offs = OMAP4_CM_L4PER_I2C3_CLKCTRL_OFFSET, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.context_offs = OMAP4_RM_L4PER_I2C3_CONTEXT_OFFSET, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.modulemode   = MODULEMODE_SWCTRL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.dev_attr	= &i2c_dev_attr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* i2c4 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static struct omap_hwmod_irq_info omap44xx_i2c4_irqs[] = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = 62 + OMAP44XX_IRQ_GIC_START }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ .irq = -1 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 |