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 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 | ||
172 | static 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 | |||
172 | static int __init omap2_mcbsp_init(void) | 208 | static 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 | } |