aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/atmel
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/atmel')
-rw-r--r--sound/soc/atmel/Kconfig2
-rw-r--r--sound/soc/atmel/atmel_ssc_dai.c13
-rw-r--r--sound/soc/atmel/sam9g20_wm8731.c20
3 files changed, 17 insertions, 18 deletions
diff --git a/sound/soc/atmel/Kconfig b/sound/soc/atmel/Kconfig
index e634eb78ed03..4789619a52d8 100644
--- a/sound/soc/atmel/Kconfig
+++ b/sound/soc/atmel/Kconfig
@@ -58,6 +58,6 @@ config SND_AT91_SOC_AFEB9260
58 depends on ARCH_AT91 && ATMEL_SSC && ARCH_AT91 && MACH_AFEB9260 && SND_ATMEL_SOC 58 depends on ARCH_AT91 && ATMEL_SSC && ARCH_AT91 && MACH_AFEB9260 && SND_ATMEL_SOC
59 select SND_ATMEL_SOC_PDC 59 select SND_ATMEL_SOC_PDC
60 select SND_ATMEL_SOC_SSC 60 select SND_ATMEL_SOC_SSC
61 select SND_SOC_TLV320AIC23 61 select SND_SOC_TLV320AIC23_I2C
62 help 62 help
63 Say Y here to support sound on AFEB9260 board. 63 Say Y here to support sound on AFEB9260 board.
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c
index 1ead3c977a51..de433cfd044c 100644
--- a/sound/soc/atmel/atmel_ssc_dai.c
+++ b/sound/soc/atmel/atmel_ssc_dai.c
@@ -341,6 +341,7 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream,
341{ 341{
342 int id = dai->id; 342 int id = dai->id;
343 struct atmel_ssc_info *ssc_p = &ssc_info[id]; 343 struct atmel_ssc_info *ssc_p = &ssc_info[id];
344 struct ssc_device *ssc = ssc_p->ssc;
344 struct atmel_pcm_dma_params *dma_params; 345 struct atmel_pcm_dma_params *dma_params;
345 int dir, channels, bits; 346 int dir, channels, bits;
346 u32 tfmr, rfmr, tcmr, rcmr; 347 u32 tfmr, rfmr, tcmr, rcmr;
@@ -466,7 +467,8 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream,
466 | SSC_BF(RCMR_START, start_event) 467 | SSC_BF(RCMR_START, start_event)
467 | SSC_BF(RCMR_CKI, SSC_CKI_RISING) 468 | SSC_BF(RCMR_CKI, SSC_CKI_RISING)
468 | SSC_BF(RCMR_CKO, SSC_CKO_NONE) 469 | SSC_BF(RCMR_CKO, SSC_CKO_NONE)
469 | SSC_BF(RCMR_CKS, SSC_CKS_CLOCK); 470 | SSC_BF(RCMR_CKS, ssc->clk_from_rk_pin ?
471 SSC_CKS_PIN : SSC_CKS_CLOCK);
470 472
471 rfmr = SSC_BF(RFMR_FSEDGE, SSC_FSEDGE_POSITIVE) 473 rfmr = SSC_BF(RFMR_FSEDGE, SSC_FSEDGE_POSITIVE)
472 | SSC_BF(RFMR_FSOS, SSC_FSOS_NONE) 474 | SSC_BF(RFMR_FSOS, SSC_FSOS_NONE)
@@ -481,7 +483,8 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream,
481 | SSC_BF(TCMR_START, start_event) 483 | SSC_BF(TCMR_START, start_event)
482 | SSC_BF(TCMR_CKI, SSC_CKI_FALLING) 484 | SSC_BF(TCMR_CKI, SSC_CKI_FALLING)
483 | SSC_BF(TCMR_CKO, SSC_CKO_NONE) 485 | SSC_BF(TCMR_CKO, SSC_CKO_NONE)
484 | SSC_BF(TCMR_CKS, SSC_CKS_PIN); 486 | SSC_BF(TCMR_CKS, ssc->clk_from_rk_pin ?
487 SSC_CKS_CLOCK : SSC_CKS_PIN);
485 488
486 tfmr = SSC_BF(TFMR_FSEDGE, SSC_FSEDGE_POSITIVE) 489 tfmr = SSC_BF(TFMR_FSEDGE, SSC_FSEDGE_POSITIVE)
487 | SSC_BF(TFMR_FSDEN, 0) 490 | SSC_BF(TFMR_FSDEN, 0)
@@ -550,7 +553,8 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream,
550 | SSC_BF(RCMR_START, SSC_START_RISING_RF) 553 | SSC_BF(RCMR_START, SSC_START_RISING_RF)
551 | SSC_BF(RCMR_CKI, SSC_CKI_RISING) 554 | SSC_BF(RCMR_CKI, SSC_CKI_RISING)
552 | SSC_BF(RCMR_CKO, SSC_CKO_NONE) 555 | SSC_BF(RCMR_CKO, SSC_CKO_NONE)
553 | SSC_BF(RCMR_CKS, SSC_CKS_PIN); 556 | SSC_BF(RCMR_CKS, ssc->clk_from_rk_pin ?
557 SSC_CKS_PIN : SSC_CKS_CLOCK);
554 558
555 rfmr = SSC_BF(RFMR_FSEDGE, SSC_FSEDGE_POSITIVE) 559 rfmr = SSC_BF(RFMR_FSEDGE, SSC_FSEDGE_POSITIVE)
556 | SSC_BF(RFMR_FSOS, SSC_FSOS_NONE) 560 | SSC_BF(RFMR_FSOS, SSC_FSOS_NONE)
@@ -565,7 +569,8 @@ static int atmel_ssc_hw_params(struct snd_pcm_substream *substream,
565 | SSC_BF(TCMR_START, SSC_START_RISING_RF) 569 | SSC_BF(TCMR_START, SSC_START_RISING_RF)
566 | SSC_BF(TCMR_CKI, SSC_CKI_FALLING) 570 | SSC_BF(TCMR_CKI, SSC_CKI_FALLING)
567 | SSC_BF(TCMR_CKO, SSC_CKO_NONE) 571 | SSC_BF(TCMR_CKO, SSC_CKO_NONE)
568 | SSC_BF(TCMR_CKS, SSC_CKS_PIN); 572 | SSC_BF(RCMR_CKS, ssc->clk_from_rk_pin ?
573 SSC_CKS_CLOCK : SSC_CKS_PIN);
569 574
570 tfmr = SSC_BF(TFMR_FSEDGE, SSC_FSEDGE_POSITIVE) 575 tfmr = SSC_BF(TFMR_FSEDGE, SSC_FSEDGE_POSITIVE)
571 | SSC_BF(TFMR_FSDEN, 0) 576 | SSC_BF(TFMR_FSDEN, 0)
diff --git a/sound/soc/atmel/sam9g20_wm8731.c b/sound/soc/atmel/sam9g20_wm8731.c
index f15bff1548f8..174bd546c08b 100644
--- a/sound/soc/atmel/sam9g20_wm8731.c
+++ b/sound/soc/atmel/sam9g20_wm8731.c
@@ -155,25 +155,14 @@ static int at91sam9g20ek_wm8731_init(struct snd_soc_pcm_runtime *rtd)
155 return ret; 155 return ret;
156 } 156 }
157 157
158 /* Add specific widgets */
159 snd_soc_dapm_new_controls(dapm, at91sam9g20ek_dapm_widgets,
160 ARRAY_SIZE(at91sam9g20ek_dapm_widgets));
161 /* Set up specific audio path interconnects */
162 snd_soc_dapm_add_routes(dapm, intercon, ARRAY_SIZE(intercon));
163
164 /* not connected */ 158 /* not connected */
165 snd_soc_dapm_nc_pin(dapm, "RLINEIN"); 159 snd_soc_dapm_nc_pin(dapm, "RLINEIN");
166 snd_soc_dapm_nc_pin(dapm, "LLINEIN"); 160 snd_soc_dapm_nc_pin(dapm, "LLINEIN");
167 161
168#ifdef ENABLE_MIC_INPUT 162#ifndef ENABLE_MIC_INPUT
169 snd_soc_dapm_enable_pin(dapm, "Int Mic"); 163 snd_soc_dapm_nc_pin(&rtd->card->dapm, "Int Mic");
170#else
171 snd_soc_dapm_nc_pin(dapm, "Int Mic");
172#endif 164#endif
173 165
174 /* always connected */
175 snd_soc_dapm_enable_pin(dapm, "Ext Spk");
176
177 return 0; 166 return 0;
178} 167}
179 168
@@ -194,6 +183,11 @@ static struct snd_soc_card snd_soc_at91sam9g20ek = {
194 .dai_link = &at91sam9g20ek_dai, 183 .dai_link = &at91sam9g20ek_dai,
195 .num_links = 1, 184 .num_links = 1,
196 .set_bias_level = at91sam9g20ek_set_bias_level, 185 .set_bias_level = at91sam9g20ek_set_bias_level,
186
187 .dapm_widgets = at91sam9g20ek_dapm_widgets,
188 .num_dapm_widgets = ARRAY_SIZE(at91sam9g20ek_dapm_widgets),
189 .dapm_routes = intercon,
190 .num_dapm_routes = ARRAY_SIZE(intercon),
197}; 191};
198 192
199static int at91sam9g20ek_audio_probe(struct platform_device *pdev) 193static int at91sam9g20ek_audio_probe(struct platform_device *pdev)