diff options
author | Ricardo Perez Olivares <x0081762@ti.com> | 2010-05-03 11:18:06 -0500 |
---|---|---|
committer | Ricardo Perez Olivares <x0081762@ti.com> | 2010-05-03 11:18:06 -0500 |
commit | 4318edd6e2f91a88b2cc3a4d9c07cc33edddad46 (patch) | |
tree | b718ff2b5767c9e67d77dd1525cde5b7c6941892 /arch/arm | |
parent | d0da6c3040360de93ca1d2a2ceba4ffb3120985e (diff) | |
parent | 8e29a6bbed6a81937c7ac9b5afe4bce97e463180 (diff) |
Merge branch 'omap4_next' of git://dev.omapzoom.org/pub/scm/santosh/kernel-omap4-base into L24x6-next
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/mcbsp.c | 16 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/plat/irqs.h | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/mcbsp.c | 36 |
3 files changed, 28 insertions, 26 deletions
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c index bb9d9ae732b3..b49d57769af0 100644 --- a/arch/arm/mach-omap2/mcbsp.c +++ b/arch/arm/mach-omap2/mcbsp.c @@ -194,32 +194,32 @@ 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, + .rx_irq = INT_44XX_MCBSP1_IRQ, + .tx_irq = INT_44XX_MCBSP1_IRQ, .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, + .rx_irq = INT_44XX_MCBSP2_IRQ, + .tx_irq = INT_44XX_MCBSP2_IRQ, .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, + .rx_irq = INT_44XX_MCBSP3_IRQ, + .tx_irq = INT_44XX_MCBSP3_IRQ, .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, + .rx_irq = INT_44XX_MCBSP4_IRQ, + .tx_irq = INT_44XX_MCBSP4_IRQ, .ops = &omap2_mcbsp_ops, }, }; diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-omap/include/plat/irqs.h index 77c0bf79f43f..4c29a5ec409b 100644 --- a/arch/arm/plat-omap/include/plat/irqs.h +++ b/arch/arm/plat-omap/include/plat/irqs.h @@ -404,7 +404,7 @@ #define INT_44XX_SPI5_IRQ (69 + IRQ_GIC_START) #define INT_44XX_MCBSP5_IRQ (16 + IRQ_GIC_START) -#define INT_44xX_MCBSP1_IRQ (17 + IRQ_GIC_START) +#define INT_44XX_MCBSP1_IRQ (17 + IRQ_GIC_START) #define INT_44XX_MCBSP2_IRQ (22 + IRQ_GIC_START) #define INT_44XX_MCBSP3_IRQ (23 + IRQ_GIC_START) #define INT_44XX_MCBSP4_IRQ (27 + IRQ_GIC_START) diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index 30682b8278fd..d263b70491cc 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c @@ -211,7 +211,7 @@ void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) struct omap_mcbsp *mcbsp; void __iomem *io_base; - if (!cpu_is_omap34xx()) + if (!cpu_is_omap34xx() && !cpu_is_omap44xx()) return; if (!omap_mcbsp_check_valid_id(id)) { @@ -235,7 +235,7 @@ void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold) struct omap_mcbsp *mcbsp; void __iomem *io_base; - if (!cpu_is_omap34xx()) + if (!cpu_is_omap34xx() && !cpu_is_omap44xx()) return; if (!omap_mcbsp_check_valid_id(id)) { @@ -312,7 +312,7 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp) * Enable wakup behavior, smart idle and all wakeups * REVISIT: some wakeups may be unnecessary */ - if (cpu_is_omap34xx()) { + if (cpu_is_omap34xx() || cpu_is_omap44xx()) { u16 syscon; syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); @@ -336,7 +336,7 @@ static inline void omap34xx_mcbsp_free(struct omap_mcbsp *mcbsp) /* * Disable wakup behavior, smart idle and all wakeups */ - if (cpu_is_omap34xx()) { + if (cpu_is_omap34xx() || cpu_is_omap44xx()) { u16 syscon; syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); @@ -440,15 +440,16 @@ int omap_mcbsp_request(unsigned int id) mcbsp->id); goto error; } - - init_completion(&mcbsp->rx_irq_completion); - err = request_irq(mcbsp->rx_irq, omap_mcbsp_rx_irq_handler, - 0, "McBSP", (void *)mcbsp); - if (err != 0) { - dev_err(mcbsp->dev, "Unable to request RX IRQ %d " - "for McBSP%d\n", mcbsp->rx_irq, - mcbsp->id); - goto tx_irq; + if (!cpu_is_omap44xx()) { + init_completion(&mcbsp->rx_irq_completion); + err = request_irq(mcbsp->rx_irq, + omap_mcbsp_rx_irq_handler, 0, "McBSP", (void *)mcbsp); + if (err != 0) { + dev_err(mcbsp->dev, "Unable to request RX IRQ %d " + "for McBSP%d\n", mcbsp->rx_irq, + mcbsp->id); + goto tx_irq; + } } } @@ -492,7 +493,8 @@ void omap_mcbsp_free(unsigned int id) if (mcbsp->io_type == OMAP_MCBSP_IRQ_IO) { /* Free IRQs */ - free_irq(mcbsp->rx_irq, (void *)mcbsp); + if (!cpu_is_omap44xx()) + free_irq(mcbsp->rx_irq, (void *)mcbsp); free_irq(mcbsp->tx_irq, (void *)mcbsp); } @@ -563,7 +565,7 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx) OMAP_MCBSP_WRITE(io_base, SPCR2, w | (1 << 7)); } - if (cpu_is_omap2430() || cpu_is_omap34xx()) { + if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { /* Release the transmitter and receiver */ w = OMAP_MCBSP_READ(io_base, XCCR); w &= ~(tx ? XDISABLE : 0); @@ -595,7 +597,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) /* Reset transmitter */ tx &= 1; - if (cpu_is_omap2430() || cpu_is_omap34xx()) { + if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { w = OMAP_MCBSP_READ(io_base, XCCR); w |= (tx ? XDISABLE : 0); OMAP_MCBSP_WRITE(io_base, XCCR, w); @@ -605,7 +607,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) /* Reset receiver */ rx &= 1; - if (cpu_is_omap2430() || cpu_is_omap34xx()) { + if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { w = OMAP_MCBSP_READ(io_base, RCCR); w |= (rx ? RDISABLE : 0); OMAP_MCBSP_WRITE(io_base, RCCR, w); |