aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/mcbsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/mcbsp.c')
-rw-r--r--arch/arm/mach-omap2/mcbsp.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index a5c0f0435cd6..d49dfb5e931f 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -169,6 +169,42 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
169#define OMAP34XX_MCBSP_PDATA_SZ 0 169#define OMAP34XX_MCBSP_PDATA_SZ 0
170#endif 170#endif
171 171
172static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = {
173 {
174 .phys_base = OMAP44XX_MCBSP1_BASE,
175 .dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX,
176 .dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX,
177 .rx_irq = INT_24XX_MCBSP1_IRQ_RX,
178 .tx_irq = INT_24XX_MCBSP1_IRQ_TX,
179 .ops = &omap2_mcbsp_ops,
180 },
181 {
182 .phys_base = OMAP44XX_MCBSP2_BASE,
183 .dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX,
184 .dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX,
185 .rx_irq = INT_24XX_MCBSP2_IRQ_RX,
186 .tx_irq = INT_24XX_MCBSP2_IRQ_TX,
187 .ops = &omap2_mcbsp_ops,
188 },
189 {
190 .phys_base = OMAP44XX_MCBSP3_BASE,
191 .dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX,
192 .dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX,
193 .rx_irq = INT_24XX_MCBSP3_IRQ_RX,
194 .tx_irq = INT_24XX_MCBSP3_IRQ_TX,
195 .ops = &omap2_mcbsp_ops,
196 },
197 {
198 .phys_base = OMAP44XX_MCBSP4_BASE,
199 .dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX,
200 .dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX,
201 .rx_irq = INT_24XX_MCBSP4_IRQ_RX,
202 .tx_irq = INT_24XX_MCBSP4_IRQ_TX,
203 .ops = &omap2_mcbsp_ops,
204 },
205};
206#define OMAP44XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap44xx_mcbsp_pdata)
207
172static int __init omap2_mcbsp_init(void) 208static int __init omap2_mcbsp_init(void)
173{ 209{
174 if (cpu_is_omap2420()) 210 if (cpu_is_omap2420())
@@ -177,6 +213,8 @@ static int __init omap2_mcbsp_init(void)
177 omap_mcbsp_count = OMAP2430_MCBSP_PDATA_SZ; 213 omap_mcbsp_count = OMAP2430_MCBSP_PDATA_SZ;
178 if (cpu_is_omap34xx()) 214 if (cpu_is_omap34xx())
179 omap_mcbsp_count = OMAP34XX_MCBSP_PDATA_SZ; 215 omap_mcbsp_count = OMAP34XX_MCBSP_PDATA_SZ;
216 if (cpu_is_omap44xx())
217 omap_mcbsp_count = OMAP44XX_MCBSP_PDATA_SZ;
180 218
181 mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *), 219 mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *),
182 GFP_KERNEL); 220 GFP_KERNEL);
@@ -192,6 +230,9 @@ static int __init omap2_mcbsp_init(void)
192 if (cpu_is_omap34xx()) 230 if (cpu_is_omap34xx())
193 omap_mcbsp_register_board_cfg(omap34xx_mcbsp_pdata, 231 omap_mcbsp_register_board_cfg(omap34xx_mcbsp_pdata,
194 OMAP34XX_MCBSP_PDATA_SZ); 232 OMAP34XX_MCBSP_PDATA_SZ);
233 if (cpu_is_omap44xx())
234 omap_mcbsp_register_board_cfg(omap44xx_mcbsp_pdata,
235 OMAP44XX_MCBSP_PDATA_SZ);
195 236
196 return omap_mcbsp_init(); 237 return omap_mcbsp_init();
197} 238}