ASoC: DaVinci: Add audio support fot DA850/OMAP-L138 EVM
authorChaithrika U S <chaithrika@ti.com>
Tue, 11 Aug 2009 20:59:21 +0000 (16:59 -0400)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Thu, 13 Aug 2009 21:19:36 +0000 (22:19 +0100)
There is one instance of McASP on DA850/OMAP-L138 SoC. This is
connected to TLV320AIC3106 codec for audio playback and capture.
This patch adds audio support on this platform. Some of the
structure prefix names which are common for DA830/OMAP-L137 EVM and
DA850/OMAP-L138 EVM have been renamed to da8xx from da830.

Signed-off-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/davinci/Kconfig
sound/soc/davinci/Makefile
sound/soc/davinci/davinci-evm.c

index 677a538148784c05ddc540c9c1c671d7732bbdb5..4dfd4ad9d90e35f1abe920b02de591613557095b 100644 (file)
@@ -43,12 +43,21 @@ config SND_DAVINCI_SOC_SFFSDR
          Lyrtech SFFSDR board.
 
 config  SND_DA830_SOC_EVM
-       tristate "SoC Audio support for DA830/OMAPL137 EVM"
+       tristate "SoC Audio support for DA830/OMAP-L137 EVM"
        depends on SND_DAVINCI_SOC && MACH_DAVINCI_DA830_EVM
        select SND_DAVINCI_SOC_MCASP
        select SND_SOC_TLV320AIC3X
 
        help
          Say Y if you want to add support for SoC audio on TI
-         DA830/OMAPL137 EVM
+         DA830/OMAP-L137 EVM
+
+config  SND_DA850_SOC_EVM
+       tristate "SoC Audio support for DA850/OMAP-L138 EVM"
+       depends on SND_DAVINCI_SOC && MACH_DAVINCI_DA850_EVM
+       select SND_DAVINCI_SOC_MCASP
+       select SND_SOC_TLV320AIC3X
+       help
+         Say Y if you want to add support for SoC audio on TI
+         DA850/OMAP-L138 EVM
 
index 5e2195f80cf153fc6f35f79fb9fd346d64bde767..a6939d71b988b3f0cba740881622e852b0acaf9c 100644 (file)
@@ -14,4 +14,5 @@ snd-soc-sffsdr-objs := davinci-sffsdr.o
 obj-$(CONFIG_SND_DAVINCI_SOC_EVM) += snd-soc-evm.o
 obj-$(CONFIG_SND_DM6467_SOC_EVM) += snd-soc-evm.o
 obj-$(CONFIG_SND_DA830_SOC_EVM) += snd-soc-evm.o
+obj-$(CONFIG_SND_DA850_SOC_EVM) += snd-soc-evm.o
 obj-$(CONFIG_SND_DAVINCI_SOC_SFFSDR) += snd-soc-sffsdr.o
index a5a92124b6d53b9f3193604c742238c2172f1c32..46c1b0cb1d1b2a64720a0a17f41626ca564753f6 100644 (file)
@@ -54,7 +54,8 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
        else if (machine_is_davinci_evm())
                sysclk = 12288000;
 
-       else if (machine_is_davinci_da830_evm())
+       else if (machine_is_davinci_da830_evm() ||
+                               machine_is_davinci_da850_evm())
                sysclk = 24576000;
 
        else
@@ -165,7 +166,7 @@ static struct snd_soc_dai_link dm6467_evm_dai[] = {
                .ops = &evm_ops,
        },
 };
-static struct snd_soc_dai_link da830_evm_dai = {
+static struct snd_soc_dai_link da8xx_evm_dai = {
        .name = "TLV320AIC3X",
        .stream_name = "AIC3X",
        .cpu_dai = &davinci_mcasp_dai[DAVINCI_MCASP_I2S_DAI],
@@ -191,8 +192,15 @@ static struct snd_soc_card dm6467_snd_soc_card_evm = {
 };
 
 static struct snd_soc_card da830_snd_soc_card = {
-       .name = "DA830 EVM",
-       .dai_link = &da830_evm_dai,
+       .name = "DA830/OMAP-L137 EVM",
+       .dai_link = &da8xx_evm_dai,
+       .platform = &davinci_soc_platform,
+       .num_links = 1,
+};
+
+static struct snd_soc_card da850_snd_soc_card = {
+       .name = "DA850/OMAP-L138 EVM",
+       .dai_link = &da8xx_evm_dai,
        .platform = &davinci_soc_platform,
        .num_links = 1,
 };
@@ -209,7 +217,7 @@ static struct aic3x_setup_data dm6467_evm_aic3x_setup = {
        .i2c_address = 0x18,
 };
 
-static struct aic3x_setup_data da830_evm_aic3x_setup = {
+static struct aic3x_setup_data da8xx_evm_aic3x_setup = {
        .i2c_bus = 1,
        .i2c_address = 0x18,
 };
@@ -232,7 +240,13 @@ static struct snd_soc_device dm6467_evm_snd_devdata = {
 static struct snd_soc_device da830_evm_snd_devdata = {
        .card = &da830_snd_soc_card,
        .codec_dev = &soc_codec_dev_aic3x,
-       .codec_data = &da830_evm_aic3x_setup,
+       .codec_data = &da8xx_evm_aic3x_setup,
+};
+
+static struct snd_soc_device da850_evm_snd_devdata = {
+       .card           = &da850_snd_soc_card,
+       .codec_dev      = &soc_codec_dev_aic3x,
+       .codec_data     = &da8xx_evm_aic3x_setup,
 };
 
 static struct platform_device *evm_snd_device;
@@ -255,6 +269,9 @@ static int __init evm_init(void)
        } else if (machine_is_davinci_da830_evm()) {
                evm_snd_dev_data = &da830_evm_snd_devdata;
                index = 1;
+       } else if (machine_is_davinci_da850_evm()) {
+               evm_snd_dev_data = &da850_evm_snd_devdata;
+               index = 0;
        } else
                return -EINVAL;