ADAU7002

ADAU7002 Stereo PDM to I2S or TDM Conversion IC Linux Driver.

Supported Devices

Evaluation Boards

Description

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

Status

Source

Mainlined?

git

Yes

Files

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.

Devicetree

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_DSP_A

yes*

data MSB after FRM LRC

SND_SOC_DAIFMT_DSP_B

no

data MSB during FRM LRC

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

Need Help?