[alsa-devel] AT32AP7000 (AVR32) + WM8510
Geoffrey Wossum
geoffrey at pager.net
Thu May 22 21:57:41 CEST 2008
On Thursday 22 May 2008 02:46:21 pm Mark Brown wrote:
> On Thu, May 22, 2008 at 11:20:08AM -0500, Geoffrey Wossum wrote:
> Check that all the required DAPM widgets are powered up by looking in
> /sys/bus/platform/devices/soc-audio/dapm_widget during playback - if
> they aren't then enabling DAPM_DEBUG in sound/soc/soc-dapm.c will make
> DAPM display information about the decisions it's making. If you can't
> see anything there could you please supply a register dump from during
> playback (availible in /sys/bus/platform/devices/soc-audio/codec_reg)?
Here's the DAPM widgets when I'm trying to play a file with aplay:
Ext Spk: On
Int Mic: Off
Mic Bias: Off
Boost Mixer: Off
Mic Boost: Off
Aux Boost: Off
Mic PGA: Off
Mono Out: Off
SpkP Out: On
SpkN Out: On
Aux Input: Off
ADC: Off
DAC: On
Mono Mixer: Off
Speaker Mixer: On
PM State: D0
Looks like it should work to me. Note that I do hear a pop from the speaker
the first time I try to play a file. Here's a dump of the registers while
I'm trying to play a file with aplay. I'm combing through them right now to
see if I can find anything that looks off.
WM8510 registers
0: 0
1: 1ff
2: 1ff
3: 1ff
4: 10
5: 0
6: 151
7: 0
8: 0
9: 0
a: 0
b: ff
c: 0
d: 0
e: 100
f: ff
10: 0
11: 0
12: 12c
13: 2c
14: 2c
15: 2c
16: 2c
17: 0
18: 32
19: 0
1a: 0
1b: 0
1c: 0
1d: 0
1e: 0
1f: 0
20: 38
21: b
22: 32
23: 0
24: 7
25: 2f
26: e7
27: 10a
28: 0
29: 0
2a: 0
2b: 0
2c: 3
2d: 10
2e: 0
2f: 0
30: 0
31: 2
32: 1
33: 0
34: 0
35: 0
36: 39
37: 0
38: 0
-snip-
Bunch of bogus register reads equal to ffffffff after here.
Wish I had known about this register dump earlier today. I added code to do
the same thing with debugfs.
> > @@ -597,14 +597,14 @@ struct snd_soc_codec_dai wm8510_dai = {
> > .name = "WM8510 HiFi",
> > .playback = {
> > .stream_name = "Playback",
> > - .channels_min = 1,
> > - .channels_max = 1,
> > + .channels_min = 2,
> > + .channels_max = 2,
> > .rates = WM8510_RATES,
>
> I'll need to check this out in more detail - the WM8510 is a mono codec
> so it can only play one channel.
Not sure about this either, since I can't get it to play anything yet. But it
looks from the WM8510 data sheet that even though the WM8510 is mono, it
expects a stereo I2S stream, and just ignores one of the channels based on
the value of DACLRSWAP register bit.
Thanks,
---
Geoffrey
More information about the Alsa-devel
mailing list