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