ASoC: apq8064-i2s: Add machine driver for APQ8064 I2S.

This machine driver implements the topology which voice
downlink/uplink streams from/to MDM are received via primary
spkr/mic I2S interfaces and internally loop back within LPASS
to MI2S interface with the other end connected to wcd9310
CODEC.

Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
(cherry picked from commit 80f8ec49294e9698751a5afd8c33fb327f8f5b6a)
(cherry picked from commit bf8f93bc69fb3e6a7333525249984212271ca3ad)

Change-Id: I2d9140c49d14f172ae402d738ab3b6b523250486
Signed-off-by: Sudhir Sharma <sudsha@codeaurora.org>
This commit is contained in:
Kuirong Wang 2012-06-21 17:27:43 -07:00 committed by Stephen Boyd
parent 9f7844b097
commit da5359c53d
4 changed files with 2816 additions and 7 deletions

View file

@ -62,7 +62,7 @@ obj-$(CONFIG_SND_SOC_VOICE) += msm-pcm-voice.o msm-pcm-voip.o
snd-soc-qdsp6-objs += msm-pcm-lpa.o msm-pcm-afe.o
obj-$(CONFIG_SND_SOC_QDSP6) += snd-soc-qdsp6.o
snd-soc-msm8960-objs := msm8960.o apq8064.o msm8930.o mpq8064.o
snd-soc-msm8960-objs := msm8960.o apq8064.o msm8930.o mpq8064.o apq8064-i2s.o
obj-$(CONFIG_SND_SOC_MSM8960) += snd-soc-msm8960.o
# Generic MSM drivers

2808
sound/soc/msm/apq8064-i2s.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -2099,7 +2099,7 @@ static struct snd_soc_dai_link msm_dai[] = {
},
};
struct snd_soc_card snd_soc_card_msm = {
static struct snd_soc_card snd_soc_card_msm = {
.name = "apq8064-tabla-snd-card",
.dai_link = msm_dai,
.num_links = ARRAY_SIZE(msm_dai),
@ -2166,9 +2166,10 @@ static void msm_free_headset_mic_gpios(void)
static int __init msm_audio_init(void)
{
int ret;
if (!cpu_is_apq8064() || (socinfo_get_id() == 130)) {
pr_err("%s: Not the right machine type\n", __func__);
u32 version = socinfo_get_platform_version();
if (!cpu_is_apq8064() || (socinfo_get_id() == 130) ||
SOCINFO_VERSION_MINOR(version) == 1) {
pr_info("%s: Not APQ8064 in SLIMBUS mode\n", __func__);
return -ENODEV;
}

View file

@ -938,7 +938,7 @@ static struct snd_soc_dai_link msm_dai[] = {
},
};
struct snd_soc_card snd_soc_card_msm = {
static struct snd_soc_card snd_soc_card_msm = {
.name = "msm8974-taiko-snd-card",
.dai_link = msm_dai,
.num_links = ARRAY_SIZE(msm_dai),
@ -960,7 +960,7 @@ static int __init msm_audio_init(void)
mutex_init(&cdc_mclk_mutex);
if (!machine_is_msm8974_sim()) {
pr_err("%s: Not the right machine type\n", __func__);
pr_info("%s: Not msm8974 machine type\n", __func__);
return -ENODEV;
}
msm_snd_device = platform_device_alloc("soc-audio", 0);