diff --git a/tools/topology/topology2/cavs-nocodec.conf b/tools/topology/topology2/cavs-nocodec.conf index 09a13b4926ad..b749291e3336 100644 --- a/tools/topology/topology2/cavs-nocodec.conf +++ b/tools/topology/topology2/cavs-nocodec.conf @@ -50,6 +50,7 @@ + Define { MCLK 24576000 @@ -101,6 +102,7 @@ IncludeByKey.PLATFORM { "adl" "platform/intel/tgl.conf" "mtl" "platform/intel/mtl.conf" "lnl" "platform/intel/lnl.conf" + "ptl" "platform/intel/ptl.conf" } # include DMIC config if needed. @@ -134,8 +136,18 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name "SSP0" id 0 - bclk_freq 3072000 - tdm_slot_width 32 + IncludeByKey.SSP0_RATE { + "48000" { + fsync_freq 48000 + bclk_freq 3072000 + tdm_slot_width 32 + } + "96000" { + fsync_freq 96000 + bclk_freq 6144000 + tdm_slot_width 32 + } + } # TODO: remove this. Needs alsaptlg change. Object.Base.link_config.1 { clock_source 1 @@ -155,8 +167,18 @@ Object.Dai.SSP [ Object.Base.hw_config.1 { name "SSP2" id 0 - bclk_freq 3072000 - tdm_slot_width 32 + IncludeByKey.SSP2_RATE { + "48000" { + fsync_freq 48000 + bclk_freq 3072000 + tdm_slot_width 32 + } + "96000" { + fsync_freq 96000 + bclk_freq 6144000 + tdm_slot_width 32 + } + } # TODO: remove this. Needs alsaptlg change. Object.Base.link_config.1 { clock_source 1 @@ -328,10 +350,12 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 2 Object.Base.input_audio_format [ { + in_rate $DMIC0_RATE in_bit_depth 32 in_valid_bit_depth 32 } { + in_rate $DMIC0_RATE in_channels 4 in_bit_depth 32 in_valid_bit_depth 32 @@ -343,10 +367,12 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 2 Object.Base.output_audio_format [ { + out_rate $DMIC0_RATE out_bit_depth 32 out_valid_bit_depth 32 } { + out_rate $DMIC0_RATE out_channels 4 out_bit_depth 32 out_valid_bit_depth 32 @@ -360,10 +386,12 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 2 Object.Base.input_audio_format [ { + in_rate $DMIC0_RATE in_bit_depth 32 in_valid_bit_depth 32 } { + in_rate $DMIC0_RATE in_channels 4 in_bit_depth 32 in_valid_bit_depth 32 @@ -375,10 +403,12 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 2 Object.Base.output_audio_format [ { + out_rate $DMIC0_RATE out_bit_depth 32 out_valid_bit_depth 32 } { + out_rate $DMIC0_RATE out_channels 4 out_bit_depth 32 out_valid_bit_depth 32 @@ -475,14 +505,17 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 3 Object.Base.input_audio_format [ { + in_rate $SSP0_RATE in_bit_depth 16 in_valid_bit_depth 16 } { + in_rate $SSP0_RATE in_bit_depth 32 in_valid_bit_depth 24 } { + in_rate $SSP0_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -490,14 +523,17 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 3 Object.Base.output_audio_format [ { + out_rate $SSP0_RATE out_bit_depth 16 out_valid_bit_depth 16 } { + out_rate $SSP0_RATE out_bit_depth 32 out_valid_bit_depth 24 } { + out_rate $SSP0_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -518,14 +554,17 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 3 Object.Base.input_audio_format [ { + in_rate $SSP2_RATE in_bit_depth 16 in_valid_bit_depth 16 } { + in_rate $SSP2_RATE in_bit_depth 32 in_valid_bit_depth 24 } { + in_rate $SSP2_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -533,14 +572,17 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 3 Object.Base.output_audio_format [ { + out_rate $SSP2_RATE out_bit_depth 16 out_valid_bit_depth 16 } { + out_rate $SSP2_RATE out_bit_depth 32 out_valid_bit_depth 24 } { + out_rate $SSP2_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -558,14 +600,17 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 3 Object.Base.input_audio_format [ { + in_rate $SSP0_RATE in_bit_depth 16 in_valid_bit_depth 16 } { + in_rate $SSP0_RATE in_bit_depth 32 in_valid_bit_depth 24 } { + in_rate $SSP0_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -573,14 +618,17 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 3 Object.Base.output_audio_format [ { + out_rate $SSP0_RATE out_bit_depth 16 out_valid_bit_depth 16 } { + out_rate $SSP0_RATE out_bit_depth 32 out_valid_bit_depth 24 } { + out_rate $SSP0_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -596,14 +644,17 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 3 Object.Base.input_audio_format [ { + in_rate $SSP2_RATE in_bit_depth 16 in_valid_bit_depth 16 } { + in_rate $SSP2_RATE in_bit_depth 32 in_valid_bit_depth 24 } { + in_rate $SSP2_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -611,14 +662,17 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 3 Object.Base.output_audio_format [ { + out_rate $SSP2_RATE out_bit_depth 16 out_valid_bit_depth 16 } { + out_rate $SSP2_RATE out_bit_depth 32 out_valid_bit_depth 24 } { + out_rate $SSP2_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -634,6 +688,42 @@ IncludeByKey.PASSTHROUGH { Object.Widget.host-copier.1 { stream_name 'SSP0 Capture' pcm_id 0 + num_input_audio_formats 3 + Object.Base.input_audio_format [ + { + in_rate $SSP0_RATE + in_bit_depth 16 + in_valid_bit_depth 16 + } + { + in_rate $SSP0_RATE + in_bit_depth 32 + in_valid_bit_depth 24 + } + { + in_rate $SSP0_RATE + in_bit_depth 32 + in_valid_bit_depth 32 + } + ] + num_output_audio_formats 3 + Object.Base.output_audio_format [ + { + out_rate $SSP0_RATE + out_bit_depth 16 + out_valid_bit_depth 16 + } + { + out_rate $SSP0_RATE + out_bit_depth 32 + out_valid_bit_depth 24 + } + { + out_rate $SSP0_RATE + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] } } { @@ -643,6 +733,42 @@ IncludeByKey.PASSTHROUGH { Object.Widget.host-copier.1 { stream_name 'SSP2 Capture' pcm_id 2 + num_input_audio_formats 3 + Object.Base.input_audio_format [ + { + in_rate $SSP2_RATE + in_bit_depth 16 + in_valid_bit_depth 16 + } + { + in_rate $SSP2_RATE + in_bit_depth 32 + in_valid_bit_depth 24 + } + { + in_rate $SSP2_RATE + in_bit_depth 32 + in_valid_bit_depth 32 + } + ] + num_output_audio_formats 3 + Object.Base.output_audio_format [ + { + out_rate $SSP2_RATE + out_bit_depth 16 + out_valid_bit_depth 16 + } + { + out_rate $SSP2_RATE + out_bit_depth 32 + out_valid_bit_depth 24 + } + { + out_rate $SSP2_RATE + out_bit_depth 32 + out_valid_bit_depth 32 + } + ] } Object.Widget.pipeline."1" { @@ -668,6 +794,7 @@ IncludeByKey.PASSTHROUGH { Object.Base.input_audio_format [ { + in_rate $SSP0_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -675,6 +802,7 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 1 Object.Base.output_audio_format [ { + out_rate $SSP0_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -702,6 +830,7 @@ Object.Pipeline.io-gateway-capture [ num_input_audio_formats 1 Object.Base.input_audio_format [ { + in_rate $SSP2_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -709,6 +838,7 @@ Object.Pipeline.io-gateway-capture [ num_output_audio_formats 1 Object.Base.output_audio_format [ { + out_rate $SSP2_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -764,10 +894,12 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 2 Object.Base.input_audio_format [ { + in_rate $DMIC0_RATE in_bit_depth 32 in_valid_bit_depth 32 } { + in_rate $DMIC0_RATE in_channels 4 in_bit_depth 32 in_valid_bit_depth 32 @@ -779,10 +911,12 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 2 Object.Base.output_audio_format [ { + out_rate $DMIC0_RATE out_bit_depth 32 out_valid_bit_depth 32 } { + out_rate $DMIC0_RATE out_channels 4 out_bit_depth 32 out_valid_bit_depth 32 @@ -796,10 +930,12 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 2 Object.Base.input_audio_format [ { + in_rate $DMIC0_RATE in_bit_depth 32 in_valid_bit_depth 32 } { + in_rate $DMIC0_RATE in_channels 4 in_bit_depth 32 in_valid_bit_depth 32 @@ -811,10 +947,12 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 2 Object.Base.output_audio_format [ { + out_rate $DMIC0_RATE out_bit_depth 32 out_valid_bit_depth 32 } { + out_rate $DMIC0_RATE out_channels 4 out_bit_depth 32 out_valid_bit_depth 32 @@ -840,10 +978,12 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 2 Object.Base.input_audio_format [ { + in_rate $DMIC0_RATE in_bit_depth 32 in_valid_bit_depth 32 } { + in_rate $DMIC0_RATE in_channels 4 in_bit_depth 32 in_valid_bit_depth 32 @@ -855,10 +995,12 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 2 Object.Base.output_audio_format [ { + out_rate $DMIC0_RATE out_bit_depth 32 out_valid_bit_depth 32 } { + out_rate $DMIC0_RATE out_channels 4 out_bit_depth 32 out_valid_bit_depth 32 @@ -872,10 +1014,12 @@ IncludeByKey.PASSTHROUGH { num_input_audio_formats 2 Object.Base.input_audio_format [ { + in_rate $DMIC0_RATE in_bit_depth 32 in_valid_bit_depth 32 } { + in_rate $DMIC0_RATE in_channels 4 in_bit_depth 32 in_valid_bit_depth 32 @@ -887,10 +1031,12 @@ IncludeByKey.PASSTHROUGH { num_output_audio_formats 2 Object.Base.output_audio_format [ { + out_rate $DMIC0_RATE out_bit_depth 32 out_valid_bit_depth 32 } { + out_rate $DMIC0_RATE out_channels 4 out_bit_depth 32 out_valid_bit_depth 32 @@ -923,12 +1069,28 @@ Object.PCM.pcm [ direction "playback" name "SSP0 Playback" formats 'S16_LE,S24_LE,S32_LE' + IncludeByKey.SSP0_RATE { + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } Object.PCM.pcm_caps.2 { direction "capture" name "SSP0 Capture" formats 'S16_LE,S24_LE,S32_LE' + IncludeByKey.SSP0_RATE { + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } } ] @@ -960,6 +1122,17 @@ IncludeByKey.PASSTHROUGH { formats 'S32_LE' channels_min $NUM_DMICS channels_max $NUM_DMICS + IncludeByKey.DMIC0_RATE { + "16000" { + rates '16000' + } + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } } { @@ -974,6 +1147,17 @@ IncludeByKey.PASSTHROUGH { formats 'S32_LE' channels_min $NUM_DMICS channels_max $NUM_DMICS + IncludeByKey.DMIC0_RATE { + "16000" { + rates '16000' + } + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } } { @@ -1017,12 +1201,28 @@ IncludeByKey.PASSTHROUGH { direction "playback" name "SSP2 Playback" formats 'S16_LE,S24_LE,S32_LE' + IncludeByKey.SSP2_RATE { + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } Object.PCM.pcm_caps.2 { direction "capture" name "SSP2 Capture" formats 'S16_LE,S24_LE,S32_LE' + IncludeByKey.SSP2_RATE { + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } } ] @@ -1169,8 +1369,18 @@ IncludeByKey.SSP1_ENABLED { Object.Base.hw_config.1 { name "SSP1" id 0 - bclk_freq 3072000 - tdm_slot_width 32 + IncludeByKey.SSP1_RATE { + "48000" { + fsync_freq 48000 + tdm_slot_width 32 + bclk_freq 3072000 + } + "96000" { + fsync_freq 96000 + tdm_slot_width 32 + bclk_freq 6144000 + } + } # TODO: remove this. Needs alsaptlg change. Object.Base.link_config.1 { clock_source 1 @@ -1196,6 +1406,7 @@ IncludeByKey.SSP1_ENABLED { num_input_audio_formats 1 Object.Base.input_audio_format [ { + in_rate $SSP1_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -1203,6 +1414,7 @@ IncludeByKey.SSP1_ENABLED { num_output_audio_formats 1 Object.Base.output_audio_format [ { + out_rate $SSP1_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -1294,14 +1506,17 @@ IncludeByKey.SSP1_ENABLED { num_input_audio_formats 3 Object.Base.input_audio_format [ { + in_rate $SSP1_RATE in_bit_depth 16 in_valid_bit_depth 16 } { + in_rate $SSP1_RATE in_bit_depth 32 in_valid_bit_depth 24 } { + in_rate $SSP1_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -1309,14 +1524,17 @@ IncludeByKey.SSP1_ENABLED { num_output_audio_formats 3 Object.Base.output_audio_format [ { + out_rate $SSP1_RATE out_bit_depth 16 out_valid_bit_depth 16 } { + out_rate $SSP1_RATE out_bit_depth 32 out_valid_bit_depth 24 } { + out_rate $SSP1_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -1333,14 +1551,17 @@ IncludeByKey.SSP1_ENABLED { num_input_audio_formats 3 Object.Base.input_audio_format [ { + in_rate $SSP1_RATE in_bit_depth 16 in_valid_bit_depth 16 } { + in_rate $SSP1_RATE in_bit_depth 32 in_valid_bit_depth 24 } { + in_rate $SSP1_RATE in_bit_depth 32 in_valid_bit_depth 32 } @@ -1348,14 +1569,17 @@ IncludeByKey.SSP1_ENABLED { num_output_audio_formats 3 Object.Base.output_audio_format [ { + out_rate $SSP1_RATE out_bit_depth 16 out_valid_bit_depth 16 } { + out_rate $SSP1_RATE out_bit_depth 32 out_valid_bit_depth 24 } { + out_rate $SSP1_RATE out_bit_depth 32 out_valid_bit_depth 32 } @@ -1379,12 +1603,28 @@ IncludeByKey.SSP1_ENABLED { direction "playback" name "SSP1 Playback" formats 'S16_LE,S24_LE,S32_LE' + IncludeByKey.SSP1_RATE { + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } Object.PCM.pcm_caps.2 { direction "capture" name "SSP1 Capture" formats 'S16_LE,S24_LE,S32_LE' + IncludeByKey.SSP1_RATE { + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } } ] diff --git a/tools/topology/topology2/cavs-rt5682.conf b/tools/topology/topology2/cavs-rt5682.conf index f601ef878d47..91462a8c762f 100644 --- a/tools/topology/topology2/cavs-rt5682.conf +++ b/tools/topology/topology2/cavs-rt5682.conf @@ -129,6 +129,7 @@ Define { IncludeByKey.PLATFORM { "mtl" "platform/intel/mtl.conf" "lnl" "platform/intel/lnl.conf" + "ptl" "platform/intel/ptl.conf" } # include DMIC config if needed. diff --git a/tools/topology/topology2/development/tplg-targets.cmake b/tools/topology/topology2/development/tplg-targets.cmake index bec343c58c04..fc7e41719eca 100644 --- a/tools/topology/topology2/development/tplg-targets.cmake +++ b/tools/topology/topology2/development/tplg-targets.cmake @@ -55,6 +55,45 @@ NHLT_BIN=nhlt-sof-lnl-nocodec-fpga-4ch.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000 "cavs-sdw\;sof-lnl-fpga-rt711-l0\;PLATFORM=lnl,NUM_HDMIS=0,PASSTHROUGH=true" +# SSP topology for PTL +"cavs-nocodec\;sof-ptl-nocodec\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec.bin" + +# SSP topology for PTL with 96 kHz DMIC +"cavs-nocodec\;sof-ptl-nocodec-dmic-4ch-96k\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,\ +DMIC0_RATE=96000,PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec-dmic-4ch-96k.bin" + +# SSP topology for PTL with 96 kHz DMIC and 96 kHz SSP0 +"cavs-nocodec\;sof-ptl-nocodec-dmic-4ch-96k-ssp0-96k\;PLATFORM=ptl,NUM_DMICS=4,\ +PDM1_MIC_A_ENABLE=1,PDM1_MIC_B_ENABLE=1,DMIC0_RATE=96000,SSP0_RATE=96000,PASSTHROUGH=true,\ +PREPROCESS_PLUGINS=nhlt,NHLT_BIN=nhlt-sof-ptl-nocodec-dmic-4ch-96k-ssp0-96k.bin" + +# SSP topology for PTL FPGA with lower DMIC IO clock of 19.2MHz, 2ch PDM0 enabled +"cavs-nocodec\;sof-ptl-nocodec-fpga-2ch-pdm0\;PLATFORM=ptl,NUM_DMICS=2,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-ptl-nocodec-fpga-2ch-pdm0.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000" + +# SSP topology for PTL FPGA with lower DMIC IO clock of 19.2MHz, 4ch both PDM0 and PDM1 enabled +"cavs-nocodec\;sof-ptl-nocodec-fpga-4ch\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-ptl-nocodec-fpga-4ch.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000" + +# SSP topology for PTL FPGA with lower DMIC IO clock of 19.2MHz, 4ch both PDM0 and PDM1 enabled, with 96 kHz DMIC +"cavs-nocodec\;sof-ptl-nocodec-fpga-dmic-4ch-96k\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_RATE=96000,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-ptl-nocodec-fpga-dmic-4ch-96k.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000" + +# SSP topology for PTL FPGA, same as previous but with 96 kHz SSP0 +"cavs-nocodec\;sof-ptl-nocodec-fpga-dmic-4ch-96k-ssp0-96k\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_RATE=96000,SSP0_RATE=96000,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-ptl-nocodec-fpga-dmic-4ch-96k-ssp0-96k.bin,PASSTHROUGH=true,DMIC_IO_CLK=19200000" + +# Topology for PTL with max98357a and rt5682 +"cavs-rt5682\;sof-ptl-max98357a-rt5682-ssp2-ssp0\;PLATFORM=ptl,NUM_DMICS=4,PDM1_MIC_A_ENABLE=1,\ +PDM1_MIC_B_ENABLE=1,DMIC0_PCM_ID=99,PREPROCESS_PLUGINS=nhlt,\ +NHLT_BIN=nhlt-sof-ptl-max98357a-rt5682-ssp2-ssp0.bin,DEEPBUFFER_FW_DMA_MS=10,HEADSET_SSP_DAI_INDEX=2,\ +SPK_ID=6,SPEAKER_SSP_DAI_INDEX=0,HEADSET_CODEC_NAME=SSP2-Codec,SPEAKER_CODEC_NAME=SSP0-Codec,\ +BT_NAME=SSP1-BT,BT_INDEX=1,BT_ID=7,BT_PCM_NAME=Bluetooth,INCLUDE_ECHO_REF=true,DEEP_BUF_SPK=true" + # CAVS HDA topology with mixer-based efx eq pipelines for HDA and passthrough pipelines for HDMI "sof-hda-generic\;sof-hda-efx-generic\;HDA_CONFIG=efx,HDA_MIC_ENHANCED_CAPTURE=true,\ EFX_FIR_PARAMS=passthrough,EFX_IIR_PARAMS=passthrough,EFX_DRC_PARAMS=passthrough,\ diff --git a/tools/topology/topology2/include/common/common_definitions.conf b/tools/topology/topology2/include/common/common_definitions.conf index fe4a2d6e142e..9da9fcb78f34 100644 --- a/tools/topology/topology2/include/common/common_definitions.conf +++ b/tools/topology/topology2/include/common/common_definitions.conf @@ -64,4 +64,5 @@ Define { SSP_BLOB_VERSION_1_0 0x100 SSP_BLOB_VERSION_1_5 0x105 + SSP_BLOB_VERSION_3_0 0x300 } diff --git a/tools/topology/topology2/include/dais/ssp.conf b/tools/topology/topology2/include/dais/ssp.conf index 6c0d91f2bd69..cccba74dea10 100644 --- a/tools/topology/topology2/include/dais/ssp.conf +++ b/tools/topology/topology2/include/dais/ssp.conf @@ -113,6 +113,7 @@ Class.Dai."SSP" { !valid_values [ $SSP_BLOB_VERSION_1_0 $SSP_BLOB_VERSION_1_5 + $SSP_BLOB_VERSION_3_0 ] } } diff --git a/tools/topology/topology2/platform/intel/dmic-generic.conf b/tools/topology/topology2/platform/intel/dmic-generic.conf index 22b811c18c83..4929fbab0687 100644 --- a/tools/topology/topology2/platform/intel/dmic-generic.conf +++ b/tools/topology/topology2/platform/intel/dmic-generic.conf @@ -721,8 +721,17 @@ Object.PCM.pcm [ formats 'S32_LE' channels_min $DMIC0_PCM_CHANNELS channels_max $DMIC0_PCM_CHANNELS - rate_min $DMIC0_RATE - rate_max $DMIC0_RATE + IncludeByKey.DMIC0_RATE { + "16000" { + rates '16000' + } + "48000" { + rates '48000' + } + "96000" { + rates '96000' + } + } } } ] diff --git a/tools/topology/topology2/platform/intel/ssp-default.conf b/tools/topology/topology2/platform/intel/ssp-default.conf new file mode 100644 index 000000000000..cab144bd5da9 --- /dev/null +++ b/tools/topology/topology2/platform/intel/ssp-default.conf @@ -0,0 +1,12 @@ +# Default SSP variable definitions +Define { + SSP0_RATE 48000 + SSP0_BCLK_FREQ 3072000 + SSP0_TDM_SLOT_WIDTH 32 + SSP1_RATE 48000 + SSP1_BCLK_FREQ 3072000 + SSP1_TDM_SLOT_WIDTH 32 + SSP2_RATE 48000 + SSP2_BCLK_FREQ 3072000 + SSP2_TDM_SLOT_WIDTH 32 +}