mirror of https://github.com/thesofproject/sof.git
1382 lines
28 KiB
Plaintext
1382 lines
28 KiB
Plaintext
<searchdir:include>
|
|
<searchdir:include/common>
|
|
<searchdir:include/components>
|
|
<searchdir:include/dais>
|
|
<searchdir:include/pipelines/cavs>
|
|
<searchdir:platform>
|
|
<searchdir:platform/intel>
|
|
|
|
<vendor-token.conf>
|
|
<manifest.conf>
|
|
<pdm_config.conf>
|
|
<tokens.conf>
|
|
<virtual.conf>
|
|
<host-gateway-capture.conf>
|
|
<host-gateway-playback.conf>
|
|
<io-gateway-capture.conf>
|
|
<io-gateway.conf>
|
|
<dai-kpb-be.conf>
|
|
<wov-detect.conf>
|
|
<host-copier-gain-mixin-playback.conf>
|
|
<host-copier-gain-src-mixin-playback.conf>
|
|
<mixout-gain-dai-copier-playback.conf>
|
|
<mixout-gain-smart-amp-dai-copier-playback.conf>
|
|
<dai-copier-gain-module-copier-capture.conf>
|
|
<dai-copier-eqiir-module-copier-capture.conf>
|
|
<gain-module-copier.conf>
|
|
<gain-capture.conf>
|
|
<gain-copier-capture.conf>
|
|
<deepbuffer-playback.conf>
|
|
<mixout-mixin.conf>
|
|
<data.conf>
|
|
<pcm.conf>
|
|
<pcm_caps.conf>
|
|
<fe_dai.conf>
|
|
<ssp.conf>
|
|
<dmic.conf>
|
|
<intel/hw_config_cardinal_clk.conf>
|
|
<manifest.conf>
|
|
<route.conf>
|
|
<intel/common_definitions.conf>
|
|
<dai-copier.conf>
|
|
<module-copier.conf>
|
|
<pipeline.conf>
|
|
<dai.conf>
|
|
<host.conf>
|
|
<kpb.conf>
|
|
<input_pin_binding.conf>
|
|
<output_pin_binding.conf>
|
|
<input_audio_format.conf>
|
|
<output_audio_format.conf>
|
|
<dmic-default.conf>
|
|
|
|
Define {
|
|
MCLK 24576000
|
|
NUM_DMICS 0
|
|
# override DMIC default definitions
|
|
DMIC0_HOST_PIPELINE_ID 13
|
|
DMIC0_DAI_PIPELINE_ID 14
|
|
DMIC0_HOST_PIPELINE_SINK 'gain.13.1'
|
|
DMIC0_DAI_PIPELINE_SRC 'module-copier.14.2'
|
|
DMIC0_DAI_COPIER 'dai-copier.DMIC.NoCodec-6.capture'
|
|
DMIC0_DAI_GAIN 'eqiir.14.1'
|
|
DMIC0_NAME 'NoCodec-6'
|
|
DMIC1_NAME 'NoCodec-7'
|
|
DMIC0_PCM_CAPS 'Gain Capture 13'
|
|
DMIC1_PCM_CAPS 'DMIC1 WOV Capture'
|
|
PLATFORM "none"
|
|
DEEP_BUFFER_PIPELINE_ID 15
|
|
DEEP_BUFFER_PCM_ID 31
|
|
DEEP_BUFFER_PIPELINE_SRC 'mixin.15.1'
|
|
DEEP_BUFFER_PIPELINE_SINK 'mixout.2.1'
|
|
DEEP_BUFFER_PCM_NAME 'Deepbuffer Port0'
|
|
SMART_AMP_UUID "1e:96:7a:16:e4:8a:ea:11:89:f1:00:0c:29:ce:16:35"
|
|
# SSP0 stream has two versions: with 3 and with 5 pipelines
|
|
SSP0_MIXER_2LEVEL 0
|
|
SSP0_MIXER_PCM_ID_1 41
|
|
SSP0_MIXER_PIPELINE_ID_1 16
|
|
SSP0_MIXER_PIPELINE_ID_2 21
|
|
SSP0_MIXER_SOURCE_1 'mixin.1.1'
|
|
SSP0_MIXER_SINK_1 'mixout.2.1'
|
|
SSP0_MIXER_SOURCE_2 'mixin.16.1'
|
|
SSP0_MIXER_SINK_2 'mixout.16.1'
|
|
SSP0_MIXER_SOURCE_3 'mixin.21.1'
|
|
SSP1_ENABLED "true"
|
|
PASSTHROUGH "false"
|
|
SSP0_PCM_NAME "Port0"
|
|
SSP0_CAPTURE_PCM "Port0 2nd Capture"
|
|
SSP0_CAPTURE_PCM_ID 12
|
|
SSP0_PCM_ID 0
|
|
SSP1_PCM_NAME "Port1"
|
|
SSP2_PCM_NAME "Port2"
|
|
DMIC0_PCM_0_NAME "DMIC SFX1"
|
|
DMIC0_PCM_1_NAME "DMIC SFX2"
|
|
}
|
|
|
|
# override defaults with platform-specific config
|
|
IncludeByKey.PLATFORM {
|
|
"tgl" "platform/intel/tgl.conf"
|
|
"adl" "platform/intel/tgl.conf"
|
|
"mtl" "platform/intel/mtl.conf"
|
|
"lnl" "platform/intel/mtl.conf"
|
|
}
|
|
|
|
# include DMIC config if needed.
|
|
IncludeByKey.NUM_DMICS {
|
|
"[1-4]" "platform/intel/dmic-generic.conf"
|
|
}
|
|
|
|
# include deep buffer config if buffer size is in 1 - 1000 ms.
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
IncludeByKey.DEEPBUFFER_FW_DMA_MS{
|
|
"([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|1000)" "platform/intel/deep-buffer.conf"
|
|
}
|
|
}
|
|
}
|
|
|
|
#
|
|
# List of all DAIs
|
|
#
|
|
Object.Dai.SSP [
|
|
{
|
|
id 0
|
|
dai_index 0
|
|
direction "duplex"
|
|
name NoCodec-0
|
|
default_hw_conf_id 0
|
|
sample_bits 32
|
|
quirks "lbm_mode"
|
|
io_clk $MCLK
|
|
|
|
Object.Base.hw_config.1 {
|
|
name "SSP0"
|
|
id 0
|
|
bclk_freq 3072000
|
|
tdm_slot_width 32
|
|
# TODO: remove this. Needs alsaptlg change.
|
|
Object.Base.link_config.1 {
|
|
clock_source 1
|
|
}
|
|
}
|
|
}
|
|
{
|
|
id 2
|
|
dai_index 2
|
|
direction "duplex"
|
|
name NoCodec-2
|
|
default_hw_conf_id 0
|
|
sample_bits 32
|
|
quirks "lbm_mode"
|
|
io_clk $MCLK
|
|
|
|
Object.Base.hw_config.1 {
|
|
name "SSP2"
|
|
id 0
|
|
bclk_freq 3072000
|
|
tdm_slot_width 32
|
|
# TODO: remove this. Needs alsaptlg change.
|
|
Object.Base.link_config.1 {
|
|
clock_source 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
#
|
|
# Pipeline definitions
|
|
#
|
|
# PCM1 ---> gain ---> Mixin ---> Mixout ---> gain ---> SSP1
|
|
# PCM2 ---> gain ---> SRC ---> Mixin ---> Mixout ---> gain ---> SSP2
|
|
# PCM4 ---> gain ---> Mixin -------------------------->\
|
|
# PCM3 ---> gain ---> Mixin ---->\ \
|
|
# PCM0 ---> gain ---> Mixin ---> Mixout ---> Mixin ---> Mixout ---> gain ---> smart_amp ---> SSP0
|
|
# /
|
|
# /---------------------------------------------------------------------->/
|
|
# SSP0 ---> PCM0
|
|
# SSP1 ---> PCM1
|
|
# SSP2 ---> SRC ---> PCM2
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
Object.Pipeline.host-copier-gain-mixin-playback [
|
|
{
|
|
index 1
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP0 Playback'
|
|
pcm_id 0
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Pre Mixer $SSP0_PCM_NAME Playback Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.host-copier-gain-src-mixin-playback [
|
|
{
|
|
index 5
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP2 Playback'
|
|
pcm_id 2
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Pre Mixer $SSP2_PCM_NAME Playback Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.mixout-gain-smart-amp-dai-copier-playback [
|
|
{
|
|
index 2
|
|
|
|
Object.Widget.dai-copier.1 {
|
|
dai_index 0
|
|
dai_type "SSP"
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-0"
|
|
node_type $I2S_LINK_OUTPUT_CLASS
|
|
}
|
|
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Post Mixer $SSP0_PCM_NAME Playback Volume'
|
|
}
|
|
}
|
|
|
|
Object.Widget.smart_amp.1 {
|
|
|
|
Object.Base.input_pin_binding.1 {
|
|
input_pin_binding_name "gain.2.1"
|
|
}
|
|
|
|
Object.Base.input_pin_binding.2 {
|
|
input_pin_binding_name "dai-copier.SSP.NoCodec-0.capture"
|
|
}
|
|
|
|
Object.Control.bytes."1" {
|
|
name "Main Playback and $SSP0_PCM_NAME smart_amp_init"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.mixout-gain-dai-copier-playback [
|
|
{
|
|
index 6
|
|
|
|
Object.Widget.dai-copier.1 {
|
|
dai_index 2
|
|
dai_type "SSP"
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-2"
|
|
node_type $I2S_LINK_OUTPUT_CLASS
|
|
}
|
|
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Post Mixer $SSP2_PCM_NAME Playback Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.gain-copier-capture [
|
|
{
|
|
index 7
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP0 Capture'
|
|
pcm_id $SSP0_PCM_ID
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Post Demux $SSP0_PCM_NAME Capture Volume'
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
index 17
|
|
format s32le
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP0-1 Capture'
|
|
pcm_id $SSP0_CAPTURE_PCM_ID
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Post Demux $SSP0_CAPTURE_PCM Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
IncludeByKey.NUM_DMICS {
|
|
"[1-4]" {
|
|
Object.Pipeline.gain-module-copier [
|
|
{
|
|
index 19
|
|
direction "capture"
|
|
Object.Widget.pipeline.1 {
|
|
stream_name $DMIC0_DAI_COPIER
|
|
}
|
|
Object.Widget.module-copier.1 {
|
|
stream_name 'Gain Capture 19'
|
|
|
|
num_input_audio_formats 2
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
{
|
|
in_channels 4
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
in_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 2
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
{
|
|
out_channels 4
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
out_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
num_input_audio_formats 2
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
{
|
|
in_channels 4
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
in_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 2
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
{
|
|
out_channels 4
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
out_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
Object.Control.mixer.1 {
|
|
name 'Pre Demux $DMIC0_PCM_0_NAME Capture Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
Object.Pipeline.dai-copier-gain-module-copier-capture [
|
|
{
|
|
index 8
|
|
Object.Widget.dai-copier."1" {
|
|
dai_index 0
|
|
dai_type "SSP"
|
|
type dai_out
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-0"
|
|
node_type $I2S_LINK_INPUT_CLASS
|
|
|
|
num_input_audio_formats 1
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 1
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
|
|
num_output_pins 2
|
|
Object.Base.output_pin_binding.1 {
|
|
output_pin_binding_name "gain.8.1"
|
|
}
|
|
|
|
Object.Base.output_pin_binding.2 {
|
|
output_pin_binding_name "smart_amp.2.1"
|
|
}
|
|
}
|
|
|
|
Object.Widget.module-copier."2" {
|
|
stream_name "NoCodec-0"
|
|
|
|
num_input_audio_formats 1
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 1
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Pre Demux $SSP0_PCM_NAME Capture Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
"true" {
|
|
Object.Pipeline.io-gateway [
|
|
{
|
|
index 2
|
|
direction playback
|
|
|
|
Object.Widget.dai-copier.1 {
|
|
dai_index 0
|
|
dai_type "SSP"
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-0"
|
|
node_type $I2S_LINK_OUTPUT_CLASS
|
|
num_input_pins 1
|
|
num_input_audio_formats 3
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 16
|
|
in_valid_bit_depth 16
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 24
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 3
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 16
|
|
out_valid_bit_depth 16
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 24
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
{
|
|
index 6
|
|
direction playback
|
|
|
|
Object.Widget.dai-copier.1 {
|
|
dai_index 2
|
|
dai_type "SSP"
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-2"
|
|
node_type $I2S_LINK_OUTPUT_CLASS
|
|
num_input_pins 1
|
|
num_input_audio_formats 3
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 16
|
|
in_valid_bit_depth 16
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 24
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 3
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 16
|
|
out_valid_bit_depth 16
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 24
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.host-gateway-playback [
|
|
{
|
|
index 1
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP0 Playback'
|
|
pcm_id 0
|
|
num_input_audio_formats 3
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 16
|
|
in_valid_bit_depth 16
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 24
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 3
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 16
|
|
out_valid_bit_depth 16
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 24
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
{
|
|
index 5
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP2 Playback'
|
|
pcm_id 2
|
|
num_input_audio_formats 3
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 16
|
|
in_valid_bit_depth 16
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 24
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 3
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 16
|
|
out_valid_bit_depth 16
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 24
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.host-gateway-capture [
|
|
{
|
|
index 7
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP0 Capture'
|
|
pcm_id 0
|
|
}
|
|
}
|
|
{
|
|
index 11
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP2 Capture'
|
|
pcm_id 2
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.io-gateway-capture [
|
|
{
|
|
index 8
|
|
direction capture
|
|
|
|
Object.Widget.dai-copier."1" {
|
|
dai_index 0
|
|
dai_type "SSP"
|
|
type dai_out
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-0"
|
|
node_type $I2S_LINK_INPUT_CLASS
|
|
num_output_pins 2
|
|
num_input_audio_formats 1
|
|
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 1
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
Object.Pipeline.io-gateway-capture [
|
|
{
|
|
index 12
|
|
direction capture
|
|
|
|
Object.Widget.dai-copier."1" {
|
|
dai_index 2
|
|
dai_type "SSP"
|
|
type dai_out
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-2"
|
|
node_type $I2S_LINK_INPUT_CLASS
|
|
|
|
num_input_audio_formats 1
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 1
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
Object.Pipeline.host-gateway-capture [
|
|
{
|
|
index 11
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP2 Capture'
|
|
pcm_id 2
|
|
|
|
<include/components/src_format_s32_to_sxx_convert.conf>
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Widget.src.1 {
|
|
index 11
|
|
rate_in 48000
|
|
|
|
<include/components/src_format_s32_convert_from_48k.conf>
|
|
}
|
|
|
|
IncludeByKey.NUM_DMICS {
|
|
"[1-4]" {
|
|
Object.Pipeline.gain-capture [
|
|
{
|
|
format $FORMAT
|
|
index 18
|
|
Object.Widget.pipeline.1 {
|
|
stream_name "$DMIC0_PCM_0_NAME"
|
|
}
|
|
Object.Widget.host-copier.1 {
|
|
stream_name "Gain Capture 18"
|
|
pcm_id 27
|
|
num_input_audio_formats 2
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
{
|
|
in_channels 4
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
in_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 2
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
{
|
|
out_channels 4
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
out_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
num_input_audio_formats 2
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
{
|
|
in_channels 4
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
in_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 2
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
{
|
|
out_channels 4
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
out_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
Object.Control.mixer.1 {
|
|
name 'Post Demux $DMIC0_PCM_0_NAME Capture Volume'
|
|
}
|
|
}
|
|
}
|
|
{
|
|
format $FORMAT
|
|
index 20
|
|
Object.Widget.pipeline.1 {
|
|
stream_name "$DMIC0_PCM_1_NAME"
|
|
}
|
|
Object.Widget.host-copier.1 {
|
|
stream_name "Gain Capture 20"
|
|
pcm_id 28
|
|
num_input_audio_formats 2
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
{
|
|
in_channels 4
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
in_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 2
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
{
|
|
out_channels 4
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
out_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
num_input_audio_formats 2
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
{
|
|
in_channels 4
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
in_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
in_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
num_output_audio_formats 2
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
{
|
|
out_channels 4
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
out_ch_cfg $CHANNEL_CONFIG_3_POINT_1
|
|
out_ch_map $CHANNEL_MAP_3_POINT_1
|
|
}
|
|
]
|
|
|
|
Object.Control.mixer.1 {
|
|
name 'Post Demux $DMIC0_PCM_1_NAME Capture Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Object.PCM.pcm [
|
|
{
|
|
name "$SSP0_PCM_NAME"
|
|
id $SSP0_PCM_ID
|
|
direction "duplex"
|
|
Object.Base.fe_dai.1 {
|
|
name "$SSP0_PCM_NAME"
|
|
}
|
|
|
|
Object.PCM.pcm_caps.1 {
|
|
direction "playback"
|
|
name "SSP0 Playback"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
|
|
Object.PCM.pcm_caps.2 {
|
|
direction "capture"
|
|
name "SSP0 Capture"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
}
|
|
]
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
Object.PCM.pcm [
|
|
{
|
|
name "$SSP0_CAPTURE_PCM"
|
|
id $SSP0_CAPTURE_PCM_ID
|
|
direction "capture"
|
|
Object.Base.fe_dai.1 {
|
|
name "$SSP0_CAPTURE_PCM"
|
|
}
|
|
Object.PCM.pcm_caps.1 {
|
|
name "SSP0-1 Capture"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
}
|
|
{
|
|
name "$DMIC0_PCM_0_NAME"
|
|
id 27
|
|
direction "capture"
|
|
Object.Base.fe_dai."$DMIC0_PCM_0_NAME" {}
|
|
|
|
Object.PCM.pcm_caps."capture" {
|
|
name "Gain Capture 18"
|
|
# only 32-bit capture supported now
|
|
formats 'S32_LE'
|
|
channels_min $NUM_DMICS
|
|
channels_max $NUM_DMICS
|
|
}
|
|
}
|
|
{
|
|
name "$DMIC0_PCM_1_NAME"
|
|
id 28
|
|
direction "capture"
|
|
Object.Base.fe_dai."$DMIC0_PCM_1_NAME" {}
|
|
|
|
Object.PCM.pcm_caps."capture" {
|
|
name "Gain Capture 20"
|
|
# only 32-bit capture supported now
|
|
formats 'S32_LE'
|
|
channels_min $NUM_DMICS
|
|
channels_max $NUM_DMICS
|
|
}
|
|
}
|
|
{
|
|
name "$SSP2_PCM_NAME"
|
|
id 2
|
|
direction "duplex"
|
|
Object.Base.fe_dai.1 {
|
|
name "$SSP2_PCM_NAME"
|
|
}
|
|
|
|
Object.PCM.pcm_caps.1 {
|
|
direction "playback"
|
|
name "SSP2 Playback"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
rate_min 8000
|
|
rate_max 192000
|
|
}
|
|
|
|
Object.PCM.pcm_caps.2 {
|
|
direction "capture"
|
|
name "SSP2 Capture"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
rate_min 8000
|
|
rate_max 192000
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"true" {
|
|
Object.PCM.pcm [
|
|
{
|
|
name "$SSP2_PCM_NAME"
|
|
id 2
|
|
direction "duplex"
|
|
Object.Base.fe_dai.1 {
|
|
name "$SSP2_PCM_NAME"
|
|
}
|
|
|
|
Object.PCM.pcm_caps.1 {
|
|
direction "playback"
|
|
name "SSP2 Playback"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
|
|
Object.PCM.pcm_caps.2 {
|
|
direction "capture"
|
|
name "SSP2 Capture"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
IncludeByKey.NUM_DMICS {
|
|
"[1-4]" {
|
|
Object.Base.route [
|
|
{
|
|
source module-copier.14.2
|
|
sink gain.19.1
|
|
}
|
|
{
|
|
source module-copier.19.1
|
|
sink gain.18.1
|
|
}
|
|
{
|
|
source module-copier.19.1
|
|
sink gain.20.1
|
|
}
|
|
{
|
|
source "gain.18.1"
|
|
sink "host-copier.27.capture"
|
|
}
|
|
{
|
|
source "gain.20.1"
|
|
sink "host-copier.28.capture"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
Object.Base.route [
|
|
{
|
|
source "smart_amp.2.1"
|
|
sink "dai-copier.SSP.NoCodec-0.playback"
|
|
}
|
|
{
|
|
source "gain.6.1"
|
|
sink "dai-copier.SSP.NoCodec-2.playback"
|
|
}
|
|
{
|
|
source "mixin.5.1"
|
|
sink "mixout.6.1"
|
|
}
|
|
{
|
|
source "dai-copier.SSP.NoCodec-0.capture"
|
|
sink "gain.8.1"
|
|
}
|
|
{
|
|
source "module-copier.8.2"
|
|
sink "module-copier.7.2"
|
|
}
|
|
{
|
|
source "module-copier.8.2"
|
|
sink "module-copier.17.2"
|
|
}
|
|
{
|
|
source "dai-copier.SSP.NoCodec-0.capture"
|
|
sink "smart_amp.2.1"
|
|
}
|
|
{
|
|
source 'host-copier.0.playback'
|
|
sink 'gain.1.1'
|
|
}
|
|
{
|
|
source 'host-copier.2.playback'
|
|
sink 'gain.5.1'
|
|
}
|
|
{
|
|
source "gain.7.1"
|
|
sink "host-copier.$SSP0_PCM_ID.capture"
|
|
}
|
|
{
|
|
source "gain.17.1"
|
|
sink "host-copier.$SSP0_CAPTURE_PCM_ID.capture"
|
|
}
|
|
{
|
|
source "dai-copier.SSP.NoCodec-2.capture"
|
|
sink "src.11.1"
|
|
}
|
|
{
|
|
source "src.11.1"
|
|
sink "host-copier.2.capture"
|
|
}
|
|
]
|
|
}
|
|
"true" {
|
|
Object.Base.route [
|
|
{
|
|
source "dai-copier.SSP.NoCodec-0.capture"
|
|
sink "host-copier.0.capture"
|
|
}
|
|
{
|
|
source "host-copier.0.playback"
|
|
sink "dai-copier.SSP.NoCodec-0.playback"
|
|
}
|
|
{
|
|
source "host-copier.2.playback"
|
|
sink "dai-copier.SSP.NoCodec-2.playback"
|
|
}
|
|
{
|
|
source "dai-copier.SSP.NoCodec-2.capture"
|
|
sink "host-copier.2.capture"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
IncludeByKey.SSP0_MIXER_2LEVEL {
|
|
"0" {
|
|
Object.Base.route [
|
|
{
|
|
source $SSP0_MIXER_SOURCE_1
|
|
sink $SSP0_MIXER_SINK_1
|
|
}
|
|
]
|
|
}
|
|
"1" "platform/intel/nocodec-ssp0-2level.conf"
|
|
}
|
|
}
|
|
}
|
|
|
|
# There is pinmux conflict between SSP1 and DMIC on MTL RVP,
|
|
# so include SSP1 pipelines conditionally.
|
|
IncludeByKey.SSP1_ENABLED {
|
|
"true" {
|
|
Object.Dai.SSP [
|
|
{
|
|
id 1
|
|
dai_index 1
|
|
direction "duplex"
|
|
name NoCodec-1
|
|
default_hw_conf_id 0
|
|
sample_bits 32
|
|
quirks "lbm_mode"
|
|
io_clk $MCLK
|
|
|
|
Object.Base.hw_config.1 {
|
|
name "SSP1"
|
|
id 0
|
|
bclk_freq 3072000
|
|
tdm_slot_width 32
|
|
# TODO: remove this. Needs alsaptlg change.
|
|
Object.Base.link_config.1 {
|
|
clock_source 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.io-gateway-capture [
|
|
{
|
|
index 10
|
|
direction capture
|
|
|
|
Object.Widget.dai-copier."1" {
|
|
dai_index 1
|
|
dai_type "SSP"
|
|
type dai_out
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-1"
|
|
node_type $I2S_LINK_INPUT_CLASS
|
|
|
|
num_input_audio_formats 1
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 1
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.host-gateway-capture [
|
|
{
|
|
index 9
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP1 Capture'
|
|
pcm_id 1
|
|
}
|
|
}
|
|
]
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
Object.Pipeline.host-copier-gain-mixin-playback [
|
|
{
|
|
index 3
|
|
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP1 Playback'
|
|
pcm_id 1
|
|
}
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Pre Mixer $SSP1_PCM_NAME Playback Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|
|
Object.Pipeline.mixout-gain-dai-copier-playback [
|
|
{
|
|
index 4
|
|
|
|
Object.Widget.dai-copier.1 {
|
|
dai_index 1
|
|
dai_type "SSP"
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-1"
|
|
node_type $I2S_LINK_OUTPUT_CLASS
|
|
}
|
|
|
|
Object.Widget.gain.1 {
|
|
curve_type "windows_fade"
|
|
Object.Control.mixer.1 {
|
|
name 'Post Mixer $SSP1_PCM_NAME Playback Volume'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
"true" {
|
|
Object.Pipeline.io-gateway [
|
|
{
|
|
index 4
|
|
direction playback
|
|
|
|
Object.Widget.dai-copier.1 {
|
|
dai_index 1
|
|
dai_type "SSP"
|
|
copier_type "SSP"
|
|
stream_name "NoCodec-1"
|
|
node_type $I2S_LINK_OUTPUT_CLASS
|
|
num_input_audio_formats 3
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 16
|
|
in_valid_bit_depth 16
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 24
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 3
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 16
|
|
out_valid_bit_depth 16
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 24
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
Object.Pipeline.host-gateway-playback [
|
|
{
|
|
index 3
|
|
Object.Widget.host-copier.1 {
|
|
stream_name 'SSP1 Playback'
|
|
pcm_id 1
|
|
num_input_audio_formats 3
|
|
Object.Base.input_audio_format [
|
|
{
|
|
in_bit_depth 16
|
|
in_valid_bit_depth 16
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 24
|
|
}
|
|
{
|
|
in_bit_depth 32
|
|
in_valid_bit_depth 32
|
|
}
|
|
]
|
|
num_output_audio_formats 3
|
|
Object.Base.output_audio_format [
|
|
{
|
|
out_bit_depth 16
|
|
out_valid_bit_depth 16
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 24
|
|
}
|
|
{
|
|
out_bit_depth 32
|
|
out_valid_bit_depth 32
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
Object.PCM.pcm [
|
|
{
|
|
name "$SSP1_PCM_NAME"
|
|
id 1
|
|
direction "duplex"
|
|
Object.Base.fe_dai.1 {
|
|
name "$SSP1_PCM_NAME"
|
|
}
|
|
|
|
Object.PCM.pcm_caps.1 {
|
|
direction "playback"
|
|
name "SSP1 Playback"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
|
|
Object.PCM.pcm_caps.2 {
|
|
direction "capture"
|
|
name "SSP1 Capture"
|
|
formats 'S16_LE,S24_LE,S32_LE'
|
|
}
|
|
}
|
|
]
|
|
|
|
IncludeByKey.PASSTHROUGH {
|
|
"false" {
|
|
Object.Base.route [
|
|
{
|
|
source "mixin.3.1"
|
|
sink "mixout.4.1"
|
|
}
|
|
{
|
|
source "gain.4.1"
|
|
sink "dai-copier.SSP.NoCodec-1.playback"
|
|
}
|
|
{
|
|
source 'host-copier.1.playback'
|
|
sink 'gain.3.1'
|
|
}
|
|
]
|
|
}
|
|
"true" {
|
|
Object.Base.route [
|
|
{
|
|
source "host-copier.1.playback"
|
|
sink "dai-copier.SSP.NoCodec-1.playback"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
Object.Base.route [
|
|
{
|
|
source "dai-copier.SSP.NoCodec-1.capture"
|
|
sink "host-copier.1.capture"
|
|
}
|
|
]
|
|
}
|
|
}
|