ADAU1860

ADAU1860 Sound CODEC Linux Driver.

Supported Devices

Evaluation Boards

Source Code

Status

Source

Mainlined?

git

No

Files

Example device initialization

YAML example Placeholder

I2C

The I2C device id depends on the ADDR0 and ADDR1 pin settings and needs to be set according to your board setup.

ADDR1

ADDR0

I2C device id

0

0

0x64

0

1

0x65

1

0

0x66

1

1

0x67

In this example we assume ADDR0=0 and ADDR1=0.

ASoC DAPM Widgets

Name

Description

Configuration

AINP0

ADC0 Differential Positive Input

Differential Input

AINN0

ADC0 Differential Negative Input

Differential Input

AINP1

ADC1 Differential Positive Input

Differential Input

AINN1

ADC1 Differential Negative Input

Differential Input

AINP2

ADC2 Differential Positive Input

Differential Input

AINN2

ADC2 Differential Negative Input

Differential Input

HPOUTP

Left Headphone Output

HPOUTN

Right Headphone Output

DMIC01

Digital Microphone 0 and 1 Input

Digital Microphone

DMIC23

Digital Microphone 2 and 3 Input

Digital Microphone

DMIC45

Digital Microphone 4 and 5 Input

Digital Microphone

DMIC67

Digital Microphone 6 and 7 Input

Digital Microphone

ALSA Controls

Name

Description

Configuration

ADC0 Capture Volume

ADC Channel 0 digital gain control

ADC1 Capture Volume

ADC Channel 1 digital gain control

ADC2 Capture Volume

ADC Channel 0 digital gain control

ADC0 Capture Switch

ADC Channel 0 Mute/Unmute

ADC1 Capture Switch

ADC Channel 1 Mute/Unmute

ADC2 Capture Switch

ADC Channel 2 Mute/Unmute

ADC0 HPF

ADC Channel 0 High pass filter control

Values: ‘Off’ ‘1Hz’ ‘4Hz’ ‘8Hz’

ADC1 HPF

ADC Channel 1 High pass filter control

Values: ‘Off’ ‘1Hz’ ‘4Hz’ ‘8Hz’

ADC2 HPF

ADC Channel 2 High pass filter control

Values: ‘Off’ ‘1Hz’ ‘4Hz’ ‘8Hz’

DMIC0 Capture Volume

Digital Microphone 0 gain control

DMIC1 Capture Volume

Digital Microphone 1 gain control

DMIC2 Capture Volume

Digital Microphone 2 gain control

DMIC3 Capture Volume

Digital Microphone 3 gain control

DMIC4 Capture Volume

Digital Microphone 4 gain control

DMIC5 Capture Volume

Digital Microphone 5 gain control

DMIC6 Capture Volume

Digital Microphone 6 gain control

DMIC7 Capture Volume

Digital Microphone 7 gain control

DMIC0 Capture Switch

Digital Microphone 0 Mute/Unmute

DMIC1 Capture Switch

Digital Microphone 1 Mute/Unmute

DMIC2 Capture Switch

Digital Microphone 2 Mute/Unmute

DMIC3 Capture Switch

Digital Microphone 3 Mute/Unmute

DMIC4 Capture Switch

Digital Microphone 4 Mute/Unmute

DMIC5 Capture Switch

Digital Microphone 5 Mute/Unmute

DMIC6 Capture Switch

Digital Microphone 6 Mute/Unmute

DMIC7 Capture Switch

Digital Microphone 7 Mute/Unmute

DAC Mux

Selects the source for the DAC

DAC Playback Volume

Digital volume attenuation for output from the DAC

DAC Playback Switch

Mute/Unmute DAC out signal

ASRCI 0 Mux

Mux to select Input ASRC Channel 0 source

ASRCI 1 Mux

Mux to select Input ASRC Channel 1 source

ASRCI 2 Mux

Mux to select Input ASRC Channel 2 source

ASRCI 3 Mux

Mux to select Input ASRC Channel 3 source

ASRCI OUT FS

Input ASRC output sample rate selector

ASRCI SAI SEL

Input ASRC source serial audio interface selector

ASRCO 0 Mux

Mux to select Output ASRC Channel 0 source

ASRCO 1 Mux

Mux to select Output ASRC Channel 1 source

ASRCO 2 Mux

Mux to select Output ASRC Channel 2 source

ASRCO 3 Mux

Mux to select Output ASRC Channel 3 source

ASRCO IN FS

Output ASRC input sample rate selector

ASRCO SAI SEL

Output ASRC sink serial audio interface selector

SPTx_OUT_SLOTy Data Mux

Output SAI x slot y data source mux

Example: SPT0_OUT_SLOT3 Data Mux

ALSA controls can be modified easily using alsa-tools utilities. For example to read the current state of DMIC0 Capture Volume control one can use:

amixer -c ADAU1860 cget name=‘DMIC0 Capture Volume’

To set one control value the following command can be executed:

amixer -c ADAU1860 cset name=‘DMIC0 Capture Volume’ 191

DAI configuration

The codec driver registers two DAIs:

  • adau1860-sai0

  • adau1860-sai1

Supported DAI formats

Name

Supported by driver

Description

SND_SOC_DAIFMT_I2S

yes

I2S mode

SND_SOC_DAIFMT_RIGHT_J

yes

Right Justified mode

SND_SOC_DAIFMT_LEFT_J

yes

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

yes

Normal bitclock, inverted frameclock

SND_SOC_DAIFMT_IB_NF

yes

Inverted frameclock, normal bitclock

SND_SOC_DAIFMT_IB_IF

yes

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

yes

Codec bit- and frameclock slave

SNDRV_PCM_FMTBIT_S16_LE

yes

Signed 16 bit per channel, Little Endian

SNDRV_PCM_FMTBIT_S20_LE

yes

Signed 20 bit per channel, Little Endian

SNDRV_PCM_FMTBIT_S24_LE

yes

Signed 24 bit per channel, Little Endian

SNDRV_PCM_FMTBIT_S32_LE

yes

Signed 32 bit per channel, Little Endian