• Ready for review
  • WM8983 Audio Codec, Trizeps VIII

    For a description of how to play or record audio view: Using Audio in Linux
    You might need to adjust asound.conf to use 48kHz sample clock.

    Alsa Mixer Controls

    The below picture shows the currently available control-widgets exported by the wm8983 driver.
    Note that some features of the chip have not been implemented yet and thus are not shown in the diagram.
    The text written in blue is the widgets that you can control: i.e. by using the 'alsamixer' or 'amixer' application.

    Headphone

    Typical Setting:

    Control

    Setting

    Control

    Setting

    Left Output Mixer

    only LDAC set

    Right Output Mixer

    only RDAC set

    Headphone (Switch)

    set (un-mute)

    Out4

    off → output VMID

    Additional Setting:

    Control

    Setting

    Control

    Setting

    Playback (Volume)

    desired volume (digital)

    Headphone (Volume)

    desired volume (analog)

    Headphone Playback ZC

    volume is changed on crossing zero

    Speaker

    Typical Setting:

    Control

    Setting

    Control

    Setting

    Left Output Mixer

    only LDAC set

    Right Output Mixer

    only LDAC set

    Speaker Inversion

    set

    Speaker (Switch)

    set (un-mute)

    This setting is used, if a single speaker is connected to the SPEAKER pins of the Trizeps module; e.g. pins are used as SPEAKER_P and SPEAKER_N.
    It is possible to attach two speaker with reduced performance, e.g. using pins as SPEAKER_L and SPEAKER_R.

    Additional Setting:

    Control

    Setting

    Control

    Setting

    Playback (Volume)

    desired volume (digital)

    Speaker (Volume)

    desired volume (analog)

    Speaker Playback ZC

    volume is changed on crossing zero

    Speaker Boost

    set if VDD_SPEAKER (SODIMM-pin 12) is supplied with 5V

    Microphone

    Typical Setting:

    Control

    Setting

    Control

    Setting

    Left Input Mixer

    only MicP and MicN set

    Capture (Volume)

    desired volume (digital)

    Capture PGA (Volume)

    desired gain (analog)

    Capture PGA Boost (Volume)

    desired gain (analog)

    Line-In

    Typical Setting:

    Control

    Setting

    Control

    Setting

    Left Input Mixer

    only L2 set

    Right Input Mixer

    only R2 set

    Capture (Volume)

    desired volume (digital)

    Capture PGA (Volume)

    desired gain (analog)

    Capture PGA Boost (Volume)

    desired gain (analog)

    Accessing Codec Registers

    For debugging purpose codec registers can be written by using I2C commands.

    $ i2cset -fy 2 0x1A <regdata> <data>

    regdata[7:1]

    register to access.

    regdata[0]

    MSB (data[8]) of data to be written

    data[7:0]

    lower 8bits of data to be written to register