This is an old revision of the document!
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.
Function | File |
---|---|
driver | sound/soc/codecs/adau7002.c |
devicetree | Documentation/devicetree/bindings/sound/adau7002.txt |
The ADAU7002 driver is fully devicetree compatible.
Required properties:
Optional properties:
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.
adau7002: pdm-to-i2s { compatible = "adi,adau7002"; IOVDD-supply = <&supply>; };
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
Name | Description |
---|---|
PDM | PDM signal input |
This device has no controls.
The driver registers one DAI called “adau7002”.
Name | Supported by driver | Description |
---|---|---|
SND_SOC_DAIFMT_I2S | yes* | I2S Justified 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