This version (08 Jun 2016 20:12) was approved by Lars-Peter Clausen.The Previously approved version (02 Jun 2016 14:55) is available.Diff

ADAU7002 Stereo PDM to I2S or TDM Conversion IC Linux Driver

Supported Devices

Evaluation Boards


The ADAU7002 converts a stereo PDM bit stream into a PCM output. The source for the PDM data can be two microphones or other PDM sources. The PCM audio data is output on a serial audio interface port in either I2S or TDM format.

Source Code


Source Mainlined?
git Yes


Devicetree bindings

The ADAU7002 driver is fully devicetree compatible.

Required properties:

  • compatible: Must be “adi,adau7002”

Optional properties:

  • IOVDD-supply: Phandle and specifier for the power supply providing the IOVDD supply as covered in Documentation/devicetree/bindings/regulator/regulator.txt If this property is not present it is assumed that the supply pin is hardwired to always on.

Example device initialization

For compile time configuration, it’s common Linux practice to keep board- and application-specific configuration out of the main driver file, instead putting it into the board support file.

For devices on custom boards, as typical of embedded and SoC-(system-on-chip) based hardware, Linux uses platform_data to point to board-specific structures describing devices and how they are connected to the SoC. This can include available ports, chip variants, preferred modes, default initialization, additional pin roles, and so on. This shrinks the board-support packages (BSPs) and minimizes board and application specific #ifdefs in drivers.

21 Oct 2010 16:10


adau7002: pdm-to-i2s {
	compatible = "adi,adau7002";
	IOVDD-supply = <&supply>;

Kernel configuration

Device Drivers  --->
<*> Sound card support  --->
<*>   Advanced Linux Sound Architecture  --->
<*>     ALSA for SoC audio support  --->
<*>       CODEC drivers  --->
<*>          Analog Devices ADAU7002 Stereo PDM-to-I2S/TDM Converter

ASoC DAPM widgets

Name Description
PDM PDM signal input

ALSA controls

This device has no controls.

DAI Configuration

The driver registers one DAI called “adau7002”.

Supported DAI formats

Name Supported by driver Description
SND_SOC_DAIFMT_I2S yes* I2S mode
SND_SOC_DAIFMT_RIGHT_J no Right Justified mode
SND_SOC_DAIFMT_LEFT_J no Left Justified mode
SND_SOC_DAIFMT_AC97 no AC97 mode
SND_SOC_DAIFMT_PDM no Pulse density modulation
SND_SOC_DAIFMT_NB_NF yes Normal bit- and frameclock
SND_SOC_DAIFMT_NB_IF no Normal bitclock, inverted frameclock
SND_SOC_DAIFMT_IB_NF no Inverted frameclock, normal bitclock
SND_SOC_DAIFMT_IB_IF no Inverted bit- and frameclock
SND_SOC_DAIFMT_CBM_CFM yes Codec bit- and frameclock master
SND_SOC_DAIFMT_CBS_CFM no Codec bitclock slave, frameclock master
SND_SOC_DAIFMT_CBM_CFS no Codec bitclock master, frameclock slave
SND_SOC_DAIFMT_CBS_CFS no Codec bit- and frameclock slave

* The supported DAI format depends on the configuration of the CONFIG pin. When tied to IOVDD only SND_SOC_DAIFMT_I2S is supported, for all other settings only SND_SOC_DAIFMT_DSP_A is supported

More information

resources/tools-software/linux-drivers/sound/adau7002.txt · Last modified: 08 Jun 2016 20:12 by Lars-Peter Clausen