mirror of https://github.com/thesofproject/sof.git
topology2: add dmic-wov.conf
The dmic-wov.conf file implements the WOV feature. The connection is DMIC ------> KPB ------------------------------> host_copier | ^ | | |----> micsel ----> wov ------> virtual_widget The DMIC and KPB is on DAI ppl. The host_copier is on Host ppl. The micsel, wov and virtual is on wov ppl. The connection between host_copier and virtual_widget is a virtual connection. The virtual_widget doesn't exist in the FW. Signed-off-by: Libin Yang <libin.yang@intel.com>
This commit is contained in:
parent
ef37adc288
commit
2584500c35
|
@ -19,4 +19,18 @@ Define {
|
|||
DMIC1_NAME dmic16k
|
||||
DMIC0_PCM_CAPS "Passthrough Capture 11"
|
||||
DMIC0_PIPELINE_STREAM_NAME "copier.DMIC.12.1"
|
||||
DMIC1_HOST_PIPELINE_ID 18
|
||||
DMIC1_DAI_PIPELINE_ID 19
|
||||
WOV_PIPELINE_ID 20
|
||||
DMIC1_HOST_PIPELINE_SINK 'copier.host.18.1'
|
||||
DMIC_WOV_DAI_PIPELINE_SRC 'copier.DMIC.19.1'
|
||||
DMIC_WOV_DAI_PIPELINE_KPB 'kpb.19.1'
|
||||
WOV_PIPELINE_SINK 'micsel.20.1'
|
||||
WOV_PIPELINE_VIRTUAL 'virtual.detect_sink'
|
||||
INCLUDE_WOV 'false'
|
||||
# The UUID corresponds to the test detect component
|
||||
WOV_UUID '1f:d5:a8:eb:27:78:b5:47:82:ee:de:6e:77:43:af:67'
|
||||
WOV_CPC '360000'
|
||||
DMIC1_PCM_CAPS 'Passthrough Capture 18'
|
||||
DMIC1_PIPELINE_STREAM_NAME 'copier.DMIC.19.1'
|
||||
}
|
||||
|
|
|
@ -62,6 +62,10 @@ Object.Dai {
|
|||
}
|
||||
}
|
||||
|
||||
IncludeByKey.INCLUDE_WOV {
|
||||
"true" "platform/intel/dmic-wov.conf"
|
||||
}
|
||||
|
||||
Object.Pipeline {
|
||||
passthrough-capture.100 {
|
||||
format $FORMAT
|
||||
|
|
|
@ -0,0 +1,137 @@
|
|||
Object.Pipeline {
|
||||
passthrough-capture.1 {
|
||||
format $FORMAT
|
||||
rate 16000
|
||||
rate_min 16000
|
||||
rate_max 16000
|
||||
index $DMIC1_HOST_PIPELINE_ID
|
||||
Object.Widget.pipeline.1 {
|
||||
stream_name $DMIC1_PIPELINE_STREAM_NAME
|
||||
}
|
||||
Object.Widget.copier.1 {
|
||||
stream_name $DMIC1_PCM_CAPS
|
||||
Object.Base.audio_format.1 {
|
||||
in_rate 16000
|
||||
in_bit_depth 32
|
||||
in_valid_bit_depth 32
|
||||
out_rate 16000
|
||||
out_bit_depth 32
|
||||
out_valid_bit_depth 32
|
||||
dma_buffer_size "$[$ibs * 2]"
|
||||
}
|
||||
Object.Base.audio_format.2 {
|
||||
in_rate 16000
|
||||
in_channels 4
|
||||
in_bit_depth 32
|
||||
in_valid_bit_depth 32
|
||||
out_rate 16000
|
||||
out_channels 4
|
||||
out_bit_depth 32
|
||||
out_valid_bit_depth 32
|
||||
dma_buffer_size "$[$ibs * 2]"
|
||||
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
||||
in_ch_map $CHANNEL_MAP_3_POINT_1
|
||||
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
||||
out_ch_map $CHANNEL_MAP_3_POINT_1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dai-kpb-be.12 {
|
||||
direction "capture"
|
||||
format $FORMAT
|
||||
rate 16000
|
||||
rate_min 16000
|
||||
rate_max 16000
|
||||
index $DMIC1_DAI_PIPELINE_ID
|
||||
|
||||
Object.Widget.copier.1 {
|
||||
dai_index 1
|
||||
type "dai_out"
|
||||
dai_type "DMIC"
|
||||
copier_type "DMIC"
|
||||
type dai_out
|
||||
stream_name $DMIC1_NAME
|
||||
node_type $DMIC_LINK_INPUT_CLASS
|
||||
Object.Base.audio_format.1 {
|
||||
in_rate 16000
|
||||
in_bit_depth 32
|
||||
in_valid_bit_depth 32
|
||||
out_rate 16000
|
||||
out_bit_depth 32
|
||||
out_valid_bit_depth 32
|
||||
dma_buffer_size "$[$ibs * 2]"
|
||||
}
|
||||
Object.Base.audio_format.2 {
|
||||
in_rate 16000
|
||||
in_channels 4
|
||||
in_bit_depth 32
|
||||
in_valid_bit_depth 32
|
||||
out_rate 16000
|
||||
out_channels 4
|
||||
out_bit_depth 32
|
||||
out_valid_bit_depth 32
|
||||
dma_buffer_size "$[$ibs * 2]"
|
||||
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
||||
in_ch_map $CHANNEL_MAP_3_POINT_1
|
||||
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
||||
out_ch_map $CHANNEL_MAP_3_POINT_1
|
||||
}
|
||||
}
|
||||
|
||||
Object.Widget.kpb.1 {
|
||||
Object.Base.src_pin_binding.1 {
|
||||
src_pin_binding_wname $WOV_PIPELINE_SINK
|
||||
}
|
||||
Object.Base.src_pin_binding.2 {
|
||||
src_pin_binding_wname $DMIC1_HOST_PIPELINE_SINK
|
||||
}
|
||||
Object.Base.src_pin_binding.3 {
|
||||
src_pin_binding_wname "NotConnected"
|
||||
}
|
||||
}
|
||||
}
|
||||
wov-detect.1 {
|
||||
index $WOV_PIPELINE_ID
|
||||
format s32le
|
||||
channels 2
|
||||
Object.Widget.wov.1 {
|
||||
uuid $WOV_UUID
|
||||
cpc $WOV_CPC
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Object.Base {
|
||||
route.102 {
|
||||
source $DMIC_WOV_DAI_PIPELINE_KPB
|
||||
sink $DMIC1_HOST_PIPELINE_SINK
|
||||
}
|
||||
route.103 {
|
||||
source $DMIC_WOV_DAI_PIPELINE_KPB
|
||||
sink $WOV_PIPELINE_SINK
|
||||
}
|
||||
route.104 {
|
||||
source $WOV_PIPELINE_VIRTUAL
|
||||
sink $DMIC1_HOST_PIPELINE_SINK
|
||||
}
|
||||
}
|
||||
|
||||
Object.PCM {
|
||||
pcm.11 {
|
||||
name "DMIC16k"
|
||||
id 11
|
||||
direction "capture"
|
||||
Object.Base.fe_dai."DMIC16k" {}
|
||||
|
||||
Object.PCM.pcm_caps."capture" {
|
||||
name $DMIC1_PCM_CAPS
|
||||
# only 32-bit capture supported now
|
||||
formats 'S32_LE'
|
||||
channels_min $NUM_DMICS
|
||||
channels_max $NUM_DMICS
|
||||
rate_min 16000
|
||||
rate_max 16000
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue