diff options
Diffstat (limited to 'arch/arm/mach-omap1/mcbsp.c')
| -rw-r--r-- | arch/arm/mach-omap1/mcbsp.c | 45 | 
1 files changed, 12 insertions, 33 deletions
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c index 2baeaeb0c90..7de7c691558 100644 --- a/arch/arm/mach-omap1/mcbsp.c +++ b/arch/arm/mach-omap1/mcbsp.c @@ -103,30 +103,6 @@ static inline void omap_mcbsp_clk_init(struct mcbsp_internal_clk *mclk)  { }  #endif -static int omap1_mcbsp_check(unsigned int id) -{ -	/* REVISIT: Check correctly for number of registered McBSPs */ -	if (cpu_is_omap730()) { -		if (id > OMAP_MAX_MCBSP_COUNT - 2) { -		       printk(KERN_ERR "OMAP-McBSP: McBSP%d doesn't exist\n", -				id + 1); -		       return -ENODEV; -		} -		return 0; -	} - -	if (cpu_is_omap15xx() || cpu_is_omap16xx()) { -		if (id > OMAP_MAX_MCBSP_COUNT - 1) { -			printk(KERN_ERR "OMAP-McBSP: McBSP%d doesn't exist\n", -				id + 1); -			return -ENODEV; -		} -		return 0; -	} - -	return -ENODEV; -} -  static void omap1_mcbsp_request(unsigned int id)  {  	/* @@ -151,7 +127,6 @@ static void omap1_mcbsp_free(unsigned int id)  }  static struct omap_mcbsp_ops omap1_mcbsp_ops = { -	.check		= omap1_mcbsp_check,  	.request	= omap1_mcbsp_request,  	.free		= omap1_mcbsp_free,  }; @@ -160,7 +135,6 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = {  static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {  	{  		.phys_base	= OMAP730_MCBSP1_BASE, -		.virt_base	= io_p2v(OMAP730_MCBSP1_BASE),  		.dma_rx_sync	= OMAP_DMA_MCBSP1_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP1_TX,  		.rx_irq		= INT_730_McBSP1RX, @@ -169,7 +143,6 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {  	},  	{  		.phys_base	= OMAP730_MCBSP2_BASE, -		.virt_base	= io_p2v(OMAP730_MCBSP2_BASE),  		.dma_rx_sync	= OMAP_DMA_MCBSP3_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP3_TX,  		.rx_irq		= INT_730_McBSP2RX, @@ -187,7 +160,6 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {  static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {  	{  		.phys_base	= OMAP1510_MCBSP1_BASE, -		.virt_base	= OMAP1510_MCBSP1_BASE,  		.dma_rx_sync	= OMAP_DMA_MCBSP1_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP1_TX,  		.rx_irq		= INT_McBSP1RX, @@ -197,7 +169,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {  		},  	{  		.phys_base	= OMAP1510_MCBSP2_BASE, -		.virt_base	= io_p2v(OMAP1510_MCBSP2_BASE),  		.dma_rx_sync	= OMAP_DMA_MCBSP2_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP2_TX,  		.rx_irq		= INT_1510_SPI_RX, @@ -206,7 +177,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {  	},  	{  		.phys_base	= OMAP1510_MCBSP3_BASE, -		.virt_base	= OMAP1510_MCBSP3_BASE,  		.dma_rx_sync	= OMAP_DMA_MCBSP3_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP3_TX,  		.rx_irq		= INT_McBSP3RX, @@ -225,7 +195,6 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {  static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {  	{  		.phys_base	= OMAP1610_MCBSP1_BASE, -		.virt_base	= OMAP1610_MCBSP1_BASE,  		.dma_rx_sync	= OMAP_DMA_MCBSP1_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP1_TX,  		.rx_irq		= INT_McBSP1RX, @@ -235,7 +204,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {  	},  	{  		.phys_base	= OMAP1610_MCBSP2_BASE, -		.virt_base	= io_p2v(OMAP1610_MCBSP2_BASE),  		.dma_rx_sync	= OMAP_DMA_MCBSP2_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP2_TX,  		.rx_irq		= INT_1610_McBSP2_RX, @@ -244,7 +212,6 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {  	},  	{  		.phys_base	= OMAP1610_MCBSP3_BASE, -		.virt_base	= OMAP1610_MCBSP3_BASE,  		.dma_rx_sync	= OMAP_DMA_MCBSP3_RX,  		.dma_tx_sync	= OMAP_DMA_MCBSP3_TX,  		.rx_irq		= INT_McBSP3RX, @@ -271,6 +238,18 @@ int __init omap1_mcbsp_init(void)  	}  	if (cpu_is_omap730()) +		omap_mcbsp_count = OMAP730_MCBSP_PDATA_SZ; +	if (cpu_is_omap15xx()) +		omap_mcbsp_count = OMAP15XX_MCBSP_PDATA_SZ; +	if (cpu_is_omap16xx()) +		omap_mcbsp_count = OMAP16XX_MCBSP_PDATA_SZ; + +	mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *), +								GFP_KERNEL); +	if (!mcbsp_ptr) +		return -ENOMEM; + +	if (cpu_is_omap730())  		omap_mcbsp_register_board_cfg(omap730_mcbsp_pdata,  						OMAP730_MCBSP_PDATA_SZ);  | 
