N900 Hardware Audio Codec

The Audio codec encodes and decodes audio.


[edit] Hardware

The audio codec is a low-power 4 channel codec IC TLV320AIC34.

It is connected to the CPU using I2C and the MCBSP serial digital audio interface.

[edit] Unutilised Functions

The audio codec supports a flexible digital filter on both the input and output. This can be used to perform equalization with no CPU load.

This function is not used, and pulseaudio is used for this task when speakers are enabled.

It can also route the audio directly from the FM receiver to the speakers or the headphones, optionally through this hardware EQ module, also reducing power in this usecase, by entirely eliminating CPU usage.

[edit] Software

[edit] User

The audio codec is driven by pulseaudio, through ALSA. The ALSA interface is usually not exposed in maemo 5 - adding:

pcm.real {
	type hw
	card 0

ctl.real {
	type hw           
	card 0

to /etc/asound.conf enables a hardware device. Stopping pulseaudio may be required to use this.

[edit] Kernel

The codec is driven by a driver built into the kernel.