1+ Object.Pipeline.deepbuffer-capture [
2+ {
3+ format $FORMAT
4+ index $DMIC0_DEEP_BUFFER_PIPELINE_ID
5+ Object.Widget.pipeline.1 {
6+ stream_name "$DMIC0_DEEP_BUFFER_PCM_NAME"
7+ }
8+ Object.Widget.host-copier.1 {
9+ stream_name $DMIC0_DEEP_BUFFER_PCM_NAME
10+ pcm_id $DMIC0_DEEP_BUFFER_PCM_ID
11+ num_input_audio_formats 2
12+ Object.Base.input_audio_format [
13+ {
14+ in_rate $DMIC0_RATE
15+ in_bit_depth 32
16+ in_valid_bit_depth 32
17+ }
18+ {
19+ in_rate $DMIC0_RATE
20+ in_channels 4
21+ in_bit_depth 32
22+ in_valid_bit_depth 32
23+ in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
24+ in_ch_map $CHANNEL_MAP_3_POINT_1
25+ }
26+ ]
27+
28+ num_output_audio_formats 6
29+ Object.Base.output_audio_format [
30+ {
31+ out_rate $DMIC0_RATE
32+ out_bit_depth 16
33+ out_valid_bit_depth 16
34+ }
35+ {
36+ out_rate $DMIC0_RATE
37+ out_bit_depth 32
38+ out_valid_bit_depth 24
39+ }
40+ {
41+ out_rate $DMIC0_RATE
42+ out_bit_depth 32
43+ out_valid_bit_depth 32
44+ }
45+ {
46+ out_rate $DMIC0_RATE
47+ out_channels 4
48+ out_bit_depth 16
49+ out_valid_bit_depth 16
50+ out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
51+ out_ch_map $CHANNEL_MAP_3_POINT_1
52+ }
53+ {
54+ out_rate $DMIC0_RATE
55+ out_channels 4
56+ out_bit_depth 32
57+ out_valid_bit_depth 24
58+ out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
59+ out_ch_map $CHANNEL_MAP_3_POINT_1
60+ }
61+ {
62+ out_rate $DMIC0_RATE
63+ out_channels 4
64+ out_bit_depth 32
65+ out_valid_bit_depth 32
66+ out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
67+ out_ch_map $CHANNEL_MAP_3_POINT_1
68+ }
69+ ]
70+ }
71+ }
72+
73+ ]
74+ Object.PCM.pcm [
75+ {
76+ name "$DMIC0_DEEP_BUFFER_PCM_NAME"
77+ id $DMIC0_DEEP_BUFFER_PCM_ID
78+ direction "capture"
79+ capture_compatible_d0i3 $DEEPBUFFER_D0I3_COMPATIBLE
80+
81+ Object.Base.fe_dai."$DMIC0_DEEP_BUFFER_PCM_NAME" {}
82+
83+ Object.PCM.pcm_caps."capture" {
84+ name $DMIC0_DEEP_BUFFER_PCM_NAME
85+ formats 'S16_LE,S24_LE,S32_LE'
86+ channels_min $NUM_DMICS
87+ channels_max $NUM_DMICS
88+ # To avoid DMA spinning on a buffer we need bigger
89+ # buffer than the host buffer size, let's say twice as
90+ # big
91+ # (S16_LE, Stereo, 48KHz, DEEPBUFFER_FW_DMA_MS) * 2
92+ #
93+ # Note: The lower limit for the buffer size is rate
94+ # dependent
95+ IncludeByKey.DMIC0_RATE {
96+ "16000" {
97+ buffer_size_min "$[(((2 * $NUM_DMICS) * 16) * $DEEPBUFFER_FW_DMA_MS) * 2]"
98+ rates '16000'
99+ }
100+ "48000" {
101+ buffer_size_min "$[(((2 * $NUM_DMICS) * 48) * $DEEPBUFFER_FW_DMA_MS) * 2]"
102+ rates '48000'
103+ }
104+ "96000" {
105+ buffer_size_min "$[(((2 * $NUM_DMICS) * 96) * $DEEPBUFFER_FW_DMA_MS) * 2]"
106+ rates '96000'
107+ }
108+ }
109+ }
110+ }
111+ ]
112+ Object.Base.route [
113+ {
114+ source "module-copier.$DMIC0_DAI_PIPELINE_ID.2"
115+ sink "host-copier.$DMIC0_DEEP_BUFFER_PCM_ID.capture"
116+ }
117+ ]
0 commit comments