You may need to adjust the RCMR, RFRM, TCMR, TFRM register settings in
sound/soc/at91/at91- ssc.c to send the data in the mode that your codec expects. I have only tested I2S and DSP_A modes with S16_LE data. It's fairly easy to add new modes.
This is certainly part of the problem. I probed the clocks and the frame sync lines and they are fine for the most part. However, I can tell from the output that I need to change the default on TD0 to '1' for starters. I also think that I need to change the format so that the atmel board reads on the falling edge after sync. I think it already writes on the rising edge, but will have to see. Also, the width of the sync is one period of the bitclock....and I need at least two, so I will need to change that.
Fortunately, I have done a lot of grunt work already in writing my basic ssc driver for that codec. Now I have to dig into at91-ssc.c to see how to modify that.
pcm.!default { type hw card 0 } pcm.hw { type hw card 0 device 0 subdevice 0 } ctl.!default { type hw card 0 } ctl.hw { type hw card 0 }
The bare bones conf is not working for me and I am getting:
/usr/share/alsa $ aplay -l **** List of PLAYBACK Hardware Devices **** ALSA lib conf.c:3949:(snd_config_expand) Unknown parameters 0 ALSA lib control.c:909:(snd_ctl_open_noupdate) Invalid CTL hw:0 aplay: device_list:213: control open (0): Invalid argument
For whatever reason, the default conf file is letting me use speaker-test, so I can work on debugging the format for now. I am using alsa-lib-1.0.14aand alsa-utils-1.0.14, so I am not sure if that makes a difference. If anyone on the list has a bare bones conf for a simple pcm codec, I would appreciate some tips on why this one is not working.
Thanks Frank. I am gonna dig into at91-ssc.c now.
Paul