|
@@ -33,8 +33,6 @@ struct snd_soc_card_drvdata_davinci {
|
|
unsigned sysclk;
|
|
unsigned sysclk;
|
|
};
|
|
};
|
|
|
|
|
|
-#define AUDIO_FORMAT (SND_SOC_DAIFMT_DSP_B | \
|
|
|
|
- SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF)
|
|
|
|
static int evm_hw_params(struct snd_pcm_substream *substream,
|
|
static int evm_hw_params(struct snd_pcm_substream *substream,
|
|
struct snd_pcm_hw_params *params)
|
|
struct snd_pcm_hw_params *params)
|
|
{
|
|
{
|
|
@@ -47,16 +45,6 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
|
|
unsigned sysclk = ((struct snd_soc_card_drvdata_davinci *)
|
|
unsigned sysclk = ((struct snd_soc_card_drvdata_davinci *)
|
|
snd_soc_card_get_drvdata(soc_card))->sysclk;
|
|
snd_soc_card_get_drvdata(soc_card))->sysclk;
|
|
|
|
|
|
- /* set codec DAI configuration */
|
|
|
|
- ret = snd_soc_dai_set_fmt(codec_dai, AUDIO_FORMAT);
|
|
|
|
- if (ret < 0)
|
|
|
|
- return ret;
|
|
|
|
-
|
|
|
|
- /* set cpu DAI configuration */
|
|
|
|
- ret = snd_soc_dai_set_fmt(cpu_dai, AUDIO_FORMAT);
|
|
|
|
- if (ret < 0)
|
|
|
|
- return ret;
|
|
|
|
-
|
|
|
|
/* set the codec system clock */
|
|
/* set the codec system clock */
|
|
ret = snd_soc_dai_set_sysclk(codec_dai, 0, sysclk, SND_SOC_CLOCK_OUT);
|
|
ret = snd_soc_dai_set_sysclk(codec_dai, 0, sysclk, SND_SOC_CLOCK_OUT);
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
@@ -70,24 +58,10 @@ static int evm_hw_params(struct snd_pcm_substream *substream,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
-static int evm_spdif_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 *cpu_dai = rtd->cpu_dai;
|
|
|
|
-
|
|
|
|
- /* set cpu DAI configuration */
|
|
|
|
- return snd_soc_dai_set_fmt(cpu_dai, AUDIO_FORMAT);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static struct snd_soc_ops evm_ops = {
|
|
static struct snd_soc_ops evm_ops = {
|
|
.hw_params = evm_hw_params,
|
|
.hw_params = evm_hw_params,
|
|
};
|
|
};
|
|
|
|
|
|
-static struct snd_soc_ops evm_spdif_ops = {
|
|
|
|
- .hw_params = evm_spdif_hw_params,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
/* davinci-evm machine dapm widgets */
|
|
/* davinci-evm machine dapm widgets */
|
|
static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = {
|
|
static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = {
|
|
SND_SOC_DAPM_HP("Headphone Jack", NULL),
|
|
SND_SOC_DAPM_HP("Headphone Jack", NULL),
|
|
@@ -164,6 +138,8 @@ static struct snd_soc_dai_link dm6446_evm_dai = {
|
|
.platform_name = "davinci-mcbsp",
|
|
.platform_name = "davinci-mcbsp",
|
|
.init = evm_aic3x_init,
|
|
.init = evm_aic3x_init,
|
|
.ops = &evm_ops,
|
|
.ops = &evm_ops,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
};
|
|
};
|
|
|
|
|
|
static struct snd_soc_dai_link dm355_evm_dai = {
|
|
static struct snd_soc_dai_link dm355_evm_dai = {
|
|
@@ -175,6 +151,8 @@ static struct snd_soc_dai_link dm355_evm_dai = {
|
|
.platform_name = "davinci-mcbsp.1",
|
|
.platform_name = "davinci-mcbsp.1",
|
|
.init = evm_aic3x_init,
|
|
.init = evm_aic3x_init,
|
|
.ops = &evm_ops,
|
|
.ops = &evm_ops,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
};
|
|
};
|
|
|
|
|
|
static struct snd_soc_dai_link dm365_evm_dai = {
|
|
static struct snd_soc_dai_link dm365_evm_dai = {
|
|
@@ -183,10 +161,12 @@ static struct snd_soc_dai_link dm365_evm_dai = {
|
|
.stream_name = "AIC3X",
|
|
.stream_name = "AIC3X",
|
|
.cpu_dai_name = "davinci-mcbsp",
|
|
.cpu_dai_name = "davinci-mcbsp",
|
|
.codec_dai_name = "tlv320aic3x-hifi",
|
|
.codec_dai_name = "tlv320aic3x-hifi",
|
|
- .init = evm_aic3x_init,
|
|
|
|
.codec_name = "tlv320aic3x-codec.1-0018",
|
|
.codec_name = "tlv320aic3x-codec.1-0018",
|
|
- .ops = &evm_ops,
|
|
|
|
.platform_name = "davinci-mcbsp",
|
|
.platform_name = "davinci-mcbsp",
|
|
|
|
+ .init = evm_aic3x_init,
|
|
|
|
+ .ops = &evm_ops,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
|
|
#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
|
|
.name = "Voice Codec - CQ93VC",
|
|
.name = "Voice Codec - CQ93VC",
|
|
.stream_name = "CQ93",
|
|
.stream_name = "CQ93",
|
|
@@ -207,6 +187,8 @@ static struct snd_soc_dai_link dm6467_evm_dai[] = {
|
|
.codec_name = "tlv320aic3x-codec.0-001a",
|
|
.codec_name = "tlv320aic3x-codec.0-001a",
|
|
.init = evm_aic3x_init,
|
|
.init = evm_aic3x_init,
|
|
.ops = &evm_ops,
|
|
.ops = &evm_ops,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
},
|
|
},
|
|
{
|
|
{
|
|
.name = "McASP",
|
|
.name = "McASP",
|
|
@@ -215,7 +197,8 @@ static struct snd_soc_dai_link dm6467_evm_dai[] = {
|
|
.codec_dai_name = "dit-hifi",
|
|
.codec_dai_name = "dit-hifi",
|
|
.codec_name = "spdif_dit",
|
|
.codec_name = "spdif_dit",
|
|
.platform_name = "davinci-mcasp.1",
|
|
.platform_name = "davinci-mcasp.1",
|
|
- .ops = &evm_spdif_ops,
|
|
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
@@ -228,6 +211,8 @@ static struct snd_soc_dai_link da830_evm_dai = {
|
|
.platform_name = "davinci-mcasp.1",
|
|
.platform_name = "davinci-mcasp.1",
|
|
.init = evm_aic3x_init,
|
|
.init = evm_aic3x_init,
|
|
.ops = &evm_ops,
|
|
.ops = &evm_ops,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
};
|
|
};
|
|
|
|
|
|
static struct snd_soc_dai_link da850_evm_dai = {
|
|
static struct snd_soc_dai_link da850_evm_dai = {
|
|
@@ -239,6 +224,8 @@ static struct snd_soc_dai_link da850_evm_dai = {
|
|
.platform_name = "davinci-mcasp.0",
|
|
.platform_name = "davinci-mcasp.0",
|
|
.init = evm_aic3x_init,
|
|
.init = evm_aic3x_init,
|
|
.ops = &evm_ops,
|
|
.ops = &evm_ops,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
};
|
|
};
|
|
|
|
|
|
/* davinci dm6446 evm audio machine driver */
|
|
/* davinci dm6446 evm audio machine driver */
|
|
@@ -335,6 +322,8 @@ static struct snd_soc_dai_link evm_dai_tlv320aic3x = {
|
|
.codec_dai_name = "tlv320aic3x-hifi",
|
|
.codec_dai_name = "tlv320aic3x-hifi",
|
|
.ops = &evm_ops,
|
|
.ops = &evm_ops,
|
|
.init = evm_aic3x_init,
|
|
.init = evm_aic3x_init,
|
|
|
|
+ .dai_fmt = SND_SOC_DAIFMT_DSP_B | SND_SOC_DAIFMT_CBM_CFM |
|
|
|
|
+ SND_SOC_DAIFMT_IB_NF,
|
|
};
|
|
};
|
|
|
|
|
|
static const struct of_device_id davinci_evm_dt_ids[] = {
|
|
static const struct of_device_id davinci_evm_dt_ids[] = {
|