diff --git a/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf b/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf new file mode 100644 index 000000000..52f651f3f --- /dev/null +++ b/tools/topology/topology2/include/pipelines/cavs/wov-detect.conf @@ -0,0 +1,124 @@ +# +# wov detection pipeline +# +# A wov detection pipeline. All attributes defined herein are namespaced +# by alsatplg to "Object.Pipeline.wov-detect.N.attribute_name". +# +# Usage: wov-detect pipeline object can be instantiated as: +# +# Object.Pipeline.wov-detect."N" { +# format "s16le" +# period 1000 +# time_domain "timer" +# channels 2 +# rate 48000 +# } +# +# Where N is the unique pipeline ID within the same alsaconf node. +# + + + + + + + + + +Class.Pipeline."wov-detect" { + + DefineAttribute."index" {} + + + + attributes { + !constructor [ + "index" + ] + + !mandatory [ + "format" + ] + + !immutable [ + "direction" + ] + + # + # wov-detect objects instantiated within the same alsaconf node must have + # unique pipeline_id attribute + # + unique "instance" + } + + Object.Widget { + + # virtual widget is only used in driver to connect wov widget + # to the host copier. The virtual widget does not exist in + # the firmware. + virtual."virtual.detect_sink" { + type out_drv + } + + micsel."1" { + Object.Base.audio_format.1 { + in_rate 16000 + out_rate 16000 + in_channels 2 + out_channels 1 + in_ch_map CHANNEL_MAP_STEREO + in_ch_cfg 1 + out_ch_map CHANNEL_MAP_MONO + out_ch_cfg 0 + out_bit_depth 32 + in_bit_depth 32 + in_valid_bit_depth 32 + out_valid_bit_depth 32 + } + } + + wov."1" { + Object.Base.audio_format.1 { + in_rate 16000 + out_rate 16000 + in_channels 1 + out_channels 1 + in_ch_cfg 0 + in_ch_map CHANNEL_MAP_MONO + out_bit_depth 32 + in_bit_depth 32 + in_valid_bit_depth 32 + out_valid_bit_depth 32 + ibs 0x80 + obs 0x80 + } + } + + pipeline."1" { + priority 0 + lp_mode 0 + } + } + + Object.Base { + route."1" { + source "micsel..1" + sink "wov..1" + } + + route."2" { + source "wov..1" + sink "virtual.detect_sink" + } + } + + direction "capture" + dynamic_pipeline 1 + time_domain "timer" + channels 2 + channels_min 2 + channels_max 2 + rate 16000 + rate_min 16000 + rate_max 16000 +}