On Mon, Oct 20, 2008 at 3:24 PM, Mark Brown broonie@sirena.org.uk wrote:
On Mon, Oct 20, 2008 at 03:16:27PM +0200, John Kacur wrote:
...but I'm still scratching my head when I look at files like sound/soc/s3c24xx/s3c24xx-pcm.c It appears to be part of the DAI that connects the i2s driver and
No, there is no direct connection between any of the platform drivers and the codec drivers - the platform drivers will be configured to produce and understand signals on I2S as configured by a combination of the machine drivers and core. The codec will be configured compatibly but at no point should the codec and platform drivers directly know anything about each other.
codec together? So, back to my current source of confusion, do I need to implement some basic kind of pcm driver for my scenario?
There should be at least a stub platform driver. The driver is responsible for things that apply over the entire platform - for most platforms this is DMA since the DMA control is the same for all the different audio interfaces the platform has.
This is nothing to do with creating a card, that is initiated by the machine driver.
Here is the outline of my design. So, if I understand you correctly, my jade-pcm.c file is just for implementing dma. Basically, I have a simple scenario there is no capture, just read a wav file from user space, transport it through i2s to the codec.
Machine Code (Jade) ------------------- jade-xxsvideo.c jade-xxsvideo.h
Platform Code ------------- jade-pcm.c jade-pcm.h
DAI (Digital Audio Interface) ----------------------------- .cpu_dai = &jade_i2s_dai jade-i2s.c jade-i2s.h .codec_dai = &max5556_dai max5556.c max5556.h
Codec Code (MAX5556ESA_M, TDA7052BT/N1, TDA8551T) -------------------------------------------------- max5556.c max5556.h