|  | @@ -1131,3 +1131,115 @@ static struct omap_hwmod_class omap3xxx_mcbsp_hwmod_class = {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* McBSP functional clock mapping */
 | 
	
		
			
				|  |  |  static struct omap_hwmod_opt_clk mcbsp15_opt_clks[] = {
 | 
	
		
			
				|  |  | +	{ .role = "pad_fck", .clk = "mcbsp_clks" },
 | 
	
		
			
				|  |  | +	{ .role = "prcm_fck", .clk = "core_96m_fck" },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod_opt_clk mcbsp234_opt_clks[] = {
 | 
	
		
			
				|  |  | +	{ .role = "pad_fck", .clk = "mcbsp_clks" },
 | 
	
		
			
				|  |  | +	{ .role = "prcm_fck", .clk = "per_96m_fck" },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* mcbsp1 */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap3xxx_mcbsp1_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "common", .irq = 16 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "tx", .irq = 59 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "rx", .irq = 60 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap3xxx_mcbsp1_hwmod = {
 | 
	
		
			
				|  |  | +	.name		= "mcbsp1",
 | 
	
		
			
				|  |  | +	.class		= &omap3xxx_mcbsp_hwmod_class,
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap3xxx_mcbsp1_irqs,
 | 
	
		
			
				|  |  | +	.sdma_reqs	= omap2_mcbsp1_sdma_reqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "mcbsp1_fck",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_MCBSP1_SHIFT,
 | 
	
		
			
				|  |  | +			.module_offs = CORE_MOD,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430_ST_MCBSP1_SHIFT,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.opt_clks	= mcbsp15_opt_clks,
 | 
	
		
			
				|  |  | +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp15_opt_clks),
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* mcbsp2 */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap3xxx_mcbsp2_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "common", .irq = 17 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "tx", .irq = 62 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "rx", .irq = 63 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_mcbsp_dev_attr omap34xx_mcbsp2_dev_attr = {
 | 
	
		
			
				|  |  | +	.sidetone	= "mcbsp2_sidetone",
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap3xxx_mcbsp2_hwmod = {
 | 
	
		
			
				|  |  | +	.name		= "mcbsp2",
 | 
	
		
			
				|  |  | +	.class		= &omap3xxx_mcbsp_hwmod_class,
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap3xxx_mcbsp2_irqs,
 | 
	
		
			
				|  |  | +	.sdma_reqs	= omap2_mcbsp2_sdma_reqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "mcbsp2_fck",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_MCBSP2_SHIFT,
 | 
	
		
			
				|  |  | +			.module_offs = OMAP3430_PER_MOD,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430_ST_MCBSP2_SHIFT,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.opt_clks	= mcbsp234_opt_clks,
 | 
	
		
			
				|  |  | +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp234_opt_clks),
 | 
	
		
			
				|  |  | +	.dev_attr	= &omap34xx_mcbsp2_dev_attr,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* mcbsp3 */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap3xxx_mcbsp3_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "common", .irq = 22 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "tx", .irq = 89 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "rx", .irq = 90 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_mcbsp_dev_attr omap34xx_mcbsp3_dev_attr = {
 | 
	
		
			
				|  |  | +	.sidetone	= "mcbsp3_sidetone",
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod omap3xxx_mcbsp3_hwmod = {
 | 
	
		
			
				|  |  | +	.name		= "mcbsp3",
 | 
	
		
			
				|  |  | +	.class		= &omap3xxx_mcbsp_hwmod_class,
 | 
	
		
			
				|  |  | +	.mpu_irqs	= omap3xxx_mcbsp3_irqs,
 | 
	
		
			
				|  |  | +	.sdma_reqs	= omap2_mcbsp3_sdma_reqs,
 | 
	
		
			
				|  |  | +	.main_clk	= "mcbsp3_fck",
 | 
	
		
			
				|  |  | +	.prcm		= {
 | 
	
		
			
				|  |  | +		.omap2 = {
 | 
	
		
			
				|  |  | +			.prcm_reg_id = 1,
 | 
	
		
			
				|  |  | +			.module_bit = OMAP3430_EN_MCBSP3_SHIFT,
 | 
	
		
			
				|  |  | +			.module_offs = OMAP3430_PER_MOD,
 | 
	
		
			
				|  |  | +			.idlest_reg_id = 1,
 | 
	
		
			
				|  |  | +			.idlest_idle_bit = OMAP3430_ST_MCBSP3_SHIFT,
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +	},
 | 
	
		
			
				|  |  | +	.opt_clks	= mcbsp234_opt_clks,
 | 
	
		
			
				|  |  | +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp234_opt_clks),
 | 
	
		
			
				|  |  | +	.dev_attr	= &omap34xx_mcbsp3_dev_attr,
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* mcbsp4 */
 | 
	
		
			
				|  |  | +static struct omap_hwmod_irq_info omap3xxx_mcbsp4_irqs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "common", .irq = 23 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "tx", .irq = 54 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .name = "rx", .irq = 55 + OMAP_INTC_START, },
 | 
	
		
			
				|  |  | +	{ .irq = -1 },
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +static struct omap_hwmod_dma_info omap3xxx_mcbsp4_sdma_chs[] = {
 | 
	
		
			
				|  |  | +	{ .name = "rx", .dma_req = 20 },
 | 
	
		
			
				|  |  | +	{ .name = "tx", .dma_req = 19 },
 | 
	
		
			
				|  |  | +	{ .dma_req = -1 }
 |