[alsa-devel] Driver for AK4555 codec
Hi,
For a system here at work, we have a simple audio system consisting of an I2S-bus audio controller embedded in the CPU (an NXP LPC3250) and a AK4555 codec which communicates with the CPU through the I2S-bus and produces (or captures) analog signals. The codec is extremely simple; it is basically an A/D & D/A converter and it doesn't support a control interface such as I2C.
There is a driver available for the LPC3250 but none for the AK4555 codec, so I have to write it myself. I checked the document "Writing an ALSA Driver" by Takashi Iwai but it seems to focus on full-featured sound cards; I'm just dealing with a "simple" codec. I checked at the code of the uda1380 in linux/sound/soc/lpc3xxx/lpc3xxx-uda1380.c and it seems to be calling some functions like platform_device_alloc, platform_set_drvdata,... but I can't find the documentation of what these functions do.
Can someone give me some pointers to some documentation or some rough idea of how it needs to be done?
Thank you, Yoran
On Thu, Jul 29, 2010 at 09:18:43AM +0200, Yoran Brondsema wrote:
There is a driver available for the LPC3250 but none for the AK4555 codec, so I have to write it myself. I checked the document "Writing an ALSA Driver" by Takashi Iwai but it seems to focus on full-featured sound cards; I'm just dealing with a "simple" codec. I checked at the code of the uda1380 in linux/sound/soc/lpc3xxx/lpc3xxx-uda1380.c and it seems to be calling some functions like platform_device_alloc, platform_set_drvdata,... but I can't find the documentation of what these functions do.
Can someone give me some pointers to some documentation or some rough idea of how it needs to be done?
The documentation for ASoC is in:
Documentation/sound/alsa/soc
which should give you a reasonable structural overview of things.
Probably the easiest thing for you to do is to clone the driver for a simple I2C controlled CODEC such as the WM8523 and then replace all the specifics of the register access with those for your CODEC.
participants (2)
-
Mark Brown
-
Yoran Brondsema