Hello again Liam,
Frank has written a codec driver for a dumb BT codec (attached and link below). This could be renamed and with a little string changes could be used as a generic dumb codec driver.
http://opensource.wolfsonmicro.com/~lg/tmp/asoc-codec-bluecore.patch
I would use the eti_b1_wm8731.c as an example machine driver for your board. You will need to replace any WM8731 references and add your boards own specific clocks, gpio's etc.
I am able to build a soc driver for my hardware using the bluecore codec driver and et1_b1_wm8731 machine code as examples.
The driver gets recognized by alsa at startup. The ssc registers are set correctly but my original problem still remains. I can play random noise with test/pcm_min but with test/pcm the alsa lib returns a period_size of 0, despite the fact I set period_time to 100000.
I start to suspect that I have a problem with alsa lib. How did you cross compile alsa lib för the at91?
Michel