RE: [PATCH 1/1] ASoC: Added OMAP3 EVM support in ASoC.

2009-05-08 Thread Aggarwal, Anuj
 -Original Message-
 From: Arun KS [mailto:getaru...@gmail.com]
 Sent: Friday, May 08, 2009 10:13 AM
 To: Aggarwal, Anuj
 Cc: alsa-de...@alsa-project.org; linux-omap@vger.kernel.org
 Subject: Re: [PATCH 1/1] ASoC: Added OMAP3 EVM support in ASoC.
 
 On Thu, May 7, 2009 at 9:38 PM, Anuj Aggarwal anuj.aggar...@ti.com
 wrote:
 
  Signed-off-by: Anuj Aggarwal anuj.aggar...@ti.com
  ---
   sound/soc/omap/Kconfig    |    8 +++
   sound/soc/omap/Makefile   |    2 +
   sound/soc/omap/omap3evm.c |  147
 +
   3 files changed, 157 insertions(+), 0 deletions(-)
   create mode 100644 sound/soc/omap/omap3evm.c
 
  diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig
  index 675732e..b771238 100644
  --- a/sound/soc/omap/Kconfig
  +++ b/sound/soc/omap/Kconfig
  @@ -39,6 +39,14 @@ config SND_OMAP_SOC_OMAP2EVM
         help
           Say Y if you want to add support for SoC audio on the omap2evm
 board.
 
  +config SND_OMAP_SOC_OMAP3EVM
  +       tristate SoC Audio support for OMAP3EVM board
  +       depends on TWL4030_CORE  SND_OMAP_SOC 
 MACH_OMAP3EVM
  +       select SND_OMAP_SOC_MCBSP
  +       select SND_SOC_TWL4030
  +       help
  +         Say Y if you want to add support for SoC audio on the omap3evm
 board.
  +
   config SND_OMAP_SOC_SDP3430
         tristate SoC Audio support for Texas Instruments SDP3430
         depends on TWL4030_CORE  SND_OMAP_SOC 
 MACH_OMAP_3430SDP
  diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile
  index 0c9e4ac..a37f498 100644
  --- a/sound/soc/omap/Makefile
  +++ b/sound/soc/omap/Makefile
  @@ -10,6 +10,7 @@ snd-soc-n810-objs := n810.o
   snd-soc-osk5912-objs := osk5912.o
   snd-soc-overo-objs := overo.o
   snd-soc-omap2evm-objs := omap2evm.o
  +snd-soc-omap3evm-objs := omap3evm.o
   snd-soc-sdp3430-objs := sdp3430.o
   snd-soc-omap3pandora-objs := omap3pandora.o
   snd-soc-omap3beagle-objs := omap3beagle.o
  @@ -18,6 +19,7 @@ obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-
 n810.o
   obj-$(CONFIG_SND_OMAP_SOC_OSK5912) += snd-soc-osk5912.o
   obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o
   obj-$(CONFIG_MACH_OMAP2EVM) += snd-soc-omap2evm.o
  +obj-$(CONFIG_MACH_OMAP3EVM) += snd-soc-omap3evm.o
   obj-$(CONFIG_SND_OMAP_SOC_SDP3430) += snd-soc-sdp3430.o
   obj-$(CONFIG_SND_OMAP_SOC_OMAP3_PANDORA) += snd-soc-
 omap3pandora.o
   obj-$(CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE) += snd-soc-
 omap3beagle.o
  diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c
  new file mode 100644
  index 000..2af5d93
  --- /dev/null
  +++ b/sound/soc/omap/omap3evm.c
  @@ -0,0 +1,147 @@
  +/*
  + * omap3evm.c  -- ALSA SoC support for OMAP3 EVM
  + *
  + * Author: Anuj Aggarwal anuj.aggar...@ti.com
  + *
  + * Based on sound/soc/omap/beagle.c by Steve Sakoman
  + *
  + * Copyright (C) 2008 Texas Instruments, Incorporated
  + *
  + * This program is free software; you can redistribute it and/or modify it
  + * under the terms of the GNU General Public License as published by the
  + * Free Software Foundation version 2.
  + *
  + * This program is distributed as is WITHOUT ANY WARRANTY of any
 kind,
  + * whether express or implied; without even the implied warranty of
  + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU
  + * General Public License for more details.
  + */
  +
  +#include linux/clk.h
  +#include linux/platform_device.h
  +#include sound/core.h
  +#include sound/pcm.h
  +#include sound/soc.h
  +#include sound/soc-dapm.h
  +
  +#include asm/mach-types.h
  +#include mach/hardware.h
  +#include mach/gpio.h
  +#include mach/mcbsp.h
  +
  +#include omap-mcbsp.h
  +#include omap-pcm.h
  +#include ../codecs/twl4030.h
  +
  +static int omap3evm_hw_params(struct snd_pcm_substream *substream,
  +       struct snd_pcm_hw_params *params)
  +{
  +       struct snd_soc_pcm_runtime *rtd = substream-private_data;
  +       struct snd_soc_dai *codec_dai = rtd-dai-codec_dai;
  +       struct snd_soc_dai *cpu_dai = rtd-dai-cpu_dai;
  +       int ret;
  +
  +       /* Set codec DAI configuration */
  +       ret = snd_soc_dai_set_fmt(codec_dai,
  +                                 SND_SOC_DAIFMT_I2S |
  +                                 SND_SOC_DAIFMT_NB_NF |
  +                                 SND_SOC_DAIFMT_CBM_CFM);
  +       if (ret  0) {
  +               printk(KERN_ERR Can't set codec DAI configuration\n);
  +               return ret;
  +       }
  +
  +       /* Set cpu DAI configuration */
  +       ret = snd_soc_dai_set_fmt(cpu_dai,
  +                                 SND_SOC_DAIFMT_I2S |
  +                                 SND_SOC_DAIFMT_NB_NF |
  +                                 SND_SOC_DAIFMT_CBM_CFM);
  +       if (ret  0) {
  +               printk(KERN_ERR Can't set cpu DAI configuration\n);
  +               return ret;
  +       }
  +
  +       /* Set the codec system clock for DAC and ADC */
  +       ret = snd_soc_dai_set_sysclk(codec_dai, 0, 2600

Re: [PATCH 1/1] ASoC: Added OMAP3 EVM support in ASoC.

2009-05-07 Thread Arun KS
On Thu, May 7, 2009 at 9:38 PM, Anuj Aggarwal anuj.aggar...@ti.com wrote:

 Signed-off-by: Anuj Aggarwal anuj.aggar...@ti.com
 ---
  sound/soc/omap/Kconfig    |    8 +++
  sound/soc/omap/Makefile   |    2 +
  sound/soc/omap/omap3evm.c |  147 
 +
  3 files changed, 157 insertions(+), 0 deletions(-)
  create mode 100644 sound/soc/omap/omap3evm.c

 diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig
 index 675732e..b771238 100644
 --- a/sound/soc/omap/Kconfig
 +++ b/sound/soc/omap/Kconfig
 @@ -39,6 +39,14 @@ config SND_OMAP_SOC_OMAP2EVM
        help
          Say Y if you want to add support for SoC audio on the omap2evm board.

 +config SND_OMAP_SOC_OMAP3EVM
 +       tristate SoC Audio support for OMAP3EVM board
 +       depends on TWL4030_CORE  SND_OMAP_SOC  MACH_OMAP3EVM
 +       select SND_OMAP_SOC_MCBSP
 +       select SND_SOC_TWL4030
 +       help
 +         Say Y if you want to add support for SoC audio on the omap3evm 
 board.
 +
  config SND_OMAP_SOC_SDP3430
        tristate SoC Audio support for Texas Instruments SDP3430
        depends on TWL4030_CORE  SND_OMAP_SOC  MACH_OMAP_3430SDP
 diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile
 index 0c9e4ac..a37f498 100644
 --- a/sound/soc/omap/Makefile
 +++ b/sound/soc/omap/Makefile
 @@ -10,6 +10,7 @@ snd-soc-n810-objs := n810.o
  snd-soc-osk5912-objs := osk5912.o
  snd-soc-overo-objs := overo.o
  snd-soc-omap2evm-objs := omap2evm.o
 +snd-soc-omap3evm-objs := omap3evm.o
  snd-soc-sdp3430-objs := sdp3430.o
  snd-soc-omap3pandora-objs := omap3pandora.o
  snd-soc-omap3beagle-objs := omap3beagle.o
 @@ -18,6 +19,7 @@ obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o
  obj-$(CONFIG_SND_OMAP_SOC_OSK5912) += snd-soc-osk5912.o
  obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o
  obj-$(CONFIG_MACH_OMAP2EVM) += snd-soc-omap2evm.o
 +obj-$(CONFIG_MACH_OMAP3EVM) += snd-soc-omap3evm.o
  obj-$(CONFIG_SND_OMAP_SOC_SDP3430) += snd-soc-sdp3430.o
  obj-$(CONFIG_SND_OMAP_SOC_OMAP3_PANDORA) += snd-soc-omap3pandora.o
  obj-$(CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE) += snd-soc-omap3beagle.o
 diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c
 new file mode 100644
 index 000..2af5d93
 --- /dev/null
 +++ b/sound/soc/omap/omap3evm.c
 @@ -0,0 +1,147 @@
 +/*
 + * omap3evm.c  -- ALSA SoC support for OMAP3 EVM
 + *
 + * Author: Anuj Aggarwal anuj.aggar...@ti.com
 + *
 + * Based on sound/soc/omap/beagle.c by Steve Sakoman
 + *
 + * Copyright (C) 2008 Texas Instruments, Incorporated
 + *
 + * This program is free software; you can redistribute it and/or modify it
 + * under the terms of the GNU General Public License as published by the
 + * Free Software Foundation version 2.
 + *
 + * This program is distributed as is WITHOUT ANY WARRANTY of any kind,
 + * whether express or implied; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 + * General Public License for more details.
 + */
 +
 +#include linux/clk.h
 +#include linux/platform_device.h
 +#include sound/core.h
 +#include sound/pcm.h
 +#include sound/soc.h
 +#include sound/soc-dapm.h
 +
 +#include asm/mach-types.h
 +#include mach/hardware.h
 +#include mach/gpio.h
 +#include mach/mcbsp.h
 +
 +#include omap-mcbsp.h
 +#include omap-pcm.h
 +#include ../codecs/twl4030.h
 +
 +static int omap3evm_hw_params(struct snd_pcm_substream *substream,
 +       struct snd_pcm_hw_params *params)
 +{
 +       struct snd_soc_pcm_runtime *rtd = substream-private_data;
 +       struct snd_soc_dai *codec_dai = rtd-dai-codec_dai;
 +       struct snd_soc_dai *cpu_dai = rtd-dai-cpu_dai;
 +       int ret;
 +
 +       /* Set codec DAI configuration */
 +       ret = snd_soc_dai_set_fmt(codec_dai,
 +                                 SND_SOC_DAIFMT_I2S |
 +                                 SND_SOC_DAIFMT_NB_NF |
 +                                 SND_SOC_DAIFMT_CBM_CFM);
 +       if (ret  0) {
 +               printk(KERN_ERR Can't set codec DAI configuration\n);
 +               return ret;
 +       }
 +
 +       /* Set cpu DAI configuration */
 +       ret = snd_soc_dai_set_fmt(cpu_dai,
 +                                 SND_SOC_DAIFMT_I2S |
 +                                 SND_SOC_DAIFMT_NB_NF |
 +                                 SND_SOC_DAIFMT_CBM_CFM);
 +       if (ret  0) {
 +               printk(KERN_ERR Can't set cpu DAI configuration\n);
 +               return ret;
 +       }
 +
 +       /* Set the codec system clock for DAC and ADC */
 +       ret = snd_soc_dai_set_sysclk(codec_dai, 0, 2600,
 +                                    SND_SOC_CLOCK_IN);
 +       if (ret  0) {
 +               printk(KERN_ERR Can't set codec system clock\n);
 +               return ret;
 +       }
 +
 +       return 0;
 +}
 +
 +static struct snd_soc_ops omap3evm_ops = {
 +       .hw_params = omap3evm_hw_params,
 +};
 +
 +/* Digital audio interface glue - connects codec -- CPU */
 +static struct snd_soc_dai_link omap3evm_dai = {
 +