Define { ANALOG_PLAYBACK_PCM 'Analog Playback' ANALOG_CAPTURE_PCM 'Analog Capture' HDA_ANALOG_DAI_NAME 'Analog' DEEP_BUFFER_PIPELINE_ID 15 DEEP_BUFFER_PCM_ID 31 DEEP_BUFFER_PIPELINE_SRC 'mixin.15.1' DEEP_BUFFER_PIPELINE_SINK 'mixout.2.1' DEEP_BUFFER_PCM_NAME 'Deepbuffer HDA Analog' } # include deep buffer config if buffer size is in 1 - 1000 ms. IncludeByKey.DEEPBUFFER_FW_DMA_MS{ "([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|1000)" "platform/intel/deep-buffer.conf" } Object.Dai.HDA [ { name $HDA_ANALOG_DAI_NAME dai_index 0 id 4 default_hw_conf_id 4 Object.Base.hw_config.1 { name "HDA0" } direction duplex } ] Object.Pipeline { mixout-gain-efx-dai-copier-playback [ { index 2 Object.Widget.dai-copier.1 { node_type $HDA_LINK_OUTPUT_CLASS stream_name $HDA_ANALOG_DAI_NAME dai_type "HDA" copier_type "HDA" } Object.Widget.gain.1 { Object.Control.mixer.1 { name 'Post Mixer $ANALOG_PLAYBACK_PCM Volume' } } Object.Widget.eqiir.1 { Object.Control.bytes."1" { name 'Post Mixer $ANALOG_PLAYBACK_PCM IIR Eq' } } Object.Widget.eqfir.1 { Object.Control.bytes."1" { name 'Post Mixer $ANALOG_PLAYBACK_PCM FIR Eq' } } Object.Widget.drc.1 { Object.Control.bytes."1" { name '2 Main playback DRC' } } } ] host-copier-gain-mixin-playback [ { index 1 Object.Widget.host-copier.1 { stream_name $ANALOG_PLAYBACK_PCM pcm_id 0 } Object.Widget.gain.1 { Object.Control.mixer.1 { name 'Pre Mixer $ANALOG_PLAYBACK_PCM Volume' } } } ] host-gateway-capture [ { index 3 Object.Widget.host-copier.1 { stream_name $ANALOG_CAPTURE_PCM pcm_id 0 } } ] io-gateway [ { index 4 direction capture Object.Widget.dai-copier."1" { dai_type "HDA" type "dai_out" copier_type "HDA" stream_name $HDA_ANALOG_DAI_NAME node_type $HDA_LINK_INPUT_CLASS num_output_pins 1 num_input_audio_formats 1 num_output_audio_formats 1 Object.Base.input_audio_format [ { in_bit_depth 32 in_valid_bit_depth 32 } ] Object.Base.output_audio_format [ { out_bit_depth 32 out_valid_bit_depth 32 } ] } } ] } Object.PCM.pcm [ { id 0 name 'HDA Analog' Object.Base.fe_dai.1 { name "HDA Analog" } Object.PCM.pcm_caps.1 { direction "playback" name $ANALOG_PLAYBACK_PCM formats 'S32_LE,S24_LE,S16_LE' } Object.PCM.pcm_caps.2 { direction "capture" name $ANALOG_CAPTURE_PCM formats 'S32_LE,S24_LE,S16_LE' } direction duplex } ] # top-level pipeline connections Object.Base.route [ { sink 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.playback' source 'drc.2.1' } { source 'mixin.1.1' sink 'mixout.2.1' } { source 'dai-copier.HDA.$HDA_ANALOG_DAI_NAME.capture' sink 'host-copier.0.capture' } { source 'host-copier.0.playback' sink 'gain.1.1' } ]