arm:omap:am33xx: McASP hookup for AM335x EVM
[sitara-epos/sitara-epos-kernel.git] / sound / soc / davinci / davinci-evm.c
index 32b4a801bd18ddc6be4aa53d35c55bb9d2f9c86d..f6a62c3cd0943e60195fa3b4af8ea0f569cb009b 100644 (file)
@@ -55,6 +55,9 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
        else if (machine_is_davinci_da830_evm() ||
                                machine_is_davinci_da850_evm())
                sysclk = 24576000;
+       /* On AM335X, CODEC gets MCLK from external Xtal (12MHz). */
+       else if (machine_is_am335xevm())
+               sysclk = 12000000;
 
        else
                return -EINVAL;
@@ -238,6 +241,17 @@ static struct snd_soc_dai_link da850_evm_dai = {
        .ops = &evm_ops,
 };
 
+static struct snd_soc_dai_link am335x_evm_dai = {
+       .name = "TLV320AIC3X",
+       .stream_name = "AIC3X",
+       .cpu_dai_name = "davinci-mcasp.1",
+       .codec_dai_name = "tlv320aic3x-hifi",
+       .codec_name = "tlv320aic3x-codec.2-001b",
+       .platform_name = "davinci-pcm-audio",
+       .init = evm_aic3x_init,
+       .ops = &evm_ops,
+};
+
 /* davinci dm6446 evm audio machine driver */
 static struct snd_soc_card dm6446_snd_soc_card_evm = {
        .name = "DaVinci DM6446 EVM",
@@ -278,6 +292,12 @@ static struct snd_soc_card da850_snd_soc_card = {
        .num_links = 1,
 };
 
+static struct snd_soc_card am335x_snd_soc_card = {
+       .name = "AM335X EVM",
+       .dai_link = &am335x_evm_dai,
+       .num_links = 1,
+};
+
 static struct platform_device *evm_snd_device;
 
 static int __init evm_init(void)
@@ -304,6 +324,9 @@ static int __init evm_init(void)
        } else if (machine_is_davinci_da850_evm()) {
                evm_snd_dev_data = &da850_snd_soc_card;
                index = 0;
+       } else if (machine_is_am335xevm()) {
+               evm_snd_dev_data = &am335x_snd_soc_card;
+               index = 0;
        } else
                return -EINVAL;