[RESUBMIT][PATCH 1/2 ][RFC] OMAP4: McBSP support for OMAP_4430SDP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patch creates McBSP support on OMAP4430 development platform. This patch
includes corresponding base address changes for OMAP4.

Signed-off-by: <rafiuddin.syed@xxxxxx>
---
 arch/arm/mach-omap2/mcbsp.c             |   46
+++++++++++++++++++++++++++++++- arch/arm/plat-omap/include/mach/mcbsp.h |  
11 ++++++-
 2 files changed, 54 insertions(+), 3 deletions(-)

Index: omap4_dev/arch/arm/mach-omap2/mcbsp.c
=================================================================== ---
omap4_dev.orig/arch/arm/mach-omap2/mcbsp.c
+++ omap4_dev/arch/arm/mach-omap2/mcbsp.c
@@ -169,6 +169,46 @@ static struct omap_mcbsp_platform_data o
 #define OMAP34XX_MCBSP_PDATA_SZ		0
 #endif

+#ifdef CONFIG_ARCH_OMAP4
+static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = { +	{
+		.phys_base	= OMAP44XX_MCBSP1_BASE,
+		.dma_rx_sync	= OMAP44XX_DMA_MCBSP1_RX,
+		.dma_tx_sync	= OMAP44XX_DMA_MCBSP1_TX,
+		.rx_irq		= INT_24XX_MCBSP1_IRQ_RX,
+		.tx_irq		= INT_24XX_MCBSP1_IRQ_TX,
+		.ops		= &omap2_mcbsp_ops,
+	},
+	{
+		.phys_base	= OMAP44XX_MCBSP2_BASE,
+		.dma_rx_sync	= OMAP44XX_DMA_MCBSP2_RX,
+		.dma_tx_sync	= OMAP44XX_DMA_MCBSP2_TX,
+		.rx_irq		= INT_24XX_MCBSP2_IRQ_RX,
+		.tx_irq		= INT_24XX_MCBSP2_IRQ_TX,
+		.ops		= &omap2_mcbsp_ops,
+	},
+	{
+		.phys_base	= OMAP44XX_MCBSP3_BASE,
+		.dma_rx_sync	= OMAP44XX_DMA_MCBSP3_RX,
+		.dma_tx_sync	= OMAP44XX_DMA_MCBSP3_TX,
+		.rx_irq		= INT_24XX_MCBSP3_IRQ_RX,
+		.tx_irq		= INT_24XX_MCBSP3_IRQ_TX,
+		.ops		= &omap2_mcbsp_ops,
+	},
+	{
+		.phys_base	= OMAP44XX_MCBSP4_BASE,
+		.dma_rx_sync	= OMAP44XX_DMA_MCBSP4_RX,
+		.dma_tx_sync	= OMAP44XX_DMA_MCBSP4_TX,
+		.rx_irq		= INT_24XX_MCBSP4_IRQ_RX,
+		.tx_irq		= INT_24XX_MCBSP4_IRQ_TX,
+		.ops		= &omap2_mcbsp_ops,
+	},
+};
+#define OMAP44XX_MCBSP_PDATA_SZ		ARRAY_SIZE(omap44xx_mcbsp_pdata) +#else
+#define omap44xx_mcbsp_pdata		NULL
+#define OMAP44XX_MCBSP_PDATA_SZ		0
+#endif
 static int __init omap2_mcbsp_init(void)
 {
 	if (cpu_is_omap2420())
@@ -177,6 +217,8 @@ static int __init omap2_mcbsp_init(void)
 		omap_mcbsp_count = OMAP2430_MCBSP_PDATA_SZ;
 	if (cpu_is_omap34xx())
 		omap_mcbsp_count = OMAP34XX_MCBSP_PDATA_SZ;
+	if (cpu_is_omap44xx())
+		omap_mcbsp_count = OMAP44XX_MCBSP_PDATA_SZ;

 	mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *),
 								GFP_KERNEL);
@@ -192,7 +234,9 @@ static int __init omap2_mcbsp_init(void)
 	if (cpu_is_omap34xx())
 		omap_mcbsp_register_board_cfg(omap34xx_mcbsp_pdata,
 						OMAP34XX_MCBSP_PDATA_SZ);
-
+	if (cpu_is_omap44xx())
+		omap_mcbsp_register_board_cfg(omap44xx_mcbsp_pdata,
+						OMAP44XX_MCBSP_PDATA_SZ);
 	return omap_mcbsp_init();
 }
 arch_initcall(omap2_mcbsp_init);
Index: omap4_dev/arch/arm/plat-omap/include/mach/mcbsp.h
=================================================================== ---
omap4_dev.orig/arch/arm/plat-omap/include/mach/mcbsp.h
+++ omap4_dev/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -53,7 +53,13 @@
 #define OMAP34XX_MCBSP4_BASE	0x49026000
 #define OMAP34XX_MCBSP5_BASE	0x48096000

-#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) ||
defined(CONFIG_ARCH_OMAP730) +#define OMAP44XX_MCBSP1_BASE	0x49022000
+#define OMAP44XX_MCBSP2_BASE	0x49024000
+#define OMAP44XX_MCBSP3_BASE	0x49026000
+#define OMAP44XX_MCBSP4_BASE	0x48074000
+
+#if defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX) || \
+defined(CONFIG_ARCH_OMAP730)

 #define OMAP_MCBSP_REG_DRR2	0x00
 #define OMAP_MCBSP_REG_DRR1	0x02
@@ -98,7 +104,8 @@
 #define AUDIO_DMA_TX		OMAP_DMA_MCBSP1_TX
 #define AUDIO_DMA_RX		OMAP_DMA_MCBSP1_RX

-#elif defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) +#elif
defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) || \
+defined(CONFIG_ARCH_OMAP4)

 #define OMAP_MCBSP_REG_DRR2	0x00
 #define OMAP_MCBSP_REG_DRR1	0x04



--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux