1 ======================= 2 ALSA SoC Layer Overview 3 ======================= 4 5 The overall project goal of the ALSA System on 6 provide better ALSA support for embedded syste 7 pxa2xx, au1x00, iMX, etc) and portable audio c 8 subsystem there was some support in the kernel 9 had some limitations:- 10 11 * Codec drivers were often tightly coupled t 12 CPU. This is not ideal and leads to code d 13 Linux had different wm8731 drivers for 4 d 14 15 * There was no standard method to signal use 16 Headphone/Mic insertion, Headphone/Mic det 17 event). These are quite common events on p 18 machine specific code to re-route audio, e 19 event. 20 21 * Drivers tended to power up the entire code 22 recording) audio. This is fine for a PC, b 23 power on portable devices. There was also 24 power via changing codec oversampling rate 25 26 27 ASoC Design 28 =========== 29 30 The ASoC layer is designed to address these is 31 features :- 32 33 * Codec independence. Allows reuse of codec 34 and machines. 35 36 * Easy I2S/PCM audio interface setup between 37 interface and codec registers its audio in 38 core and are subsequently matched and conf 39 hardware parameters are known. 40 41 * Dynamic Audio Power Management (DAPM). DAP 42 its minimum power state at all times. This 43 internal power blocks depending on the int 44 active streams. 45 46 * Pop and click reduction. Pops and clicks c 47 codec up/down in the correct sequence (inc 48 signals the codec when to change power sta 49 50 * Machine specific controls: Allow machines 51 (e.g. volume control for speaker amplifier 52 53 To achieve all this, ASoC basically splits an 54 multiple re-usable component drivers :- 55 56 * Codec class drivers: The codec class drive 57 contains audio controls, audio interface c 58 definition and codec IO functions. This cl 59 ICs if required. Codec class drivers shoul 60 on any architecture and machine. 61 62 * Platform class drivers: The platform class 63 engine driver, digital audio interface (DA 64 and any audio DSP drivers for that platfor 65 66 * Machine class driver: The machine driver c 67 describes and binds the other component dr 68 "sound card device". It handles any machin 69 machine level audio events (e.g. turning o
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.