Merge branch 'for-2.6.37' into for-2.6.38
This commit is contained in:
commit
3df94756fe
|
@ -359,8 +359,8 @@ static struct clk_lookup dm355_clks[] = {
|
||||||
CLK(NULL, "uart1", &uart1_clk),
|
CLK(NULL, "uart1", &uart1_clk),
|
||||||
CLK(NULL, "uart2", &uart2_clk),
|
CLK(NULL, "uart2", &uart2_clk),
|
||||||
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
||||||
CLK("davinci-asp.0", NULL, &asp0_clk),
|
CLK("davinci-mcbsp.0", NULL, &asp0_clk),
|
||||||
CLK("davinci-asp.1", NULL, &asp1_clk),
|
CLK("davinci-mcbsp.1", NULL, &asp1_clk),
|
||||||
CLK("davinci_mmc.0", NULL, &mmcsd0_clk),
|
CLK("davinci_mmc.0", NULL, &mmcsd0_clk),
|
||||||
CLK("davinci_mmc.1", NULL, &mmcsd1_clk),
|
CLK("davinci_mmc.1", NULL, &mmcsd1_clk),
|
||||||
CLK("spi_davinci.0", NULL, &spi0_clk),
|
CLK("spi_davinci.0", NULL, &spi0_clk),
|
||||||
|
@ -664,7 +664,7 @@ static struct resource dm355_asp1_resources[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device dm355_asp1_device = {
|
static struct platform_device dm355_asp1_device = {
|
||||||
.name = "davinci-asp",
|
.name = "davinci-mcbsp",
|
||||||
.id = 1,
|
.id = 1,
|
||||||
.num_resources = ARRAY_SIZE(dm355_asp1_resources),
|
.num_resources = ARRAY_SIZE(dm355_asp1_resources),
|
||||||
.resource = dm355_asp1_resources,
|
.resource = dm355_asp1_resources,
|
||||||
|
|
|
@ -459,7 +459,7 @@ static struct clk_lookup dm365_clks[] = {
|
||||||
CLK(NULL, "usb", &usb_clk),
|
CLK(NULL, "usb", &usb_clk),
|
||||||
CLK("davinci_emac.1", NULL, &emac_clk),
|
CLK("davinci_emac.1", NULL, &emac_clk),
|
||||||
CLK("davinci_voicecodec", NULL, &voicecodec_clk),
|
CLK("davinci_voicecodec", NULL, &voicecodec_clk),
|
||||||
CLK("davinci-asp.0", NULL, &asp0_clk),
|
CLK("davinci-mcbsp", NULL, &asp0_clk),
|
||||||
CLK(NULL, "rto", &rto_clk),
|
CLK(NULL, "rto", &rto_clk),
|
||||||
CLK(NULL, "mjcp", &mjcp_clk),
|
CLK(NULL, "mjcp", &mjcp_clk),
|
||||||
CLK(NULL, NULL, NULL),
|
CLK(NULL, NULL, NULL),
|
||||||
|
@ -922,8 +922,8 @@ static struct resource dm365_asp_resources[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device dm365_asp_device = {
|
static struct platform_device dm365_asp_device = {
|
||||||
.name = "davinci-asp",
|
.name = "davinci-mcbsp",
|
||||||
.id = 0,
|
.id = -1,
|
||||||
.num_resources = ARRAY_SIZE(dm365_asp_resources),
|
.num_resources = ARRAY_SIZE(dm365_asp_resources),
|
||||||
.resource = dm365_asp_resources,
|
.resource = dm365_asp_resources,
|
||||||
};
|
};
|
||||||
|
|
|
@ -302,7 +302,7 @@ static struct clk_lookup dm644x_clks[] = {
|
||||||
CLK("davinci_emac.1", NULL, &emac_clk),
|
CLK("davinci_emac.1", NULL, &emac_clk),
|
||||||
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
CLK("i2c_davinci.1", NULL, &i2c_clk),
|
||||||
CLK("palm_bk3710", NULL, &ide_clk),
|
CLK("palm_bk3710", NULL, &ide_clk),
|
||||||
CLK("davinci-asp", NULL, &asp_clk),
|
CLK("davinci-mcbsp", NULL, &asp_clk),
|
||||||
CLK("davinci_mmc.0", NULL, &mmcsd_clk),
|
CLK("davinci_mmc.0", NULL, &mmcsd_clk),
|
||||||
CLK(NULL, "spi", &spi_clk),
|
CLK(NULL, "spi", &spi_clk),
|
||||||
CLK(NULL, "gpio", &gpio_clk),
|
CLK(NULL, "gpio", &gpio_clk),
|
||||||
|
@ -580,7 +580,7 @@ static struct resource dm644x_asp_resources[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device dm644x_asp_device = {
|
static struct platform_device dm644x_asp_device = {
|
||||||
.name = "davinci-asp",
|
.name = "davinci-mcbsp",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.num_resources = ARRAY_SIZE(dm644x_asp_resources),
|
.num_resources = ARRAY_SIZE(dm644x_asp_resources),
|
||||||
.resource = dm644x_asp_resources,
|
.resource = dm644x_asp_resources,
|
||||||
|
|
|
@ -3905,6 +3905,8 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
snd_soc_codec_set_drvdata(codec, wm8994);
|
snd_soc_codec_set_drvdata(codec, wm8994);
|
||||||
|
|
||||||
|
codec->reg_cache = &wm8994->reg_cache;
|
||||||
|
|
||||||
wm8994->pdata = dev_get_platdata(codec->dev->parent);
|
wm8994->pdata = dev_get_platdata(codec->dev->parent);
|
||||||
wm8994->codec = codec;
|
wm8994->codec = codec;
|
||||||
|
|
||||||
|
|
|
@ -158,12 +158,23 @@ static int evm_aic3x_init(struct snd_soc_pcm_runtime *rtd)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* davinci-evm digital audio interface glue - connects codec <--> CPU */
|
/* davinci-evm digital audio interface glue - connects codec <--> CPU */
|
||||||
static struct snd_soc_dai_link evm_dai = {
|
static struct snd_soc_dai_link dm6446_evm_dai = {
|
||||||
.name = "TLV320AIC3X",
|
.name = "TLV320AIC3X",
|
||||||
.stream_name = "AIC3X",
|
.stream_name = "AIC3X",
|
||||||
.cpu_dai_name = "davinci-mcasp.0",
|
.cpu_dai_name = "davinci-mcbsp",
|
||||||
.codec_dai_name = "tlv320aic3x-hifi",
|
.codec_dai_name = "tlv320aic3x-hifi",
|
||||||
.codec_name = "tlv320aic3x-codec.0-001a",
|
.codec_name = "tlv320aic3x-codec.1-001b",
|
||||||
|
.platform_name = "davinci-pcm-audio",
|
||||||
|
.init = evm_aic3x_init,
|
||||||
|
.ops = &evm_ops,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct snd_soc_dai_link dm355_evm_dai = {
|
||||||
|
.name = "TLV320AIC3X",
|
||||||
|
.stream_name = "AIC3X",
|
||||||
|
.cpu_dai_name = "davinci-mcbsp.1",
|
||||||
|
.codec_dai_name = "tlv320aic3x-hifi",
|
||||||
|
.codec_name = "tlv320aic3x-codec.1-001b",
|
||||||
.platform_name = "davinci-pcm-audio",
|
.platform_name = "davinci-pcm-audio",
|
||||||
.init = evm_aic3x_init,
|
.init = evm_aic3x_init,
|
||||||
.ops = &evm_ops,
|
.ops = &evm_ops,
|
||||||
|
@ -173,10 +184,10 @@ static struct snd_soc_dai_link dm365_evm_dai = {
|
||||||
#ifdef CONFIG_SND_DM365_AIC3X_CODEC
|
#ifdef CONFIG_SND_DM365_AIC3X_CODEC
|
||||||
.name = "TLV320AIC3X",
|
.name = "TLV320AIC3X",
|
||||||
.stream_name = "AIC3X",
|
.stream_name = "AIC3X",
|
||||||
.cpu_dai_name = "davinci-i2s",
|
.cpu_dai_name = "davinci-mcbsp",
|
||||||
.codec_dai_name = "tlv320aic3x-hifi",
|
.codec_dai_name = "tlv320aic3x-hifi",
|
||||||
.init = evm_aic3x_init,
|
.init = evm_aic3x_init,
|
||||||
.codec_name = "tlv320aic3x-codec.0-001a",
|
.codec_name = "tlv320aic3x-codec.1-0018",
|
||||||
.ops = &evm_ops,
|
.ops = &evm_ops,
|
||||||
#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
|
#elif defined(CONFIG_SND_DM365_VOICE_CODEC)
|
||||||
.name = "Voice Codec - CQ93VC",
|
.name = "Voice Codec - CQ93VC",
|
||||||
|
@ -220,10 +231,17 @@ static struct snd_soc_dai_link da8xx_evm_dai = {
|
||||||
.ops = &evm_ops,
|
.ops = &evm_ops,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* davinci dm6446, dm355 evm audio machine driver */
|
/* davinci dm6446 evm audio machine driver */
|
||||||
static struct snd_soc_card snd_soc_card_evm = {
|
static struct snd_soc_card dm6446_snd_soc_card_evm = {
|
||||||
.name = "DaVinci EVM",
|
.name = "DaVinci DM6446 EVM",
|
||||||
.dai_link = &evm_dai,
|
.dai_link = &dm6446_evm_dai,
|
||||||
|
.num_links = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* davinci dm355 evm audio machine driver */
|
||||||
|
static struct snd_soc_card dm355_snd_soc_card_evm = {
|
||||||
|
.name = "DaVinci DM355 EVM",
|
||||||
|
.dai_link = &dm355_evm_dai,
|
||||||
.num_links = 1,
|
.num_links = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -262,10 +280,10 @@ static int __init evm_init(void)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (machine_is_davinci_evm()) {
|
if (machine_is_davinci_evm()) {
|
||||||
evm_snd_dev_data = &snd_soc_card_evm;
|
evm_snd_dev_data = &dm6446_snd_soc_card_evm;
|
||||||
index = 0;
|
index = 0;
|
||||||
} else if (machine_is_davinci_dm355_evm()) {
|
} else if (machine_is_davinci_dm355_evm()) {
|
||||||
evm_snd_dev_data = &snd_soc_card_evm;
|
evm_snd_dev_data = &dm355_snd_soc_card_evm;
|
||||||
index = 1;
|
index = 1;
|
||||||
} else if (machine_is_davinci_dm365_evm()) {
|
} else if (machine_is_davinci_dm365_evm()) {
|
||||||
evm_snd_dev_data = &dm365_snd_soc_card_evm;
|
evm_snd_dev_data = &dm365_snd_soc_card_evm;
|
||||||
|
|
|
@ -426,9 +426,6 @@ static int davinci_i2s_hw_params(struct snd_pcm_substream *substream,
|
||||||
snd_pcm_format_t fmt;
|
snd_pcm_format_t fmt;
|
||||||
unsigned element_cnt = 1;
|
unsigned element_cnt = 1;
|
||||||
|
|
||||||
dai->capture_dma_data = dev->dma_params;
|
|
||||||
dai->playback_dma_data = dev->dma_params;
|
|
||||||
|
|
||||||
/* general line settings */
|
/* general line settings */
|
||||||
spcr = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SPCR_REG);
|
spcr = davinci_mcbsp_read_reg(dev, DAVINCI_MCBSP_SPCR_REG);
|
||||||
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
|
if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
|
||||||
|
@ -601,6 +598,15 @@ static int davinci_i2s_trigger(struct snd_pcm_substream *substream, int cmd,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int davinci_i2s_startup(struct snd_pcm_substream *substream,
|
||||||
|
struct snd_soc_dai *dai)
|
||||||
|
{
|
||||||
|
struct davinci_mcbsp_dev *dev = snd_soc_dai_get_drvdata(dai);
|
||||||
|
|
||||||
|
snd_soc_dai_set_dma_data(dai, substream, dev->dma_params);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void davinci_i2s_shutdown(struct snd_pcm_substream *substream,
|
static void davinci_i2s_shutdown(struct snd_pcm_substream *substream,
|
||||||
struct snd_soc_dai *dai)
|
struct snd_soc_dai *dai)
|
||||||
{
|
{
|
||||||
|
@ -612,6 +618,7 @@ static void davinci_i2s_shutdown(struct snd_pcm_substream *substream,
|
||||||
#define DAVINCI_I2S_RATES SNDRV_PCM_RATE_8000_96000
|
#define DAVINCI_I2S_RATES SNDRV_PCM_RATE_8000_96000
|
||||||
|
|
||||||
static struct snd_soc_dai_ops davinci_i2s_dai_ops = {
|
static struct snd_soc_dai_ops davinci_i2s_dai_ops = {
|
||||||
|
.startup = davinci_i2s_startup,
|
||||||
.shutdown = davinci_i2s_shutdown,
|
.shutdown = davinci_i2s_shutdown,
|
||||||
.prepare = davinci_i2s_prepare,
|
.prepare = davinci_i2s_prepare,
|
||||||
.trigger = davinci_i2s_trigger,
|
.trigger = davinci_i2s_trigger,
|
||||||
|
@ -749,7 +756,7 @@ static struct platform_driver davinci_mcbsp_driver = {
|
||||||
.probe = davinci_i2s_probe,
|
.probe = davinci_i2s_probe,
|
||||||
.remove = davinci_i2s_remove,
|
.remove = davinci_i2s_remove,
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "davinci-i2s",
|
.name = "davinci-mcbsp",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -715,9 +715,6 @@ static int davinci_mcasp_hw_params(struct snd_pcm_substream *substream,
|
||||||
int word_length;
|
int word_length;
|
||||||
u8 fifo_level;
|
u8 fifo_level;
|
||||||
|
|
||||||
cpu_dai->capture_dma_data = dev->dma_params;
|
|
||||||
cpu_dai->playback_dma_data = dev->dma_params;
|
|
||||||
|
|
||||||
davinci_hw_common_param(dev, substream->stream);
|
davinci_hw_common_param(dev, substream->stream);
|
||||||
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
|
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
|
||||||
fifo_level = dev->txnumevt;
|
fifo_level = dev->txnumevt;
|
||||||
|
@ -799,7 +796,17 @@ static int davinci_mcasp_trigger(struct snd_pcm_substream *substream,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int davinci_mcasp_startup(struct snd_pcm_substream *substream,
|
||||||
|
struct snd_soc_dai *dai)
|
||||||
|
{
|
||||||
|
struct davinci_audio_dev *dev = snd_soc_dai_get_drvdata(dai);
|
||||||
|
|
||||||
|
snd_soc_dai_set_dma_data(dai, substream, dev->dma_params);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static struct snd_soc_dai_ops davinci_mcasp_dai_ops = {
|
static struct snd_soc_dai_ops davinci_mcasp_dai_ops = {
|
||||||
|
.startup = davinci_mcasp_startup,
|
||||||
.trigger = davinci_mcasp_trigger,
|
.trigger = davinci_mcasp_trigger,
|
||||||
.hw_params = davinci_mcasp_hw_params,
|
.hw_params = davinci_mcasp_hw_params,
|
||||||
.set_fmt = davinci_mcasp_set_dai_fmt,
|
.set_fmt = davinci_mcasp_set_dai_fmt,
|
||||||
|
|
|
@ -84,7 +84,7 @@ static struct snd_soc_ops sffsdr_ops = {
|
||||||
static struct snd_soc_dai_link sffsdr_dai = {
|
static struct snd_soc_dai_link sffsdr_dai = {
|
||||||
.name = "PCM3008", /* Codec name */
|
.name = "PCM3008", /* Codec name */
|
||||||
.stream_name = "PCM3008 HiFi",
|
.stream_name = "PCM3008 HiFi",
|
||||||
.cpu_dai_name = "davinci-asp.0",
|
.cpu_dai_name = "davinci-mcbsp",
|
||||||
.codec_dai_name = "pcm3008-hifi",
|
.codec_dai_name = "pcm3008-hifi",
|
||||||
.codec_name = "pcm3008-codec",
|
.codec_name = "pcm3008-codec",
|
||||||
.platform_name = "davinci-pcm-audio",
|
.platform_name = "davinci-pcm-audio",
|
||||||
|
|
|
@ -97,9 +97,6 @@ static int davinci_vcif_hw_params(struct snd_pcm_substream *substream,
|
||||||
&davinci_vcif_dev->dma_params[substream->stream];
|
&davinci_vcif_dev->dma_params[substream->stream];
|
||||||
u32 w;
|
u32 w;
|
||||||
|
|
||||||
dai->capture_dma_data = davinci_vcif_dev->dma_params;
|
|
||||||
dai->playback_dma_data = davinci_vcif_dev->dma_params;
|
|
||||||
|
|
||||||
/* Restart the codec before setup */
|
/* Restart the codec before setup */
|
||||||
davinci_vcif_stop(substream);
|
davinci_vcif_stop(substream);
|
||||||
davinci_vcif_start(substream);
|
davinci_vcif_start(substream);
|
||||||
|
@ -174,9 +171,19 @@ static int davinci_vcif_trigger(struct snd_pcm_substream *substream, int cmd,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int davinci_vcif_startup(struct snd_pcm_substream *substream,
|
||||||
|
struct snd_soc_dai *dai)
|
||||||
|
{
|
||||||
|
struct davinci_vcif_dev *dev = snd_soc_dai_get_drvdata(dai);
|
||||||
|
|
||||||
|
snd_soc_dai_set_dma_data(dai, substream, dev->dma_params);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#define DAVINCI_VCIF_RATES SNDRV_PCM_RATE_8000_48000
|
#define DAVINCI_VCIF_RATES SNDRV_PCM_RATE_8000_48000
|
||||||
|
|
||||||
static struct snd_soc_dai_ops davinci_vcif_dai_ops = {
|
static struct snd_soc_dai_ops davinci_vcif_dai_ops = {
|
||||||
|
.startup = davinci_vcif_startup,
|
||||||
.trigger = davinci_vcif_trigger,
|
.trigger = davinci_vcif_trigger,
|
||||||
.hw_params = davinci_vcif_hw_params,
|
.hw_params = davinci_vcif_hw_params,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue