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 99b6e1546311..d7288f1dc64f 100644 --- a/arch/arm/mach-omap2/mcbsp.c +++ b/arch/arm/mach-omap2/mcbsp.c | |||
@@ -168,6 +168,42 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { | |||
168 | #define OMAP34XX_MCBSP_PDATA_SZ 0 | 168 | #define OMAP34XX_MCBSP_PDATA_SZ 0 |
169 | #endif | 169 | #endif |
170 | 170 | ||
171 | static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = { | ||
172 | { | ||
173 | .phys_base = OMAP44XX_MCBSP1_BASE, | ||
174 | .dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX, | ||
175 | .dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX, | ||
176 | .rx_irq = INT_24XX_MCBSP1_IRQ_RX, | ||
177 | .tx_irq = INT_24XX_MCBSP1_IRQ_TX, | ||
178 | .ops = &omap2_mcbsp_ops, | ||
179 | }, | ||
180 | { | ||
181 | .phys_base = OMAP44XX_MCBSP2_BASE, | ||
182 | .dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX, | ||
183 | .dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX, | ||
184 | .rx_irq = INT_24XX_MCBSP2_IRQ_RX, | ||
185 | .tx_irq = INT_24XX_MCBSP2_IRQ_TX, | ||
186 | .ops = &omap2_mcbsp_ops, | ||
187 | }, | ||
188 | { | ||
189 | .phys_base = OMAP44XX_MCBSP3_BASE, | ||
190 | .dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX, | ||
191 | .dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX, | ||
192 | .rx_irq = INT_24XX_MCBSP3_IRQ_RX, | ||
193 | .tx_irq = INT_24XX_MCBSP3_IRQ_TX, | ||
194 | .ops = &omap2_mcbsp_ops, | ||
195 | }, | ||
196 | { | ||
197 | .phys_base = OMAP44XX_MCBSP4_BASE, | ||
198 | .dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX, | ||
199 | .dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX, | ||
200 | .rx_irq = INT_24XX_MCBSP4_IRQ_RX, | ||
201 | .tx_irq = INT_24XX_MCBSP4_IRQ_TX, | ||
202 | .ops = &omap2_mcbsp_ops, | ||
203 | }, | ||
204 | }; | ||
205 | #define OMAP44XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap44xx_mcbsp_pdata) | ||
206 | |||
171 | static int __init omap2_mcbsp_init(void) | 207 | static int __init omap2_mcbsp_init(void) |
172 | { | 208 | { |
173 | if (cpu_is_omap2420()) | 209 | if (cpu_is_omap2420()) |
@@ -176,6 +212,8 @@ static int __init omap2_mcbsp_init(void) | |||
176 | omap_mcbsp_count = OMAP2430_MCBSP_PDATA_SZ; | 212 | omap_mcbsp_count = OMAP2430_MCBSP_PDATA_SZ; |
177 | if (cpu_is_omap34xx()) | 213 | if (cpu_is_omap34xx()) |
178 | omap_mcbsp_count = OMAP34XX_MCBSP_PDATA_SZ; | 214 | omap_mcbsp_count = OMAP34XX_MCBSP_PDATA_SZ; |
215 | if (cpu_is_omap44xx()) | ||
216 | omap_mcbsp_count = OMAP44XX_MCBSP_PDATA_SZ; | ||
179 | 217 | ||
180 | mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *), | 218 | mcbsp_ptr = kzalloc(omap_mcbsp_count * sizeof(struct omap_mcbsp *), |
181 | GFP_KERNEL); | 219 | GFP_KERNEL); |
@@ -191,6 +229,9 @@ static int __init omap2_mcbsp_init(void) | |||
191 | if (cpu_is_omap34xx()) | 229 | if (cpu_is_omap34xx()) |
192 | omap_mcbsp_register_board_cfg(omap34xx_mcbsp_pdata, | 230 | omap_mcbsp_register_board_cfg(omap34xx_mcbsp_pdata, |
193 | OMAP34XX_MCBSP_PDATA_SZ); | 231 | OMAP34XX_MCBSP_PDATA_SZ); |
232 | if (cpu_is_omap44xx()) | ||
233 | omap_mcbsp_register_board_cfg(omap44xx_mcbsp_pdata, | ||
234 | OMAP44XX_MCBSP_PDATA_SZ); | ||
194 | 235 | ||
195 | return omap_mcbsp_init(); | 236 | return omap_mcbsp_init(); |
196 | } | 237 | } |