|  | @@ -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 }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 |