diff options
Diffstat (limited to 'arch/arm/mach-omap1/mcbsp.c')
| -rw-r--r-- | arch/arm/mach-omap1/mcbsp.c | 98 | 
1 files changed, 10 insertions, 88 deletions
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c index ca7a0cc1707..575ba31295c 100644 --- a/arch/arm/mach-omap1/mcbsp.c +++ b/arch/arm/mach-omap1/mcbsp.c @@ -28,81 +28,8 @@  #define DPS_RSTCT2_PER_EN	(1 << 0)  #define DSP_RSTCT2_WD_PER_EN	(1 << 1) -struct mcbsp_internal_clk { -	struct clk clk; -	struct clk **childs; -	int n_childs; -}; -  #if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) -static void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) -{ -	const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" }; -	int i; - -	mclk->n_childs = ARRAY_SIZE(clk_names); -	mclk->childs = kzalloc(mclk->n_childs * sizeof(struct clk *), -				GFP_KERNEL); - -	for (i = 0; i < mclk->n_childs; i++) { -		/* We fake a platform device to get correct device id */ -		struct platform_device pdev; - -		pdev.dev.bus = &platform_bus_type; -		pdev.id = mclk->clk.id; -		mclk->childs[i] = clk_get(&pdev.dev, clk_names[i]); -		if (IS_ERR(mclk->childs[i])) -			printk(KERN_ERR "Could not get clock %s (%d).\n", -				clk_names[i], mclk->clk.id); -	} -} - -static int omap_mcbsp_clk_enable(struct clk *clk) -{ -	struct mcbsp_internal_clk *mclk = container_of(clk, -					struct mcbsp_internal_clk, clk); -	int i; - -	for (i = 0; i < mclk->n_childs; i++) -		clk_enable(mclk->childs[i]); -	return 0; -} - -static void omap_mcbsp_clk_disable(struct clk *clk) -{ -	struct mcbsp_internal_clk *mclk = container_of(clk, -					struct mcbsp_internal_clk, clk); -	int i; - -	for (i = 0; i < mclk->n_childs; i++) -		clk_disable(mclk->childs[i]); -} - -static struct mcbsp_internal_clk omap_mcbsp_clks[] = { -	{ -		.clk = { -			.name 		= "mcbsp_clk", -			.id		= 1, -			.enable		= omap_mcbsp_clk_enable, -			.disable	= omap_mcbsp_clk_disable, -		}, -	}, -	{ -		.clk = { -			.name 		= "mcbsp_clk", -			.id		= 3, -			.enable		= omap_mcbsp_clk_enable, -			.disable	= omap_mcbsp_clk_disable, -		}, -	}, -}; - -#define omap_mcbsp_clks_size	ARRAY_SIZE(omap_mcbsp_clks) -#else -#define omap_mcbsp_clks_size	0 -static struct mcbsp_internal_clk __initdata *omap_mcbsp_clks; -static inline void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk) -{ } +const char *clk_names[] = { "dsp_ck", "api_ck", "dspxor_ck" };  #endif  static void omap1_mcbsp_request(unsigned int id) @@ -167,8 +94,9 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {  		.rx_irq		= INT_McBSP1RX,  		.tx_irq		= INT_McBSP1TX,  		.ops		= &omap1_mcbsp_ops, -		.clk_name	= "mcbsp_clk", -		}, +		.clk_names	= clk_names, +		.num_clks	= 3, +	},  	{  		.phys_base	= OMAP1510_MCBSP2_BASE,  		.dma_rx_sync	= OMAP_DMA_MCBSP2_RX, @@ -184,7 +112,8 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {  		.rx_irq		= INT_McBSP3RX,  		.tx_irq		= INT_McBSP3TX,  		.ops		= &omap1_mcbsp_ops, -		.clk_name	= "mcbsp_clk", +		.clk_names	= clk_names, +		.num_clks	= 3,  	},  };  #define OMAP15XX_MCBSP_PDATA_SZ		ARRAY_SIZE(omap15xx_mcbsp_pdata) @@ -202,7 +131,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {  		.rx_irq		= INT_McBSP1RX,  		.tx_irq		= INT_McBSP1TX,  		.ops		= &omap1_mcbsp_ops, -		.clk_name	= "mcbsp_clk", +		.clk_names	= clk_names, +		.num_clks	= 3,  	},  	{  		.phys_base	= OMAP1610_MCBSP2_BASE, @@ -219,7 +149,8 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {  		.rx_irq		= INT_McBSP3RX,  		.tx_irq		= INT_McBSP3TX,  		.ops		= &omap1_mcbsp_ops, -		.clk_name	= "mcbsp_clk", +		.clk_names	= clk_names, +		.num_clks	= 3,  	},  };  #define OMAP16XX_MCBSP_PDATA_SZ		ARRAY_SIZE(omap16xx_mcbsp_pdata) @@ -230,15 +161,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {  int __init omap1_mcbsp_init(void)  { -	int i; - -	for (i = 0; i < omap_mcbsp_clks_size; i++) { -		if (cpu_is_omap15xx() || cpu_is_omap16xx()) { -			omap_mcbsp_clk_init(&omap_mcbsp_clks[i]); -			clk_register(&omap_mcbsp_clks[i].clk); -		} -	} -  	if (cpu_is_omap730())  		omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ;  	if (cpu_is_omap15xx())  |