OMAP4 McPDM

= McPDM driver =

Multichannel Pulse Density Modulation component is the interface that connects the codec with the application processor. This module converts the digital PCM coded signal from DMA or other sources into a PDM signal, and sends it to Phoenix which converts it back to an analog signal. A PDM signal converts audio in to a series of bits, the density of which in relation to each otehr are used to specify the deviation of the analog audio signal.

The McPDM interface consists of the following features:


 * 5 downlink channels (for playback)
 * 3 uplink channels (for capture)
 * 1 status channel
 * 1 command channel

More information on pulse density modulation: http://en.wikipedia.org/wiki/Pulse-density_modulation

This module corresponds to a part of the platform driver of the ASoC layer.

McPDM API
The McPDM API offers a set of functions to create, open/close, start/stop, and remove a McPDM stream. Each stream requires the passing of a configuration structure to defined the parameters of the stream:

Open
The Open interfaces configure the McPDM link for audio capture/playback. This function should be called prior to starting the interface via.

Close
The Close interfaces disable the McPDM link for audio capture/playback. This function should be called after stopping the interface.

Start
The Start interface enables the transfer of data through the McPDM interface to/from the Phoenix codec.

Stop
The Stop interface disables the transfer of data through the McPDM interface to/from the Phoenix codec.

Request
The Request function creates the McPDM driver instance.

Free
The Free function tears down the McPDM driver instance.

Set Offset
The Set Offset function is used to enable/disable the DC offset cancelation for the analog headset path (on McPDM channels 1 and 2).