# Dynamic Firmware Configuration for Broadwell # TLV SectionTLV."hsw_vol_tlv" { Comment "TLV used by both global and stream volumes" scale { min "-9000" step "300" mute "1" } } # Controls SectionControlMixer."Master Playback Volume" { Comment "Global DSP volume" # control belongs to this index group index "1" # Channel register and shift for Front Left/Right channel."FL" { reg "0" shift "0" } channel."FR" { reg "0" shift "8" } # max control value and whether value is inverted max "31" invert "false" # control uses bespoke driver get/put/info ID 0 ops."ctl" { info "volsw" get "256" put "256" } # uses TLV data above tlv "hsw_vol_tlv" } SectionControlMixer."Media0 Playback Volume" { Comment "Offload 0 volume" # control belongs to this index group index "1" # Channel register and shift for Front Left/Right channel."FL" { reg "1" shift "0" } channel."FR" { reg "1" shift "8" } # max control value and whether value is inverted max "31" invert "false" # control uses bespoke driver get/put/info ID 0 ops."ctl" { info "volsw" get "257" put "257" } # uses TLV data above tlv "hsw_vol_tlv" } SectionControlMixer."Media1 Playback Volume" { Comment "Offload 1 volume" # control belongs to this index group index "1" # Channel register and shift for Front Left/Right channel."FL" { reg "2" shift "0" } channel."FR" { reg "2" shift "8" } # max control value and whether value is inverted max "31" invert "false" # control uses bespoke driver get/put/info ID 0 ops."ctl" { info "volsw" get "257" put "257" } # uses TLV data above tlv "hsw_vol_tlv" } SectionControlMixer."Mic Capture Volume" { Comment "Mic Capture volume" # control belongs to this index group index "1" # Channel register and shift for Front Left/Right channel."FL" { reg "0" shift "0" } channel."FR" { reg "0" shift "8" } # max control value and whether value is inverted max "31" invert "false" # control uses bespoke driver get/put/info ID 0 ops."ctl" { info "volsw" get "257" put "257" } # uses TLV data above tlv "hsw_vol_tlv" } SectionWidget."SSP0 CODEC IN" { index "1" type "aif_in" no_pm "true" shift "0" invert "0" } SectionWidget."SSP0 CODEC OUT" { index "1" type "aif_out" no_pm "true" shift "0" invert "0" } SectionWidget."SSP1 BT IN" { index "1" type "aif_in" no_pm "true" shift "0" invert "0" } SectionWidget."SSP1 BT OUT" { index "1" type "aif_out" no_pm "true" shift "0" invert "0" } SectionWidget."Playback VMixer" { index "1" type "mixer" no_pm "true" shift "0" invert "0" } # PCM Configurations supported by FW SectionPCMConfig."PCM 48k Stereo 24bit" { config."playback" { format "S24_LE" rate "48000" channels "2" tdm_slot "0xf" } config."capture" { format "S24_LE" rate "48000" channels "2" tdm_slot "0xf" } } SectionPCMConfig."PCM 48k Stereo 16bit" { config."playback" { format "S16_LE" rate "48000" channels "2" tdm_slot "0xf" } config."capture" { format "S16_LE" rate "48000" channels "2" tdm_slot "0xf" } } SectionPCMConfig."PCM 48k 2P/4C 16bit" { config."playback" { format "S16_LE" rate "48000" channels "2" tdm_slot "0xf" } config."capture" { format "S16_LE" rate "48000" channels "4" tdm_slot "0xf" } } # PCM capabilities supported by FW SectionPCMCapabilities."System Playback" { formats "S24_LE,S16_LE" rate_min "48000" rate_max "48000" channels_min "2" channels_max "2" } SectionPCMCapabilities."Analog Capture" { formats "S24_LE,S16_LE" rate_min "48000" rate_max "48000" channels_min "2" channels_max "4" } SectionPCMCapabilities."Loopback Capture" { formats "S24_LE,S16_LE" rate_min "48000" rate_max "48000" channels_min "2" channels_max "2" } SectionPCMCapabilities."Offload0 Playback" { formats "S24_LE,S16_LE" rate_min "8000" rate_max "192000" channels_min "2" channels_max "2" } SectionPCMCapabilities."Offload1 Playback" { formats "S24_LE,S16_LE" rate_min "8000" rate_max "192000" channels_min "2" channels_max "2" } # PCM devices exported by Firmware SectionPCM."System Playback/Capture" { index "1" # used for binding to the PCM id "0" dai."System Pin" { id "0" } pcm."playback" { capabilities "System Playback" configs [ "PCM 48k Stereo 24bit" "PCM 48k Stereo 16bit" ] } pcm."capture" { capabilities "Analog Capture" configs [ "PCM 48k Stereo 24bit" "PCM 48k Stereo 16bit" "PCM 48k 2P/4C 16bit" ] } } SectionPCM."Offload0 Playback" { index "1" # used for binding to the PCM id "1" dai."Offload0 Pin" { id "1" } pcm."playback" { capabilities "Offload0 Playback" configs [ "PCM 48k Stereo 24bit" "PCM 48k Stereo 16bit" ] } } SectionPCM."Offload1 Playback" { index "1" # used for binding to the PCM id "2" dai."Offload1 Pin" { id "2" } pcm."playback" { capabilities "Offload1 Playback" configs [ "PCM 48k Stereo 24bit" "PCM 48k Stereo 16bit" ] } } SectionPCM."Loopback PCM" { index "1" # used for binding to the PCM id "3" dai."Loopback Pin" { id "3" } pcm."capture" { capabilities "Loopback Capture" configs [ "PCM 48k Stereo 24bit" "PCM 48k Stereo 16bit" ] } } SectionGraph."dsp" { index "1" lines [ "Playback VMixer, , System Playback" "Playback VMixer, , Offload0 Playback" "Playback VMixer, , Offload1 Playback" "SSP0 CODEC OUT, , Playback VMixer" "Loopback Capture, , Playback VMixer" "Analog Capture, , SSP0 CODEC IN" ] } SectionHWConfig."CodecHWConfig" { id "1" format "I2S" # physical audio format. bclk "codec_slave" # platform is master of bit clock (codec is slave) fsync "codec_slave" # platform is master of fsync (codec is slave) } SectionLink."Codec" { # used for binding to the physical link id "0" hw_configs [ "CodecHWConfig" ] default_hw_conf_id "1" }