|
@@ -28,10 +28,12 @@
|
|
|
#include <mach/mux.h>
|
|
|
|
|
|
#include "../codecs/tlv320aic3x.h"
|
|
|
+#include "../codecs/cq93vc.h"
|
|
|
#include "../codecs/spdif_transciever.h"
|
|
|
#include "davinci-pcm.h"
|
|
|
#include "davinci-i2s.h"
|
|
|
#include "davinci-mcasp.h"
|
|
|
+#include "davinci-vcif.h"
|
|
|
|
|
|
#define AUDIO_FORMAT (SND_SOC_DAIFMT_DSP_B | \
|
|
|
SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF)
|
|
@@ -165,6 +167,22 @@ static struct snd_soc_dai_link evm_dai = {
|
|
|
.ops = &evm_ops,
|
|
|
};
|
|
|
|
|
|
+static struct snd_soc_dai_link dm365_evm_dai = {
|
|
|
+#ifdef CONFIG_SND_DM365_AIC3X_CODEC
|
|
|
+ .name = "TLV320AIC3X",
|
|
|
+ .stream_name = "AIC3X",
|
|
|
+ .cpu_dai = &davinci_i2s_dai,
|
|
|
+ .codec_dai = &aic3x_dai,
|
|
|
+ .init = evm_aic3x_init,
|
|
|
+ .ops = &evm_ops,
|
|
|
+#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
|
|
|
+ .name = "Voice Codec - CQ93VC",
|
|
|
+ .stream_name = "CQ93",
|
|
|
+ .cpu_dai = &davinci_vcif_dai,
|
|
|
+ .codec_dai = &cq93vc_dai,
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
static struct snd_soc_dai_link dm6467_evm_dai[] = {
|
|
|
{
|
|
|
.name = "TLV320AIC3X",
|
|
@@ -191,7 +209,7 @@ static struct snd_soc_dai_link da8xx_evm_dai = {
|
|
|
.ops = &evm_ops,
|
|
|
};
|
|
|
|
|
|
-/* davinci dm6446, dm355 or dm365 evm audio machine driver */
|
|
|
+/* davinci dm6446, dm355 evm audio machine driver */
|
|
|
static struct snd_soc_card snd_soc_card_evm = {
|
|
|
.name = "DaVinci EVM",
|
|
|
.platform = &davinci_soc_platform,
|
|
@@ -199,6 +217,15 @@ static struct snd_soc_card snd_soc_card_evm = {
|
|
|
.num_links = 1,
|
|
|
};
|
|
|
|
|
|
+/* davinci dm365 evm audio machine driver */
|
|
|
+static struct snd_soc_card dm365_snd_soc_card_evm = {
|
|
|
+ .name = "DaVinci DM365 EVM",
|
|
|
+ .platform = &davinci_soc_platform,
|
|
|
+ .dai_link = &dm365_evm_dai,
|
|
|
+ .num_links = 1,
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
/* davinci dm6467 evm audio machine driver */
|
|
|
static struct snd_soc_card dm6467_snd_soc_card_evm = {
|
|
|
.name = "DaVinci DM6467 EVM",
|
|
@@ -230,6 +257,17 @@ static struct snd_soc_device evm_snd_devdata = {
|
|
|
.codec_data = &aic3x_setup,
|
|
|
};
|
|
|
|
|
|
+/* evm audio subsystem */
|
|
|
+static struct snd_soc_device dm365_evm_snd_devdata = {
|
|
|
+ .card = &dm365_snd_soc_card_evm,
|
|
|
+#ifdef CONFIG_SND_DM365_AIC3X_CODEC
|
|
|
+ .codec_dev = &soc_codec_dev_aic3x,
|
|
|
+ .codec_data = &aic3x_setup,
|
|
|
+#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
|
|
|
+ .codec_dev = &soc_codec_dev_cq93vc,
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
/* evm audio subsystem */
|
|
|
static struct snd_soc_device dm6467_evm_snd_devdata = {
|
|
|
.card = &dm6467_snd_soc_card_evm,
|
|
@@ -258,12 +296,15 @@ static int __init evm_init(void)
|
|
|
int index;
|
|
|
int ret;
|
|
|
|
|
|
- if (machine_is_davinci_evm() || machine_is_davinci_dm365_evm()) {
|
|
|
+ if (machine_is_davinci_evm()) {
|
|
|
evm_snd_dev_data = &evm_snd_devdata;
|
|
|
index = 0;
|
|
|
} else if (machine_is_davinci_dm355_evm()) {
|
|
|
evm_snd_dev_data = &evm_snd_devdata;
|
|
|
index = 1;
|
|
|
+ } else if (machine_is_davinci_dm365_evm()) {
|
|
|
+ evm_snd_dev_data = &dm365_evm_snd_devdata;
|
|
|
+ index = 0;
|
|
|
} else if (machine_is_davinci_dm6467_evm()) {
|
|
|
evm_snd_dev_data = &dm6467_evm_snd_devdata;
|
|
|
index = 0;
|