sof/tools/topology/topology2/cavs-rt5682.conf

382 lines
7.7 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-playback.conf>
<host-gateway-capture.conf>
<io-gateway.conf>
<io-gateway-capture.conf>
<host-copier-gain-mixin-playback.conf>
<mixout-gain-dai-copier-playback.conf>
<deepbuffer-playback.conf>
<dai-copier-be.conf>
<dai-copier-eqiir-module-copier-capture.conf>
<gain-capture.conf>
<gain-module-copier.conf>
<google-rtc-aec-capture.conf>
<data.conf>
<pcm.conf>
<pcm_caps.conf>
<fe_dai.conf>
<ssp.conf>
<dmic.conf>
<hda.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>
<dmic-default.conf>
<hdmi-default.conf>
<bt-default.conf>
<input_pin_binding.conf>
<output_pin_binding.conf>
<input_audio_format.conf>
<output_audio_format.conf>
Define {
MCLK 24576000
# override DMIC default definitions
NUM_DMICS 0
DMIC0_ID 1
DMIC1_ID 2
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.dmic01.capture'
DMIC0_DAI_GAIN 'eqiir.14.1'
DMIC0_NAME 'dmic01'
DMIC0_PCM_CAPS 'Gain Capture 13'
# override BE link ids
NUM_HDMIS 3
HDMI1_ID 3
HDMI2_ID 4
HDMI3_ID 5
HDMI4_ID 6
SPK_ID 7
PLATFORM "none"
USE_CHAIN_DMA "false"
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 Jack Out'
HEADSET_CODEC_NAME 'SSP0-Codec'
HEADSET_PLAYBACK_PCM_STREAM_NAME 'Headset Playback'
HEADSET_CAPTURE_PCM_STREAM_NAME 'Headset Capture'
HEADSET_SSP_DAI_INDEX 0
HEADSET_HW_CONFIG_NAME 'HEADSET HWCFG'
SPEAKER_CODEC_NAME 'SSP1-Codec'
SPEAKER_PLAYBACK_PCM_STREAM_NAME 'Speaker Playback'
SPEAKER_SSP_DAI_INDEX 1
SPEAKER_HW_CONFIG_NAME 'SPEAKER HWCFG'
INCLUDE_ECHO_REF false
ECHO_REF_HOST_PIPELINE_ID 7
ECHO_REF_DAI_PIPELINE_ID 8
ECHO_REF_PCM_ID 29
ECHO_REF_CORE_ID 0
# override BT default definitions
BT_PB_HOST_PIPELINE_ID 9
BT_PB_DAI_PIPELINE_ID 10
BT_PB_DAI_PIPELINE_SRC "copier.host.9.1"
BT_PB_PIPELINE_STREAM_NAME "dai-copier.SSP.10.1"
GOOGLE_RTC_AEC_SUPPORT 0
GOOGLE_AEC_CORE_ID 0
HEADSET_PCM_NAME "Headset"
HEADSET_PCM_ID 0
SPEAKER_PCM_NAME "Speakers"
SPEAKER_PCM_ID 1
INCLUDE_BT_OFFLOAD true
GOOGLE_AEC_HOST_PIPELINE_PRIORITY 3
GOOGLE_AEC_PIPELINE_PRIORITY 2
DMIC_PIPELINE_PRIORITY 1
ECHO_REF_PIPELINE_PRIORITY 0
}
# override defaults with platform-specific config
IncludeByKey.PLATFORM {
"mtl" "platform/intel/mtl.conf"
}
# include DMIC config if needed.
IncludeByKey.NUM_DMICS {
"[1-4]" "platform/intel/dmic-generic.conf"
}
# include HDMI config if needed.
IncludeByKey.NUM_HDMIS {
"[3-4]" "platform/intel/hdmi-generic.conf"
}
# include deep buffer config if buffer size is in 1 - 1000 ms.
IncludeByKey.DEEPBUFFER_FW_DMA_MS{
"([1-9]|[1-9][0-9]|[1-9][0-9][0-9]|1000)" "platform/intel/deep-buffer.conf"
}
IncludeByKey.INCLUDE_ECHO_REF {
"true" "platform/intel/speaker-echo-ref.conf"
}
# enable GOOGLE RTC AEC if needed
IncludeByKey.GOOGLE_RTC_AEC_SUPPORT {
"[1]" "platform/intel/google-rtc-aec-reference.conf"
}
IncludeByKey.INCLUDE_BT_OFFLOAD {
"true" "platform/intel/bt-generic.conf"
}
#
# List of all DAIs
#
#SSP Index: 0, Direction: duplex
Object.Dai.SSP [
{
id 0
dai_index $HEADSET_SSP_DAI_INDEX
direction "duplex"
name $HEADSET_CODEC_NAME
default_hw_conf_id 0
sample_bits 32
io_clk $MCLK
Object.Base.hw_config.1 {
name $HEADSET_HW_CONFIG_NAME
id 0
bclk_freq 3072000
tdm_slot_width 32
# TODO: remove this. Needs alsaptlg change.
Object.Base.link_config.1 {
clock_source 1
}
}
}
{
id $SPK_ID
dai_index $SPEAKER_SSP_DAI_INDEX
IncludeByKey.INCLUDE_ECHO_REF {
"false" {
direction "playback"
}
"true" {
direction "duplex"
quirks "lbm_mode"
}
}
name $SPEAKER_CODEC_NAME
default_hw_conf_id 0
sample_bits 32
io_clk $MCLK
Object.Base.hw_config.1 {
name $SPEAKER_HW_CONFIG_NAME
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
#
# PCM0 ---> gain ----> Mixin ----> Mixout ----> gain ----> SSP0
# PCM1 ---> gain ----> Mixin ----> Mixout ----> gain ----> SSP1
#
# SSP0 ----> PCM0
# SSP1 ----> PCM1
# Pipeline ID:1 PCM ID: 0
Object.Pipeline {
# playback pipelines
host-copier-gain-mixin-playback [
{
index 1
Object.Widget.host-copier.1 {
stream_name '$HEADSET_PLAYBACK_PCM_STREAM_NAME'
pcm_id $HEADSET_PCM_ID
}
Object.Widget.gain.1 {
Object.Control.mixer.1 {
name 'Pre Mixer $HEADSET_PCM_NAME Playback Volume'
}
}
}
{
index 3
Object.Widget.host-copier.1 {
stream_name '$SPEAKER_PLAYBACK_PCM_STREAM_NAME'
pcm_id $SPEAKER_PCM_ID
}
Object.Widget.gain.1 {
Object.Control.mixer.1 {
name 'Pre Mixer $SPEAKER_PCM_NAME Playback Volume'
}
}
}
]
mixout-gain-dai-copier-playback [
{
index 2
Object.Widget.dai-copier.1 {
dai_index $HEADSET_SSP_DAI_INDEX
dai_type "SSP"
copier_type "SSP"
stream_name "$HEADSET_CODEC_NAME"
node_type $I2S_LINK_OUTPUT_CLASS
}
Object.Widget.gain.1 {
Object.Control.mixer.1 {
name 'Post Mixer $HEADSET_PCM_NAME Playback Volume'
}
}
}
{
index 4
Object.Widget.dai-copier.1 {
dai_index $SPEAKER_SSP_DAI_INDEX
dai_type "SSP"
copier_type "SSP"
stream_name "$SPEAKER_CODEC_NAME"
node_type $I2S_LINK_OUTPUT_CLASS
}
Object.Widget.gain.1 {
Object.Control.mixer.1 {
name 'Post Mixer $SPEAKER_PCM_NAME Playback Volume'
}
}
}
]
host-gateway-capture [
{
index 5
Object.Widget.host-copier.1 {
stream_name '$HEADSET_CAPTURE_PCM_STREAM_NAME'
pcm_id $HEADSET_PCM_ID
}
}
]
io-gateway-capture [
{
index 6
direction capture
Object.Widget.dai-copier."1" {
dai_index $HEADSET_SSP_DAI_INDEX
dai_type "SSP"
type dai_out
copier_type "SSP"
stream_name "$HEADSET_CODEC_NAME"
node_type $I2S_LINK_INPUT_CLASS
Object.Base.input_audio_format [
{
in_bit_depth 32
in_valid_bit_depth 32
}
]
Object.Base.output_audio_format [
{
out_bit_depth 32
out_valid_bit_depth 32
}
]
}
}
]
}
Object.PCM.pcm [
{
name "$HEADSET_PCM_NAME"
id $HEADSET_PCM_ID
direction "duplex"
Object.Base.fe_dai.1 {
name "$HEADSET_PCM_NAME"
}
Object.PCM.pcm_caps.1 {
direction "playback"
name "$HEADSET_PLAYBACK_PCM_STREAM_NAME"
formats 'S16_LE,S24_LE,S32_LE'
}
Object.PCM.pcm_caps.2 {
direction "capture"
name "$HEADSET_CAPTURE_PCM_STREAM_NAME"
formats 'S16_LE,S24_LE,S32_LE'
}
}
{
name "$SPEAKER_PCM_NAME"
id $SPEAKER_PCM_ID
direction "playback"
Object.Base.fe_dai.1 {
name "$SPEAKER_PCM_NAME"
}
Object.PCM.pcm_caps.1 {
name "$SPEAKER_PLAYBACK_PCM_STREAM_NAME"
formats 'S16_LE,S24_LE,S32_LE'
}
}
]
Object.Base.route [
{
source "gain.2.1"
sink "dai-copier.SSP.$HEADSET_CODEC_NAME.playback"
}
{
source "mixin.1.1"
sink "mixout.2.1"
}
{
source "gain.4.1"
sink "dai-copier.SSP.$SPEAKER_CODEC_NAME.playback"
}
{
source "mixin.3.1"
sink "mixout.4.1"
}
{
source "dai-copier.SSP.$HEADSET_CODEC_NAME.capture"
sink "host-copier.$HEADSET_PCM_ID.capture"
}
{
source "host-copier.$HEADSET_PCM_ID.playback"
sink "gain.1.1"
}
{
source "host-copier.$SPEAKER_PCM_ID.playback"
sink "gain.3.1"
}
]