The ALSA System on a Chip (ASoC) subsystem provides a framework for audio in emedded systems running Linux. It provides a framework allowing reuse of support for individual system components, providing support for minimising power requirements based on the currently active components.
A system using ASoC is represented by a machine driver, specifying which audio related components are in use in the system and how they are connected to each other (currently PCM, I2S and AC97 are supported). The ASoC core then uses this information to provide a sound device to the system with the combined capabilities of the devices in the system. The interconnection information is also used to provide dynamic audio power management (DAPM) - only those components required for the currently active configuration will be powered up, with the core providing algorithms to reduce pops and clicks as components are powered on and off.
Features
- Supports audio playback, capture and sidetone.
- Supports AC97, I2S and PCM digital audio interfaces.
- Low power - Dynamic Audio Power Management (DAPM) controls power consumption.
- Wide variety of audio sample rates and formats supported.
Source code
ASoC is currently available in the mainline Linux kernel available from from version 2.6.21+.
Git is used to manage the ASoC development source code. The ASoC development git repository is available via git from:
and there is also an on-line source browser. This tree contains many more SoC CPU and CODEC drivers than the mainline Linux kernel and is used for the development of new ASoC features and drivers. For more information on using git please see our git information pages.
Development is carried out on the dev branch, and there are a number of branches available for integration into standard kernel releases:
- v3.0-arizona - Support for WM5102 and WM5110 on kernel v3.0.
- v3.0-hubs - Support for the WM1811, WM8994 and WM8958 on kernel v3.0.
- v3.4-arizona - Support for WM5102 and WM5110 on kernel v3.4.
- v3.4-wm2200 - Support for WM2200 on kernel v3.4.
- v3.4-wm8994 - Support for the WM1811, WM8994 and WM8958 on kernel v3.4.
Patches
ASoC releases are also available in patch format here.
More developer information can be found on the ALSA developer Wiki.
Supported SoC CPUs
Any CPU with good Linux support should also include support for the ASoC subsystem, it is the standard embedded audio subsystem for the Linux kernel.
Supported hardware CODECs
The list of supported CODECs under ASoC is growing all the time. The most up to date list is available can be found in the ASoC git tree codec directory.
Community
Development of the ASoC subsystem is discussed on alsa-devel, the main ALSA development mailing list. There is also an #alsa-soc channel on freenode.
Notifications of changes to the repository are e-mailed to the asoc-commits mailing list.
License
ASoC is open source software and released under the GNU GPL License.