• Frank Mandarino's avatar
    [ALSA] ASoC: core code · db2a4165
    Frank Mandarino authored
    This patch is the core of ASoC functionality.
    The ASoC core is designed to provide the following features :-
    o  Codec independence. Allows reuse of codec drivers on other platforms
    and machines.
    o Platform driver code reuse. Reuse of platform specific audio DMA and
    DAI drivers on different machines.
    o Easy I2S/PCM digital audio interface configuration between codec and
    SoC. Each SoC interface and codec registers their audio interface
    capabilities with the core at initialisation. The capabilities are
    subsequently matched and configured at run time for best power and
    performance when the application hw params are known.
     o Machine specific controls/operations: Allow machines to add controls
    and operations to the audio subsystem. e.g. volume control for speaker
    amp.
    To achieve all this, ASoC splits an embedded audio system into 3
    components :-
    1. Codec driver: The codec driver is platform independent and contains
    audio controls, audio interface capabilities, codec dapm and codec IO
    functions.
    2. Platform driver: The platform driver contains the audio dma engine
    and audio interface drivers (e.g. I2S, AC97, PCM) for that platform.
    3. Machine driver: The machine driver handles any machine specific
    controls and audio events. i.e. turning on an amp at start of playback.
    Signed-off-by: default avatarFrank Mandarino <fmandarino@endrelia.com>
    Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
    Signed-off-by: default avatarLiam Girdwood <liam.Girdwood@wolfsonmicro.com>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarJaroslav Kysela <perex@suse.cz>
    db2a4165
soc-core.c 53.2 KB