1Object.Dai.DMIC [ 2 { 3 dai_index 0 4 name $DMIC0_NAME 5 id $DMIC0_ID 6 driver_version $DMIC_DRIVER_VERSION 7 io_clk $DMIC_IO_CLK 8 clk_min 500000 9 clk_max 4800000 10 unmute_ramp_time_ms 200 11 # num_pdm_active should always set to 2 but depending on the number of DMIC's 12 # the mic's are enabled or disabled in each PDM. 13 num_pdm_active 2 14 15 Object.Base.hw_config.1 { 16 id 0 17 name "DMIC0" 18 } 19 20 # PDM controller config 21 Object.Base.pdm_config.1 { 22 mic_a_enable $PDM0_MIC_A_ENABLE 23 mic_b_enable $PDM0_MIC_B_ENABLE 24 ctrl_id 0 25 } 26 Object.Base.pdm_config.2 { 27 ctrl_id 1 28 mic_a_enable $PDM1_MIC_A_ENABLE 29 mic_b_enable $PDM1_MIC_B_ENABLE 30 } 31 } 32 { 33 name $DMIC1_NAME 34 id $DMIC1_ID 35 dai_index 1 36 driver_version $DMIC_DRIVER_VERSION 37 io_clk $DMIC_IO_CLK 38 sample_rate 16000 39 clk_min 500000 40 clk_max 4800000 41 unmute_ramp_time_ms 200 42 # num_pdm_active should always set to 2 but depending on the number of DMIC's 43 # the mic's are enabled or disabled in each PDM. 44 num_pdm_active 2 45 46 Object.Base.hw_config.1 { 47 id 0 48 name "DMIC1" 49 } 50 51 # PDM controller config 52 Object.Base.pdm_config.1 { 53 mic_a_enable $PDM0_MIC_A_ENABLE 54 mic_b_enable $PDM0_MIC_B_ENABLE 55 ctrl_id 0 56 } 57 Object.Base.pdm_config.2 { 58 ctrl_id 1 59 mic_a_enable $PDM1_MIC_A_ENABLE 60 mic_b_enable $PDM1_MIC_B_ENABLE 61 } 62 } 63] 64 65IncludeByKey.INCLUDE_WOV { 66 "true" "platform/intel/dmic-wov.conf" 67} 68 69Object.Pipeline.gain-capture [ 70 { 71 format $FORMAT 72 index $DMIC0_HOST_PIPELINE_ID 73 74 Object.Widget.copier.1 { 75 stream_name $DMIC0_PCM_CAPS 76 num_audio_formats 2 77 num_input_audio_formats 2 78 num_output_audio_formats 2 79 Object.Base.audio_format.1 { 80 in_bit_depth 32 81 in_valid_bit_depth 32 82 out_bit_depth 32 83 out_valid_bit_depth 32 84 } 85 Object.Base.audio_format.2 { 86 in_channels 4 87 in_bit_depth 32 88 in_valid_bit_depth 32 89 out_channels 4 90 out_bit_depth 32 91 out_valid_bit_depth 32 92 in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 93 in_ch_map $CHANNEL_MAP_3_POINT_1 94 out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 95 out_ch_map $CHANNEL_MAP_3_POINT_1 96 } 97 } 98 Object.Widget.gain.1 { 99 num_audio_formats 2 100 num_input_audio_formats 2 101 num_output_audio_formats 2 102 Object.Base.audio_format.1 { 103 in_bit_depth 32 104 in_valid_bit_depth 32 105 out_bit_depth 32 106 out_valid_bit_depth 32 107 } 108 Object.Base.audio_format.2 { 109 in_channels 4 110 in_bit_depth 32 111 in_valid_bit_depth 32 112 out_channels 4 113 out_bit_depth 32 114 out_valid_bit_depth 32 115 in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 116 in_ch_map $CHANNEL_MAP_3_POINT_1 117 out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 118 out_ch_map $CHANNEL_MAP_3_POINT_1 119 } 120 Object.Control.mixer.1 { 121 name 'DMIC0 Capture Volume 1' 122 } 123 } 124 125 Object.Widget.module-copier."2" { 126 num_audio_formats 2 127 num_input_audio_formats 2 128 num_output_audio_formats 2 129 Object.Base.audio_format.1 { 130 in_bit_depth 32 131 in_valid_bit_depth 32 132 out_bit_depth 32 133 out_valid_bit_depth 32 134 } 135 Object.Base.audio_format.2 { 136 in_channels 4 137 in_bit_depth 32 138 in_valid_bit_depth 32 139 out_channels 4 140 out_bit_depth 32 141 out_valid_bit_depth 32 142 in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 143 in_ch_map $CHANNEL_MAP_3_POINT_1 144 out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 145 out_ch_map $CHANNEL_MAP_3_POINT_1 146 } 147 } 148 } 149] 150 151Object.Pipeline.dai-copier-eqiir-module-copier-capture [ 152 { 153 index $DMIC0_DAI_PIPELINE_ID 154 155 Object.Widget.copier.1 { 156 dai_index 0 157 dai_type "DMIC" 158 copier_type "DMIC" 159 type dai_out 160 stream_name $DMIC0_NAME 161 node_type $DMIC_LINK_INPUT_CLASS 162 num_audio_formats 2 163 num_input_audio_formats 2 164 num_output_audio_formats 2 165 Object.Base.audio_format.1 { 166 in_bit_depth 32 167 in_valid_bit_depth 32 168 out_bit_depth 32 169 out_valid_bit_depth 32 170 } 171 Object.Base.audio_format.2 { 172 in_channels 4 173 in_bit_depth 32 174 in_valid_bit_depth 32 175 out_channels 4 176 out_bit_depth 32 177 out_valid_bit_depth 32 178 in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 179 in_ch_map $CHANNEL_MAP_3_POINT_1 180 out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 181 out_ch_map $CHANNEL_MAP_3_POINT_1 182 } 183 } 184 185 Object.Widget.module-copier."2" { 186 stream_name $DMIC0_NAME 187 num_audio_formats 2 188 num_input_audio_formats 2 189 num_output_audio_formats 2 190 Object.Base.audio_format.1 { 191 in_bit_depth 32 192 in_valid_bit_depth 32 193 out_bit_depth 32 194 out_valid_bit_depth 32 195 } 196 Object.Base.audio_format.2 { 197 in_channels 4 198 in_bit_depth 32 199 in_valid_bit_depth 32 200 out_channels 4 201 out_bit_depth 32 202 out_valid_bit_depth 32 203 in_ch_cfg $CHANNEL_CONFIG_3_POINT_1 204 in_ch_map $CHANNEL_MAP_3_POINT_1 205 out_ch_cfg $CHANNEL_CONFIG_3_POINT_1 206 out_ch_map $CHANNEL_MAP_3_POINT_1 207 } 208 } 209 210 Object.Widget.eqiir.1 { 211 num_audio_formats 2 212 num_input_audio_formats 2 213 num_output_audio_formats 2 214 Object.Base.audio_format.1 { 215 in_bit_depth 32 216 in_valid_bit_depth 32 217 out_bit_depth 32 218 out_valid_bit_depth 32 219 } 220 Object.Base.audio_format.2 { 221 in_channels 4 222 in_bit_depth 32 223 in_valid_bit_depth 32 224 out_channels 4 225 out_bit_depth 32 226 out_valid_bit_depth 32 227 } 228 Object.Control.bytes."1" { 229 name 'DMIC0 capture Iir Eq' 230 } 231 } 232 } 233] 234 235Object.Base.route [ 236 { 237 source $DMIC0_DAI_PIPELINE_SRC 238 sink $DMIC0_HOST_PIPELINE_SINK 239 } 240 { 241 source $DMIC0_DAI_COPIER 242 sink $DMIC0_DAI_GAIN 243 } 244] 245 246Object.PCM.pcm [ 247 { 248 name "DMIC" 249 id $DMIC0_PCM_ID 250 direction "capture" 251 Object.Base.fe_dai.1 { 252 name "DMIC" 253 } 254 255 Object.PCM.pcm_caps.1 { 256 name $DMIC0_PCM_CAPS 257 # only 32-bit capture supported now 258 formats 'S32_LE' 259 channels_min $NUM_DMICS 260 channels_max $NUM_DMICS 261 } 262 } 263] 264