1#
2# BE dai-kpb pipeline
3#
4# All attributes defined herein are namespaced by alsatplg to
5# "Object.Pipeline.dai-kpb-be.N.attribute_name"
6#
7# Usage: dai-kpb-be pipeline object can be instantiated as:
8#
9# Object.Pipeline.dai-kpb-be."N" {
10#	direction	"playback"
11# 	period		1000
12# 	time_domain	"timer"
13# 	channels	2
14# 	rate		48000
15# }
16#
17# Where N is the unique pipeline ID within the same alsaconf node.
18#
19
20<include/common/audio_format.conf>
21<include/components/copier.conf>
22<include/components/pipeline.conf>
23<include/components/kpb.conf>
24
25Class.Pipeline."dai-kpb-be" {
26
27	DefineAttribute."index" {}
28
29	<include/pipelines/pipeline-common.conf>
30
31	attributes {
32		!constructor [
33			"index"
34		]
35
36		#
37		# dai-kpb-be objects instantiated within the same alsaconf node must have
38		# unique pipeline_id attribute
39		#
40		unique	"instance"
41	}
42
43	Object.Widget {
44		copier."1" {
45			type dai_in
46			node_type $HDA_LINK_OUTPUT_CLASS
47			num_audio_formats 3
48			num_input_audio_formats 3
49			num_output_audio_formats 3
50			# 32-bit 48KHz 2ch
51			Object.Base.audio_format.3 {
52				in_bit_depth            32
53				in_valid_bit_depth      24
54				out_bit_depth           32
55				out_valid_bit_depth     24
56			}
57
58			Object.Base.audio_format.1 {
59				in_bit_depth		32
60				in_valid_bit_depth	32
61				out_bit_depth		32
62				out_valid_bit_depth	32
63			}
64			# 32-bit 48KHz 4ch
65			Object.Base.audio_format.2 {
66				in_channels		4
67				in_bit_depth		32
68				in_valid_bit_depth	32
69				out_channels		4
70				out_bit_depth		32
71				out_valid_bit_depth	32
72				in_ch_cfg	$CHANNEL_CONFIG_3_POINT_1
73				in_ch_map	$CHANNEL_MAP_3_POINT_1
74				out_ch_cfg	$CHANNEL_CONFIG_3_POINT_1
75				out_ch_map	$CHANNEL_MAP_3_POINT_1
76			}
77		}
78
79		kpb."1" {
80			num_audio_formats 2
81			num_input_audio_formats 2
82			num_output_audio_formats 2
83			Object.Base.audio_format.1 {
84				in_rate			16000
85				out_rate		16000
86				obs			128
87				in_ch_cfg	$CHANNEL_CONFIG_STEREO
88				in_ch_map	$CHANNEL_MAP_STEREO
89				out_ch_cfg	$CHANNEL_CONFIG_STEREO
90				out_ch_map	$CHANNEL_MAP_STEREO
91				in_channels	2
92				out_channels	2
93				out_bit_depth	32
94				in_bit_depth	32
95				in_valid_bit_depth	32
96				out_valid_bit_depth	32
97			}
98			Object.Base.audio_format.2 {
99				in_rate			16000
100				out_rate		16000
101				obs			128
102				in_ch_cfg	$CHANNEL_CONFIG_4_POINT_0
103				in_ch_map	$CHANNEL_MAP_3_POINT_1
104				out_ch_cfg	$CHANNEL_CONFIG_4_POINT_0
105				out_ch_map	$CHANNEL_MAP_3_POINT_1
106				in_channels	4
107				out_channels	4
108				out_bit_depth	32
109				in_bit_depth	32
110				in_valid_bit_depth	32
111				out_valid_bit_depth	32
112			}
113		}
114
115		pipeline."1" {
116			priority		0
117			lp_mode		0
118		}
119	}
120
121	Object.Base {
122		route."1" {
123			source	"copier.DMIC.$index.1"
124			sink	"kpb.$index.1"
125		}
126	}
127
128	time_domain	"timer"
129	dynamic_pipeline 1
130	channels	2
131	channels_min	2
132	channels_max	2
133	rate		48000
134	rate_min	48000
135	rate_max	48000
136}
137