This is not ideal and leads to code duplication - for example, Linux had different wm drivers for 4 different SoC platforms. There was no standard method to signal user initiated audio events e. These are quite common events on portable devices and often require machine specific code to re-route audio, enable amps, etc. Drivers tended to power up the entire codec when playing or recording audio. This is fine for a PC, but tends to waste a lot of power on portable devices.
|Published (Last):||17 December 2012|
|PDF File Size:||13.48 Mb|
|ePub File Size:||6.12 Mb|
|Price:||Free* [*Free Regsitration Required]|
Currently there is some support in the kernel for SoC audio, however it has some limitations: Currently, codec drivers are often tightly coupled to the underlying SoC cpu. This is not really ideal and leads to code duplication i. Linux now has 4 different wm drivers for 4 different SoC platforms. There is no standard method to signal user initiated audio events. These are quite common events on portable devices and often require machine specific code to re route audio, enable amps etc after such an event.
Current drivers tend to power up the entire codec when playing or recording audio. This is fine for a PC, but tends to waste a lot of power on portable devices. There is also no support for saving power via changing codec oversampling rates, bias currents, etc. Design The ASoC layer is designed to address these issues and provide the following features: Codec independence. Allows reuse of codec drivers on other platforms and machines.
Pop and click reduction. ASoC signals the codec when to change power states. Machine specific controls: Allow machines to add controls to the sound card. To achieve all this, ASoC basically splits an embedded audio system into 3 components: Codec driver: The codec driver is platform independent and contains audio controls, audio interface capabilities, codec dapm definition and codec IO functions.
Platform driver: The platform driver contains the audio dma engine and audio interface drivers e. Machine driver: The machine driver handles any machine specific controls and audio events.