Commit b8854632 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown

ASoC: blackfin: Switch bf5xx-ad193x from bf5xx-tdm to bf5xx-i2s

The bf5xx-i2s driver now has support for TDM mode and the bf5xx-tdm driver is
going to be removed soon, so switch the driver over to bf5xx-i2s.
Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 8b5e2e39
...@@ -56,6 +56,15 @@ config SND_SOC_BFIN_EVAL_ADAV80X ...@@ -56,6 +56,15 @@ config SND_SOC_BFIN_EVAL_ADAV80X
Note: This driver assumes that the ADAV80X digital record and playback Note: This driver assumes that the ADAV80X digital record and playback
interfaces are connected to the first SPORT port on the BF5XX board. interfaces are connected to the first SPORT port on the BF5XX board.
config SND_BF5XX_SOC_AD193X
tristate "SoC AD193X Audio support for Blackfin"
depends on SND_BF5XX_I2S
select SND_BF5XX_SOC_I2S
select SND_SOC_AD193X
help
Say Y if you want to add support for AD193X codec on Blackfin.
This driver supports AD1936, AD1937, AD1938 and AD1939.
config SND_BF5XX_SOC_AD73311 config SND_BF5XX_SOC_AD73311
tristate "SoC AD73311 Audio support for Blackfin" tristate "SoC AD73311 Audio support for Blackfin"
depends on SND_BF5XX_I2S depends on SND_BF5XX_I2S
...@@ -90,15 +99,6 @@ config SND_BF5XX_SOC_AD1836 ...@@ -90,15 +99,6 @@ config SND_BF5XX_SOC_AD1836
help help
Say Y if you want to add support for SoC audio on BF5xx STAMP/EZKIT. Say Y if you want to add support for SoC audio on BF5xx STAMP/EZKIT.
config SND_BF5XX_SOC_AD193X
tristate "SoC AD193X Audio support for Blackfin"
depends on SND_BF5XX_TDM
select SND_BF5XX_SOC_TDM
select SND_SOC_AD193X
help
Say Y if you want to add support for AD193X codec on Blackfin.
This driver supports AD1936, AD1937, AD1938 and AD1939.
config SND_BF5XX_AC97 config SND_BF5XX_AC97
tristate "SoC AC97 Audio for the ADI BF5xx chip" tristate "SoC AC97 Audio for the ADI BF5xx chip"
depends on BLACKFIN depends on BLACKFIN
......
...@@ -39,29 +39,16 @@ ...@@ -39,29 +39,16 @@
#include "../codecs/ad193x.h" #include "../codecs/ad193x.h"
#include "bf5xx-tdm.h"
static struct snd_soc_card bf5xx_ad193x; static struct snd_soc_card bf5xx_ad193x;
static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream, static int bf5xx_ad193x_link_init(struct snd_soc_pcm_runtime *rtd)
struct snd_pcm_hw_params *params)
{ {
struct snd_soc_pcm_runtime *rtd = substream->private_data;
struct snd_soc_dai *cpu_dai = rtd->cpu_dai; struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
struct snd_soc_dai *codec_dai = rtd->codec_dai; struct snd_soc_dai *codec_dai = rtd->codec_dai;
unsigned int clk = 0; int ret;
unsigned int channel_map[] = {0, 1, 2, 3, 4, 5, 6, 7};
int ret = 0;
switch (params_rate(params)) {
case 48000:
clk = 24576000;
break;
}
/* set the codec system clock for DAC and ADC */ /* set the codec system clock for DAC and ADC */
ret = snd_soc_dai_set_sysclk(codec_dai, 0, clk, ret = snd_soc_dai_set_sysclk(codec_dai, 0, 24576000, SND_SOC_CLOCK_IN);
SND_SOC_CLOCK_IN);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -70,9 +57,7 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream, ...@@ -70,9 +57,7 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
if (ret < 0) if (ret < 0)
return ret; return ret;
/* set cpu DAI channel mapping */ ret = snd_soc_dai_set_tdm_slot(cpu_dai, 0xFF, 0xFF, 8, 32);
ret = snd_soc_dai_set_channel_map(cpu_dai, ARRAY_SIZE(channel_map),
channel_map, ARRAY_SIZE(channel_map), channel_map);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -82,30 +67,26 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream, ...@@ -82,30 +67,26 @@ static int bf5xx_ad193x_hw_params(struct snd_pcm_substream *substream,
#define BF5XX_AD193X_DAIFMT (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_IF | \ #define BF5XX_AD193X_DAIFMT (SND_SOC_DAIFMT_DSP_A | SND_SOC_DAIFMT_IB_IF | \
SND_SOC_DAIFMT_CBM_CFM) SND_SOC_DAIFMT_CBM_CFM)
static struct snd_soc_ops bf5xx_ad193x_ops = {
.hw_params = bf5xx_ad193x_hw_params,
};
static struct snd_soc_dai_link bf5xx_ad193x_dai[] = { static struct snd_soc_dai_link bf5xx_ad193x_dai[] = {
{ {
.name = "ad193x", .name = "ad193x",
.stream_name = "AD193X", .stream_name = "AD193X",
.cpu_dai_name = "bfin-tdm.0", .cpu_dai_name = "bfin-i2s.0",
.codec_dai_name ="ad193x-hifi", .codec_dai_name ="ad193x-hifi",
.platform_name = "bfin-tdm-pcm-audio", .platform_name = "bfin-i2s-pcm-audio",
.codec_name = "spi0.5", .codec_name = "spi0.5",
.ops = &bf5xx_ad193x_ops,
.dai_fmt = BF5XX_AD193X_DAIFMT, .dai_fmt = BF5XX_AD193X_DAIFMT,
.init = bf5xx_ad193x_link_init,
}, },
{ {
.name = "ad193x", .name = "ad193x",
.stream_name = "AD193X", .stream_name = "AD193X",
.cpu_dai_name = "bfin-tdm.1", .cpu_dai_name = "bfin-i2s.1",
.codec_dai_name ="ad193x-hifi", .codec_dai_name ="ad193x-hifi",
.platform_name = "bfin-tdm-pcm-audio", .platform_name = "bfin-i2s-pcm-audio",
.codec_name = "spi0.5", .codec_name = "spi0.5",
.ops = &bf5xx_ad193x_ops,
.dai_fmt = BF5XX_AD193X_DAIFMT, .dai_fmt = BF5XX_AD193X_DAIFMT,
.init = bf5xx_ad193x_link_init,
}, },
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment