diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_44xx_data.c')
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 37 | 
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 08daa5e0eb5..6abc75753e4 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -2594,6 +2594,15 @@ static struct omap_hwmod omap44xx_ipu_hwmod = {  static struct omap_hwmod_class_sysconfig omap44xx_iss_sysc = {  	.rev_offs	= 0x0000,  	.sysc_offs	= 0x0010, +	/* +	 * ISS needs 100 OCP clk cycles delay after a softreset before +	 * accessing sysconfig again. +	 * The lowest frequency at the moment for L3 bus is 100 MHz, so +	 * 1usec delay is needed. Add an x2 margin to be safe (2 usecs). +	 * +	 * TODO: Indicate errata when available. +	 */ +	.srst_udelay	= 2,  	.sysc_flags	= (SYSC_HAS_MIDLEMODE | SYSC_HAS_RESET_STATUS |  			   SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET),  	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | @@ -2996,6 +3005,11 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp1_slaves[] = {  	&omap44xx_l4_abe__mcbsp1_dma,  }; +static struct omap_hwmod_opt_clk mcbsp1_opt_clks[] = { +	{ .role = "pad_fck", .clk = "pad_clks_ck" }, +	{ .role = "prcm_clk", .clk = "mcbsp1_sync_mux_ck" }, +}; +  static struct omap_hwmod omap44xx_mcbsp1_hwmod = {  	.name		= "mcbsp1",  	.class		= &omap44xx_mcbsp_hwmod_class, @@ -3012,6 +3026,8 @@ static struct omap_hwmod omap44xx_mcbsp1_hwmod = {  	},  	.slaves		= omap44xx_mcbsp1_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_mcbsp1_slaves), +	.opt_clks	= mcbsp1_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp1_opt_clks),  };  /* mcbsp2 */ @@ -3071,6 +3087,11 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp2_slaves[] = {  	&omap44xx_l4_abe__mcbsp2_dma,  }; +static struct omap_hwmod_opt_clk mcbsp2_opt_clks[] = { +	{ .role = "pad_fck", .clk = "pad_clks_ck" }, +	{ .role = "prcm_clk", .clk = "mcbsp2_sync_mux_ck" }, +}; +  static struct omap_hwmod omap44xx_mcbsp2_hwmod = {  	.name		= "mcbsp2",  	.class		= &omap44xx_mcbsp_hwmod_class, @@ -3087,6 +3108,8 @@ static struct omap_hwmod omap44xx_mcbsp2_hwmod = {  	},  	.slaves		= omap44xx_mcbsp2_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_mcbsp2_slaves), +	.opt_clks	= mcbsp2_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp2_opt_clks),  };  /* mcbsp3 */ @@ -3146,6 +3169,11 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp3_slaves[] = {  	&omap44xx_l4_abe__mcbsp3_dma,  }; +static struct omap_hwmod_opt_clk mcbsp3_opt_clks[] = { +	{ .role = "pad_fck", .clk = "pad_clks_ck" }, +	{ .role = "prcm_clk", .clk = "mcbsp3_sync_mux_ck" }, +}; +  static struct omap_hwmod omap44xx_mcbsp3_hwmod = {  	.name		= "mcbsp3",  	.class		= &omap44xx_mcbsp_hwmod_class, @@ -3162,6 +3190,8 @@ static struct omap_hwmod omap44xx_mcbsp3_hwmod = {  	},  	.slaves		= omap44xx_mcbsp3_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_mcbsp3_slaves), +	.opt_clks	= mcbsp3_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp3_opt_clks),  };  /* mcbsp4 */ @@ -3200,6 +3230,11 @@ static struct omap_hwmod_ocp_if *omap44xx_mcbsp4_slaves[] = {  	&omap44xx_l4_per__mcbsp4,  }; +static struct omap_hwmod_opt_clk mcbsp4_opt_clks[] = { +	{ .role = "pad_fck", .clk = "pad_clks_ck" }, +	{ .role = "prcm_clk", .clk = "mcbsp4_sync_mux_ck" }, +}; +  static struct omap_hwmod omap44xx_mcbsp4_hwmod = {  	.name		= "mcbsp4",  	.class		= &omap44xx_mcbsp_hwmod_class, @@ -3216,6 +3251,8 @@ static struct omap_hwmod omap44xx_mcbsp4_hwmod = {  	},  	.slaves		= omap44xx_mcbsp4_slaves,  	.slaves_cnt	= ARRAY_SIZE(omap44xx_mcbsp4_slaves), +	.opt_clks	= mcbsp4_opt_clks, +	.opt_clks_cnt	= ARRAY_SIZE(mcbsp4_opt_clks),  };  /*  |