|  | @@ -1571,3 +1571,161 @@ static struct omap_hwmod omap34xx_mcspi1 = {
 | 
	
		
			
				|  |  |  /* mcspi2 */
 | 
	
		
			
				|  |  |  static struct omap2_mcspi_dev_attr omap_mcspi2_dev_attr = {
 | 
	
		
			
				|  |  |  	.num_chipselect = 2,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap34xx_mcspi2 = {
 | 
	
		
			
				|  |  | +	.name		= "mcspi2",
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap2_mcspi2_mpu_irqs,
 | 
	
		
			
				|  |  | +	.sdma_reqs	= omap2_mcspi2_sdma_reqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "mcspi2_fck",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.module_offs = CORE_MOD,
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_MCSPI2_SHIFT,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430_ST_MCSPI2_SHIFT,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.class		= &omap34xx_mcspi_class,
 | 
	
		
			
				|  |  | +	.dev_attr       = &omap_mcspi2_dev_attr,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* mcspi3 */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap34xx_mcspi3_mpu_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "irq", .irq = 91 + OMAP_INTC_START, }, /* 91 */
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod_dma_info omap34xx_mcspi3_sdma_reqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "tx0", .dma_req = 15 },
 | 
	
		
			
				|  |  | +	{ .name = "rx0", .dma_req = 16 },
 | 
	
		
			
				|  |  | +	{ .name = "tx1", .dma_req = 23 },
 | 
	
		
			
				|  |  | +	{ .name = "rx1", .dma_req = 24 },
 | 
	
		
			
				|  |  | +	{ .dma_req = -1 }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap2_mcspi_dev_attr omap_mcspi3_dev_attr = {
 | 
	
		
			
				|  |  | +	.num_chipselect = 2,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap34xx_mcspi3 = {
 | 
	
		
			
				|  |  | +	.name		= "mcspi3",
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap34xx_mcspi3_mpu_irqs,
 | 
	
		
			
				|  |  | +	.sdma_reqs	= omap34xx_mcspi3_sdma_reqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "mcspi3_fck",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.module_offs = CORE_MOD,
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_MCSPI3_SHIFT,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430_ST_MCSPI3_SHIFT,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.class		= &omap34xx_mcspi_class,
 | 
	
		
			
				|  |  | +	.dev_attr       = &omap_mcspi3_dev_attr,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* mcspi4 */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap34xx_mcspi4_mpu_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "irq", .irq = 48 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod_dma_info omap34xx_mcspi4_sdma_reqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "tx0", .dma_req = 70 }, /* DMA_SPI4_TX0 */
 | 
	
		
			
				|  |  | +	{ .name = "rx0", .dma_req = 71 }, /* DMA_SPI4_RX0 */
 | 
	
		
			
				|  |  | +	{ .dma_req = -1 }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap2_mcspi_dev_attr omap_mcspi4_dev_attr = {
 | 
	
		
			
				|  |  | +	.num_chipselect = 1,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap34xx_mcspi4 = {
 | 
	
		
			
				|  |  | +	.name		= "mcspi4",
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap34xx_mcspi4_mpu_irqs,
 | 
	
		
			
				|  |  | +	.sdma_reqs	= omap34xx_mcspi4_sdma_reqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "mcspi4_fck",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.module_offs = CORE_MOD,
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_MCSPI4_SHIFT,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430_ST_MCSPI4_SHIFT,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.class		= &omap34xx_mcspi_class,
 | 
	
		
			
				|  |  | +	.dev_attr       = &omap_mcspi4_dev_attr,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* usbhsotg */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_class_sysconfig omap3xxx_usbhsotg_sysc = {
 | 
	
		
			
				|  |  | +	.rev_offs	= 0x0400,
 | 
	
		
			
				|  |  | +	.sysc_offs	= 0x0404,
 | 
	
		
			
				|  |  | +	.syss_offs	= 0x0408,
 | 
	
		
			
				|  |  | +	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE|
 | 
	
		
			
				|  |  | +			  SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
 | 
	
		
			
				|  |  | +			  SYSC_HAS_AUTOIDLE),
 | 
	
		
			
				|  |  | +	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
 | 
	
		
			
				|  |  | +			  MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
 | 
	
		
			
				|  |  | +	.sysc_fields	= &omap_hwmod_sysc_type1,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod_class usbotg_class = {
 | 
	
		
			
				|  |  | +	.name = "usbotg",
 | 
	
		
			
				|  |  | +	.sysc = &omap3xxx_usbhsotg_sysc,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* usb_otg_hs */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap3xxx_usbhsotg_mpu_irqs[] = {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	{ .name = "mc", .irq = 92 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "dma", .irq = 93 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap3xxx_usbhsotg_hwmod = {
 | 
	
		
			
				|  |  | +	.name		= "usb_otg_hs",
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap3xxx_usbhsotg_mpu_irqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "hsotgusb_ick",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_HSOTGUSB_SHIFT,
 | 
	
		
			
				|  |  | +			.module_offs = CORE_MOD,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430ES2_ST_HSOTGUSB_IDLE_SHIFT,
 | 
	
		
			
				|  |  | +			.idlest_stdby_bit = OMAP3430ES2_ST_HSOTGUSB_STDBY_SHIFT
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.class		= &usbotg_class,
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	/*
 | 
	
		
			
				|  |  | +	 * Erratum ID: i479  idle_req / idle_ack mechanism potentially
 | 
	
		
			
				|  |  | +	 * broken when autoidle is enabled
 | 
	
		
			
				|  |  | +	 * workaround is to disable the autoidle bit at module level.
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	.flags		= HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE
 | 
	
		
			
				|  |  | +				| HWMOD_SWSUP_MSTANDBY,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* usb_otg_hs */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info am35xx_usbhsotg_mpu_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "mc", .irq = 71 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod_class am35xx_usbotg_class = {
 | 
	
		
			
				|  |  | +	.name = "am35xx_usbotg",
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod am35xx_usbhsotg_hwmod = {
 | 
	
		
			
				|  |  | +	.name		= "am35x_otg_hs",
 | 
	
		
			
				|  |  | +	.mpu_irqs	= am35xx_usbhsotg_mpu_irqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "hsotgusb_fck",
 | 
	
		
			
				|  |  | +	.class		= &am35xx_usbotg_class,
 | 
	
		
			
				|  |  | +	.flags		= HWMOD_NO_IDLEST,
 | 
	
		
			
				|  |  | +};
 |