Skip to content

Commit d291d9a

Browse files
committed
tools: topology: add ACP_7_X SDW 24-bit topology
Add sof-acp_7_x_sdw_24bit.m4 topology for ACP_7_X SDW 24-bit pipelines supporting playback and capture paths. Signed-off-by: Sneha Voona <sneha.voona@amd.com>
1 parent 25209de commit d291d9a

1 file changed

Lines changed: 139 additions & 0 deletions

File tree

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
#Required Topology for rt721 with ACP DMIC Card for ACP_7_X
2+
#
3+
# PCM Description DAI LINK DAI BE
4+
# 0 HS Playback 0 SDW0-PIN0-PLAYBACK-SimpleJack AUDIO_TX
5+
# 1 HS Capture 1 SDW0-PIN11-CAPTURE-SimpleJack AUDIO_RX
6+
# 2 Speaker playback 2 SDW0-PIN4-PLAYBACK-SmartAmp BT_TX
7+
# 4 SDW DMIC 4 SDW0-PIN16-CAPTURE-SmartMic HS_RX
8+
9+
#
10+
# Define the pipelines
11+
#
12+
# PCM0 ----> buffer ----> AUDIO_TX
13+
# PCM1 <---- buffer <---- AUDIO_RX
14+
# PCM2 ----> buffer ----> BT_TX
15+
# PCM4 <---- buffer <---- HS_RX
16+
17+
# Include topology builder
18+
include(`utils.m4')
19+
include(`dai.m4')
20+
include(`pipeline.m4')
21+
include(`acp-sdw.m4')
22+
include(`acp-dmic.m4')
23+
24+
# Include TLV library
25+
include(`common/tlv.m4')
26+
27+
# Include Token library
28+
include(`sof/tokens.m4')
29+
30+
# Include ACP DSP configuration
31+
include(`platform/amd/acp.m4')
32+
33+
DEBUG_START
34+
35+
#/**********************************************************************************/
36+
# PCM 0, HS Playback, DAI link id 0, Dai index 0(Audio_Tx), BE SW0-PIN0-PLAYBACK
37+
38+
#Driver dai index and dai BE
39+
#DAI Index(Instance * 64 + base_index) DAI_BE
40+
#0(DI_SDW0_ACP_SW_AUDIO_0_TX) SDW0-PIN0-PLAYBACK-SimpleJack
41+
# DI_SDW0_ACP_SW_AUDIO_4_TX SDW0-PIN4-PLAYBACK-SmartAmp
42+
43+
define(DI_SDW0_ACP_SW_AUDIO_0_TX, 0)
44+
define(DI_SDW0_ACP_SW_AUDIO_4_TX, 4)
45+
define(DI_SDW0_ACP_SW_AUDIO_0_RX, 11)
46+
define(DI_SDW0_ACP_SW_AUDIO_5_RX, 16)
47+
48+
49+
define(DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, SDW0-PIN4-PLAYBACK-SmartAmp)
50+
define(DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, SDW0-PIN0-PLAYBACK-SimpleJack)
51+
52+
define(DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, SDW0-PIN11-CAPTURE-SimpleJack)
53+
define(DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, SDW0-PIN16-CAPTURE-SmartMic)
54+
55+
#pipeline: name of the predefined pipeline
56+
#pipe id: pipeline ID. This should be a unique ID identifying the pipeline
57+
#pcm: PCM ID. This will be used to bind to the correct front end DAI link
58+
59+
dnl PIPELINE_PCM_ADD(pipeline,
60+
dnl pipe id, pcm, max channels, format,
61+
dnl period, priority, core,
62+
dnl pcm_min_rate, pcm_max_rate, pipeline_rate)
63+
64+
dnl DAI_ADD(pipeline,
65+
dnl pipe id, dai type, dai_index, dai_be,
66+
dnl buffer, periods, format,
67+
dnl deadline, priority, core, time_domain)
68+
69+
dnl DAI_CONFIG(type, dai_index, link_id, name, acphs_config/acpdmic_config)
70+
dnl ACPHS_CONFIG(format, mclk, bclk, fsync, tdm, acphs_config_data)
71+
dnl ACP_CLOCK(clock, freq, codec_provider, polarity)
72+
dnl ACPHS_CONFIG_DATA(type, idx, valid bits, mclk_id)
73+
dnl mclk_id is optional
74+
75+
#/**********************************************************************************/
76+
PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4,
77+
0, 0, 2, s32le,
78+
2000, 0, 0,
79+
48000, 48000, 48000)
80+
81+
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,
82+
PIPELINE_SOURCE_0, 2, s24le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
83+
84+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 0, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX,
85+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 48000, 2)))
86+
PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0)
87+
88+
#/**********************************************************************************/
89+
#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
90+
PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4,
91+
2, 2, 2, s32le,
92+
2000, 0, 0,
93+
48000, 48000, 48000)
94+
95+
# playback DAI is ACP soundwire using 2 periods
96+
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,
97+
PIPELINE_SOURCE_2, 2, s24le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
98+
99+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 2, DAI_BE_SDW0_ACP_SW_AUDIO_4_TX,
100+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 48000, 2)))
101+
102+
PCM_PLAYBACK_ADD(ACP-SW0-PIN4-Playback-SPK, 2, PIPELINE_PCM_2)
103+
#/**********************************************************************************/
104+
105+
#/**********************************************************************************/
106+
#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
107+
# Capture pipeline 1 on PCM 1 using max 2 channels of s24le.
108+
PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4,
109+
1, 1, 2, s32le,
110+
2000, 0, 0,
111+
48000, 48000, 48000)
112+
113+
# Capture DAI is ACP soundwire using 2 periods
114+
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,
115+
PIPELINE_SINK_1, 2, s24le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
116+
117+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 1, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX,
118+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 48000, 2)))
119+
120+
PCM_CAPTURE_ADD(ACP-SW0-PIN11-Capture-HS, 1, PIPELINE_PCM_1)
121+
#/**********************************************************************************/
122+
#/**********************************************************************************/
123+
#PCM 4, SDW Capture, DAI link id 4, Dai index 16(DI_SDW0_ACP_SW_AUDIO_5_RX), BE SDW0-PIN16-CAPTURE-SmartMic
124+
# Capture pipeline 1 on PCM 1 using max 2 channels of s24le.
125+
PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4,
126+
4, 4, 2, s32le,
127+
2000, 0, 0,
128+
48000, 48000, 48000)
129+
130+
# Capture DAI is ACP soundwire using 2 periods
131+
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,
132+
PIPELINE_SINK_4, 2, s24le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
133+
134+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 4, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX,
135+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 48000, 2)))
136+
137+
PCM_CAPTURE_ADD(ACP-SW0-PIN16-CAPTURE-DMIC, 4, PIPELINE_PCM_4)
138+
139+
DEBUG_END

0 commit comments

Comments
 (0)