From 775454302a4b07c5720615183ca9928900943a10 Mon Sep 17 00:00:00 2001 From: Siva Subramanian Ravi Saravanan Date: Fri, 13 Nov 2026 15:52:45 +0530 Subject: [PATCH] tools: topology: add ACP_7_F SDW topologies Add topology1 m4 files for the ACP_7_F platform. Signed-off-by: Siva Subramanian Ravi Saravanan --- tools/topology/topology1/CMakeLists.txt | 9 ++ .../topology1/sof-acp7f-1amp-l0-id2.m4 | 43 ++++++ .../topology1/sof-acp7f-1amp-l1-id2.m4 | 43 ++++++ .../topology1/sof-acp7f-jack-l0-id0.m4 | 61 ++++++++ .../topology1/sof-acp7f-jack-l1-id0.m4 | 61 ++++++++ .../topology1/sof-acp7f-mic-l0-id4.m4 | 43 ++++++ .../topology1/sof-acp7f-mic-l1-id4.m4 | 43 ++++++ .../topology1/sof-acp7f-rt721-l0-rt1320-l1.m4 | 134 ++++++++++++++++++ .../topology/topology1/sof-acp7f-rt721-l0.m4 | 132 +++++++++++++++++ 9 files changed, 569 insertions(+) create mode 100644 tools/topology/topology1/sof-acp7f-1amp-l0-id2.m4 create mode 100644 tools/topology/topology1/sof-acp7f-1amp-l1-id2.m4 create mode 100644 tools/topology/topology1/sof-acp7f-jack-l0-id0.m4 create mode 100644 tools/topology/topology1/sof-acp7f-jack-l1-id0.m4 create mode 100644 tools/topology/topology1/sof-acp7f-mic-l0-id4.m4 create mode 100644 tools/topology/topology1/sof-acp7f-mic-l1-id4.m4 create mode 100644 tools/topology/topology1/sof-acp7f-rt721-l0-rt1320-l1.m4 create mode 100644 tools/topology/topology1/sof-acp7f-rt721-l0.m4 diff --git a/tools/topology/topology1/CMakeLists.txt b/tools/topology/topology1/CMakeLists.txt index 95d81a01629f..8b0852b0b1d9 100644 --- a/tools/topology/topology1/CMakeLists.txt +++ b/tools/topology/topology1/CMakeLists.txt @@ -125,6 +125,15 @@ set(TPLGS "sof-acp_7_x_sdw\;sof-acp7x-rt721-l0" "sof-acp_7_x_i2s\;sof-acp7x" "sof-acp_7_x_i2s_24bit\;sof-acp7x-24bit" + "sof-acp7f-rt721-l0\;sof-acp7f-rt721-l0" + "sof-acp7f-rt721-l0\;sof-acp7f-rt722-l0" + "sof-acp7f-rt721-l0-rt1320-l1\;sof-acp7f-cs42l45-l0u0-cs35l63x2-l1u13" + "sof-acp7f-jack-l0-id0\;sof-acp7f-jack-l0-id0" + "sof-acp7f-jack-l1-id0\;sof-acp7f-jack-l1-id0" + "sof-acp7f-1amp-l0-id2\;sof-acp7f-1amp-l0-id2" + "sof-acp7f-1amp-l1-id2\;sof-acp7f-1amp-l1-id2" + "sof-acp7f-mic-l0-id4\;sof-acp7f-mic-l0-id4" + "sof-acp7f-mic-l1-id4\;sof-acp7f-mic-l1-id4" ) # This empty 'production/' source subdirectory exists only to create the diff --git a/tools/topology/topology1/sof-acp7f-1amp-l0-id2.m4 b/tools/topology/topology1/sof-acp7f-1amp-l0-id2.m4 new file mode 100644 index 000000000000..e2c559d33c7e --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-1amp-l0-id2.m4 @@ -0,0 +1,43 @@ +# Function topology: SDCA amp on SDW0 (1 link) for ACP_7_F +# +# PCM Description DAI LINK DAI BE +# 2 Speaker Playback 2 SDW0-PIN4-PLAYBACK-SmartAmp +# +# PCM2 ----> buffer ----> SDW0-PIN4-PLAYBACK + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW0_ACP_SW_AUDIO_4_TX, 4) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, SDW0-PIN4-PLAYBACK-SmartAmp) + +# PCM 2, Speaker Playback, DAI link id 2, Dai index 4, BE SDW0-PIN4-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 2, 2, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-playback.m4, 2, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, + PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 2, DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 48000, 2))) + +PCM_PLAYBACK_ADD(ACP-SW0-PIN4-Playback-SPK, 2, PIPELINE_PCM_2) + +DEBUG_END diff --git a/tools/topology/topology1/sof-acp7f-1amp-l1-id2.m4 b/tools/topology/topology1/sof-acp7f-1amp-l1-id2.m4 new file mode 100644 index 000000000000..b5985974e407 --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-1amp-l1-id2.m4 @@ -0,0 +1,43 @@ +# Function topology: rt1320 SDCA amp (1 link) for ACP_7_F +# +# PCM Description DAI LINK DAI BE +# 2 Speaker Playback 2 SDW1-PIN4-PLAYBACK-SmartAmp +# +# PCM2 ----> buffer ----> SDW1-PIN4-PLAYBACK + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW1_ACP_SW_AUDIO_4_TX, 68) + +define(DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, SDW1-PIN4-PLAYBACK-SmartAmp) + +# PCM 2, Speaker Playback, DAI link id 2, Dai index 68, BE SDW1-PIN4-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 2, 2, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-playback.m4, 2, ACP_SDW, DI_SDW1_ACP_SW_AUDIO_4_TX, DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, + PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_4_TX, 2, DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_4_TX, 48000, 2))) + +PCM_PLAYBACK_ADD(ACP-SW1-PIN4-Playback-SPK, 2, PIPELINE_PCM_2) + +DEBUG_END diff --git a/tools/topology/topology1/sof-acp7f-jack-l0-id0.m4 b/tools/topology/topology1/sof-acp7f-jack-l0-id0.m4 new file mode 100644 index 000000000000..93c88f6fddb8 --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-jack-l0-id0.m4 @@ -0,0 +1,61 @@ +# Function topology: rt721 SDCA jack for ACP_7_F +# +# PCM Description DAI LINK DAI BE +# 0 HS Playback 0 SDW0-PIN0-PLAYBACK-SimpleJack +# 1 HS Capture 1 SDW0-PIN11-CAPTURE-SimpleJack +# +# PCM0 ----> buffer ----> SDW0-PIN0-PLAYBACK +# PCM1 <---- buffer <---- SDW0-PIN11-CAPTURE + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW0_ACP_SW_AUDIO_0_TX, 0 ) +define(DI_SDW0_ACP_SW_AUDIO_0_RX, 11) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, SDW0-PIN0-PLAYBACK-SimpleJack) +define(DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, SDW0-PIN11-CAPTURE-SimpleJack) + +# PCM 0, HS Playback, DAI link id 0, Dai index 0, BE SDW0-PIN0-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 0, 0, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-playback.m4, 0, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, + PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 0, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 48000, 2))) + +PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0) + +# PCM 1, HS Capture, DAI link id 1, Dai index 11, BE SDW0-PIN11-CAPTURE +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 1, 1, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-capture.m4, 1, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, + PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 1, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW0-PIN11-Capture-HS, 1, PIPELINE_PCM_1) + +DEBUG_END diff --git a/tools/topology/topology1/sof-acp7f-jack-l1-id0.m4 b/tools/topology/topology1/sof-acp7f-jack-l1-id0.m4 new file mode 100644 index 000000000000..089bc0189ae0 --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-jack-l1-id0.m4 @@ -0,0 +1,61 @@ +# Function topology: SDCA jack on SDW1 for ACP_7_F +# +# PCM Description DAI LINK DAI BE +# 0 HS Playback 0 SDW1-PIN0-PLAYBACK-SimpleJack +# 1 HS Capture 1 SDW1-PIN11-CAPTURE-SimpleJack +# +# PCM0 ----> buffer ----> SDW1-PIN0-PLAYBACK +# PCM1 <---- buffer <---- SDW1-PIN11-CAPTURE + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW1_ACP_SW_AUDIO_0_TX, 64) +define(DI_SDW1_ACP_SW_AUDIO_0_RX, 75) + +define(DAI_BE_SDW1_ACP_SW_AUDIO_0_TX, SDW1-PIN0-PLAYBACK-SimpleJack) +define(DAI_BE_SDW1_ACP_SW_AUDIO_0_RX, SDW1-PIN11-CAPTURE-SimpleJack) + +# PCM 0, HS Playback, DAI link id 0, Dai index 64, BE SDW1-PIN0-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 0, 0, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-playback.m4, 0, ACP_SDW, DI_SDW1_ACP_SW_AUDIO_0_TX, DAI_BE_SDW1_ACP_SW_AUDIO_0_TX, + PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_0_TX, 0, DAI_BE_SDW1_ACP_SW_AUDIO_0_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_0_TX, 48000, 2))) + +PCM_PLAYBACK_ADD(ACP-SW1-PIN0-Playback-HS, 0, PIPELINE_PCM_0) + +# PCM 1, HS Capture, DAI link id 1, Dai index 75, BE SDW1-PIN11-CAPTURE +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 1, 1, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-capture.m4, 1, ACP_SDW, DI_SDW1_ACP_SW_AUDIO_0_RX, DAI_BE_SDW1_ACP_SW_AUDIO_0_RX, + PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_0_RX, 1, DAI_BE_SDW1_ACP_SW_AUDIO_0_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_0_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW1-PIN11-Capture-HS, 1, PIPELINE_PCM_1) + +DEBUG_END diff --git a/tools/topology/topology1/sof-acp7f-mic-l0-id4.m4 b/tools/topology/topology1/sof-acp7f-mic-l0-id4.m4 new file mode 100644 index 000000000000..0e244dfb7292 --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-mic-l0-id4.m4 @@ -0,0 +1,43 @@ +# Function topology: rt721 SDCA mic for ACP_7_F +# +# PCM Description DAI LINK DAI BE +# 4 SDW DMIC Capture 4 SDW0-PIN16-CAPTURE-SmartMic +# +# PCM4 <---- buffer <---- SDW0-PIN16-CAPTURE + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW0_ACP_SW_AUDIO_5_RX, 16) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, SDW0-PIN16-CAPTURE-SmartMic) + +# PCM 4, SDW DMIC Capture, DAI link id 4, Dai index 16, BE SDW0-PIN16-CAPTURE +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 4, 4, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-capture.m4, 4, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, + PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 4, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW0-PIN16-CAPTURE-DMIC, 4, PIPELINE_PCM_4) + +DEBUG_END diff --git a/tools/topology/topology1/sof-acp7f-mic-l1-id4.m4 b/tools/topology/topology1/sof-acp7f-mic-l1-id4.m4 new file mode 100644 index 000000000000..2966a752b63e --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-mic-l1-id4.m4 @@ -0,0 +1,43 @@ +# Function topology: SDCA mic on SDW1 for ACP_7_F +# +# PCM Description DAI LINK DAI BE +# 4 SDW DMIC Capture 4 SDW1-PIN16-CAPTURE-SmartMic +# +# PCM4 <---- buffer <---- SDW1-PIN16-CAPTURE + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW1_ACP_SW_AUDIO_5_RX, 80) + +define(DAI_BE_SDW1_ACP_SW_AUDIO_5_RX, SDW1-PIN16-CAPTURE-SmartMic) + +# PCM 4, SDW DMIC Capture, DAI link id 4, Dai index 80, BE SDW1-PIN16-CAPTURE +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 4, 4, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-capture.m4, 4, ACP_SDW, DI_SDW1_ACP_SW_AUDIO_5_RX, DAI_BE_SDW1_ACP_SW_AUDIO_5_RX, + PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_5_RX, 4, DAI_BE_SDW1_ACP_SW_AUDIO_5_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_5_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW1-PIN16-CAPTURE-DMIC, 4, PIPELINE_PCM_4) + +DEBUG_END diff --git a/tools/topology/topology1/sof-acp7f-rt721-l0-rt1320-l1.m4 b/tools/topology/topology1/sof-acp7f-rt721-l0-rt1320-l1.m4 new file mode 100644 index 000000000000..52da34e81dae --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-rt721-l0-rt1320-l1.m4 @@ -0,0 +1,134 @@ +#Required Topology for rt721 and rt1320 for ACP_7_X +# +# PCM Description DAI LINK DAI BE +# 0 HS Playback 0 SDW0-PIN0-PLAYBACK +# 1 HS Capture 1 SDW0-PIN11-CAPTURE +# 2 Speaker Playback 2 SDW1-PIN4-PLAYBACK +# 4 SDW DMIC Capture 4 SDW0-PIN16-CAPTURE +# +# Define the pipelines +# +# PCM0 ----> buffer ----> SDW0-PIN0-PLAYBACK +# PCM1 <---- buffer <---- SDW0-PIN11-CAPTURE +# PCM2 ----> buffer ----> SDW1-PIN4-PLAYBACK +# PCM4 <---- buffer <---- SDW0-PIN16-CAPTURE + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') +include(`acp-dmic.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +#/**********************************************************************************/ +define(DI_SDW0_ACP_SW_AUDIO_0_TX, 0 ) +define(DI_SDW0_ACP_SW_AUDIO_0_RX, 11) +define(DI_SDW0_ACP_SW_AUDIO_5_RX, 16) +define(DI_SDW1_ACP_SW_AUDIO_4_TX, 68) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, SDW0-PIN0-PLAYBACK) +define(DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, SDW1-PIN4-PLAYBACK) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, SDW0-PIN11-CAPTURE) +define(DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, SDW0-PIN16-CAPTURE) + +#pipeline: name of the predefined pipeline +#pipe id: pipeline ID. This should be a unique ID identifying the pipeline +#pcm: PCM ID. This will be used to bind to the correct front end DAI link + +dnl PIPELINE_PCM_ADD(pipeline, +dnl pipe id, pcm, max channels, format, +dnl period, priority, core, +dnl pcm_min_rate, pcm_max_rate, pipeline_rate) + +dnl DAI_ADD(pipeline, +dnl pipe id, dai type, dai_index, dai_be, +dnl buffer, periods, format, +dnl deadline, priority, core, time_domain) + +dnl DAI_CONFIG(type, dai_index, link_id, name, acphs_config/acpdmic_config) +dnl ACPHS_CONFIG(format, mclk, bclk, fsync, tdm, acphs_config_data) +dnl ACP_CLOCK(clock, freq, codec_provider, polarity) +dnl ACPHS_CONFIG_DATA(type, idx, valid bits, mclk_id) +dnl mclk_id is optional + +#/**********************************************************************************/ +# PCM 0, HS Playback, DAI link id 0, Dai index 0(Audio_Tx), BE SW0-PIN0-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 0, 0, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-playback.m4, 0, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, +PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 0, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 48000, 2))) +PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0) +#/**********************************************************************************/ + +#/**********************************************************************************/ +#PCM 2, Speaker Playback, PIPE line 2, DAI link id 2, Dai index 4(DI_SDW1_ACP_SW_AUDIO_4_TX), DAI BE SDW1-PIN4-PLAYBACK-SmartAmp +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 2, 2, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# playback DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-playback.m4, 2, ACP_SDW, DI_SDW1_ACP_SW_AUDIO_4_TX, DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, + PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_4_TX, 2, DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW1_ACP_SW_AUDIO_4_TX, 48000, 2))) + +PCM_PLAYBACK_ADD(ACP-SW1-PIN4-Playback-SPK, 2, PIPELINE_PCM_2) +#/**********************************************************************************/ + +#/**********************************************************************************/ +#PCM 1, HS Capture, DAI link id 1, Dai index 11(DI_SDW0_ACP_SW_AUDIO_0_RX), BE DAI_BE_SDW0_ACP_SW_AUDIO_0_RX +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 1, 1, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# Capture DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-capture.m4, 1, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, + PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 1, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW0-PIN11-Capture-HS, 1, PIPELINE_PCM_1) +#/**********************************************************************************/ + +#/**********************************************************************************/ +#PCM 4, SDW Capture, DAI link id 4, Dai index 16(DI_SDW0_ACP_SW_AUDIO_5_RX), BE SDW0-PIN16-CAPTURE-SmartMic +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 4, 4, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# Capture DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-capture.m4, 4, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, + PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 4, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW0-PIN16-CAPTURE-DMIC, 4, PIPELINE_PCM_4) +#/**********************************************************************************/ + +DEBUG_END \ No newline at end of file diff --git a/tools/topology/topology1/sof-acp7f-rt721-l0.m4 b/tools/topology/topology1/sof-acp7f-rt721-l0.m4 new file mode 100644 index 000000000000..99ee0e6b3040 --- /dev/null +++ b/tools/topology/topology1/sof-acp7f-rt721-l0.m4 @@ -0,0 +1,132 @@ +#Required Topology for rt721 with ACP DMIC Card for ACP_7_X +# +# PCM Description DAI LINK DAI BE +# 0 HS Playback 0 SDW0-PIN0-PLAYBACK AUDIO_TX +# 1 HS Capture 1 SDW0-PIN11-CAPTURE AUDIO_RX +# 2 Speaker playback 2 SDW0-PIN4-PLAYBACK BT_TX +# 4 SDW DMIC 4 SDW0-PIN16-CAPTURE HS_RX + +# +# Define the pipelines +# +# PCM0 ----> buffer ----> AUDIO_TX +# PCM1 <---- buffer <---- AUDIO_RX +# PCM2 ----> buffer ----> BT_TX +# PCM4 <---- buffer <---- HS_RX + +# Include topology builder +include(`utils.m4') +include(`dai.m4') +include(`pipeline.m4') +include(`acp-sdw.m4') +include(`acp-dmic.m4') + +# Include TLV library +include(`common/tlv.m4') + +# Include Token library +include(`sof/tokens.m4') + +# Include ACP DSP configuration +include(`platform/amd/acp.m4') + +DEBUG_START + +define(DI_SDW0_ACP_SW_AUDIO_0_TX, 0 ) +define(DI_SDW0_ACP_SW_AUDIO_4_TX, 4 ) +define(DI_SDW0_ACP_SW_AUDIO_0_RX, 11) +define(DI_SDW0_ACP_SW_AUDIO_5_RX, 16) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, SDW0-PIN4-PLAYBACK) +define(DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, SDW0-PIN0-PLAYBACK) + +define(DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, SDW0-PIN11-CAPTURE) +define(DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, SDW0-PIN16-CAPTURE) + +#pipeline: name of the predefined pipeline +#pipe id: pipeline ID. This should be a unique ID identifying the pipeline +#pcm: PCM ID. This will be used to bind to the correct front end DAI link + +dnl PIPELINE_PCM_ADD(pipeline, +dnl pipe id, pcm, max channels, format, +dnl period, priority, core, +dnl pcm_min_rate, pcm_max_rate, pipeline_rate) + +dnl DAI_ADD(pipeline, +dnl pipe id, dai type, dai_index, dai_be, +dnl buffer, periods, format, +dnl deadline, priority, core, time_domain) + +dnl DAI_CONFIG(type, dai_index, link_id, name, acphs_config/acpdmic_config) +dnl ACPHS_CONFIG(format, mclk, bclk, fsync, tdm, acphs_config_data) +dnl ACP_CLOCK(clock, freq, codec_provider, polarity) +dnl ACPHS_CONFIG_DATA(type, idx, valid bits, mclk_id) +dnl mclk_id is optional + +#/**********************************************************************************/ +# PCM 0, HS Playback, DAI link id 0, Dai index 0(Audio_Tx), BE SW0-PIN0-PLAYBACK +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 0, 0, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +DAI_ADD(sof/pipe-dai-playback.m4, 0, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, +PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 0, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 48000, 2))) +PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0) + +#/**********************************************************************************/ +#PCM 2, Speaker Playback, PIPE line 2, DAI link id 2, Dai index 4(DI_SDW0_ACP_SW_AUDIO_4_TX), DAI BE SDW0-PIN4-PLAYBACK-SmartAmp +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, + 2, 2, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# playback DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-playback.m4, 2, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, + PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 2, DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 48000, 2))) + +PCM_PLAYBACK_ADD(ACP-SW0-PIN4-Playback-SPK, 2, PIPELINE_PCM_2) +#/**********************************************************************************/ + +#/**********************************************************************************/ +#PCM 1, HS Capture, DAI link id 1, Dai index 11(DI_SDW0_ACP_SW_AUDIO_0_RX), BE DAI_BE_SDW0_ACP_SW_AUDIO_0_RX +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 1, 1, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# Capture DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-capture.m4, 1, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, + PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 1, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW0-PIN11-Capture-HS, 1, PIPELINE_PCM_1) +#/**********************************************************************************/ +#/**********************************************************************************/ +#PCM 4, SDW Capture, DAI link id 4, Dai index 16(DI_SDW0_ACP_SW_AUDIO_5_RX), BE SDW0-PIN16-CAPTURE-SmartMic +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, + 4, 4, 2, s16le, + 2000, 0, 0, + 48000, 48000, 48000) + +# Capture DAI is ACP soundwire using 2 periods +DAI_ADD(sof/pipe-dai-capture.m4, 4, ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, + PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER) + +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 4, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 48000, 2))) + +PCM_CAPTURE_ADD(ACP-SW0-PIN16-CAPTURE-DMIC, 4, PIPELINE_PCM_4) +#/**********************************************************************************/ + +DEBUG_END \ No newline at end of file