diff options
Diffstat (limited to 'sound/soc/atmel')
-rw-r--r-- | sound/soc/atmel/Kconfig | 2 | ||||
-rw-r--r-- | sound/soc/atmel/atmel_ssc_dai.c | 13 | ||||
-rw-r--r-- | sound/soc/atmel/sam9g20_wm8731.c | 20 |
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 | ||
199 | static int at91sam9g20ek_audio_probe(struct platform_device *pdev) | 193 | static int at91sam9g20ek_audio_probe(struct platform_device *pdev) |