On Mon, 19 May 2008 11:09:43 -0400 "ext Eduardo Valentin" <edubezval@xxxxxxxxx> wrote: > Hi Steve, > > This series is basically a simple transformation of currect mcbsp code > to a platform > driver and a separation of machine specific code. > > It should work for omap1 and omap2 (what is currently supported). But > it should add basic support for omap3 > mcbps 1 and 2. Chandra will send his patches on top of this series to > add more features for omap3. > For those who are keen to try ASoC on OMAP3 might want to try attached patch on top of Eduardo's set. I'll prepare better one when there are more ports defined. E.g. there is no need to separe omap34xx_dma_regs table since request numbers are the same between OMAP2 and OMAP3. Jarkko
>From a1dbb6dd28e9815a307b87b8d96dcf371d6cfd58 Mon Sep 17 00:00:00 2001 From: Jarkko Nikula <jarkko.nikula@xxxxxxxxx> Date: Mon, 19 May 2008 13:24:41 +0300 Subject: [PATCH] ASoC: OMAP: Add basic support for OMAP34xx in McBSP DAI driver This adds support for OMAP34xx McBSP port 1 and 2. Signed-off-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxx> --- sound/soc/omap/omap-mcbsp.c | 20 +++++++++++++++++++- 1 files changed, 19 insertions(+), 1 deletions(-) diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c index 40d87e6..8e6ec9d 100644 --- a/sound/soc/omap/omap-mcbsp.c +++ b/sound/soc/omap/omap-mcbsp.c @@ -99,6 +99,21 @@ static const unsigned long omap2420_mcbsp_port[][2] = { static const int omap2420_dma_reqs[][2] = {}; static const unsigned long omap2420_mcbsp_port[][2] = {}; #endif +#if defined(CONFIG_ARCH_OMAP34XX) +static const int omap34xx_dma_reqs[][2] = { + { OMAP24XX_DMA_MCBSP1_TX, OMAP24XX_DMA_MCBSP1_RX }, + { OMAP24XX_DMA_MCBSP2_TX, OMAP24XX_DMA_MCBSP2_RX }, +}; +static const unsigned long omap34xx_mcbsp_port[][2] = { + { OMAP34XX_MCBSP1_BASE + OMAP_MCBSP_REG_DXR2, + OMAP34XX_MCBSP1_BASE + OMAP_MCBSP_REG_DRR2 }, + { OMAP34XX_MCBSP2_BASE + OMAP_MCBSP_REG_DXR2, + OMAP34XX_MCBSP2_BASE + OMAP_MCBSP_REG_DRR2 }, +}; +#else +static const int omap34xx_dma_reqs[][2] = {}; +static const unsigned long omap34xx_mcbsp_port[][2] = {}; +#endif static int omap_mcbsp_dai_startup(struct snd_pcm_substream *substream) { @@ -169,9 +184,12 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream, } else if (cpu_is_omap2420()) { dma = omap2420_dma_reqs[bus_id][substream->stream]; port = omap2420_mcbsp_port[bus_id][substream->stream]; + } else if (cpu_is_omap343x()) { + dma = omap34xx_dma_reqs[bus_id][substream->stream]; + port = omap34xx_mcbsp_port[bus_id][substream->stream]; } else { /* - * TODO: Add support for 2430 and 3430 + * TODO: Add support for 2430 */ return -ENODEV; } -- 1.5.5.1