Skip to content

Commit 00a11e4

Browse files
committed
tools: topology: add ACP_7_X SDW volume topology
Add sof-acp_7_x_sdw_volume_comp.m4 topology with volume pipelines for HS playback/capture, Speaker playback and DMIC capture paths. Signed-off-by: Sneha Voona <sneha.voona@amd.com>
1 parent a8295ce commit 00a11e4

1 file changed

Lines changed: 229 additions & 0 deletions

File tree

Lines changed: 229 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,229 @@
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_1_TX, 1 )
45+
define(DI_SDW0_ACP_SW_AUDIO_2_TX, 2 )
46+
define(DI_SDW0_ACP_SW_AUDIO_3_TX, 3 )
47+
define(DI_SDW0_ACP_SW_AUDIO_4_TX, 4 )
48+
define(DI_SDW0_ACP_SW_AUDIO_5_TX, 5 )
49+
define(DI_SDW0_ACP_SW_AUDIO_6_TX, 6 )
50+
define(DI_SDW0_ACP_SW_AUDIO_7_TX, 7 )
51+
define(DI_SDW0_ACP_SW_AUDIO_8_TX, 8 )
52+
define(DI_SDW0_ACP_SW_AUDIO_9_TX, 9 )
53+
define(DI_SDW0_ACP_SW_AUDIO_10_TX, 10)
54+
define(DI_SDW0_ACP_SW_AUDIO_0_RX, 11)
55+
define(DI_SDW0_ACP_SW_AUDIO_1_RX, 12)
56+
define(DI_SDW0_ACP_SW_AUDIO_2_RX, 13)
57+
define(DI_SDW0_ACP_SW_AUDIO_3_RX, 14)
58+
define(DI_SDW0_ACP_SW_AUDIO_4_RX, 15)
59+
define(DI_SDW0_ACP_SW_AUDIO_5_RX, 16)
60+
define(DI_SDW0_ACP_SW_AUDIO_6_RX, 17)
61+
define(DI_SDW0_ACP_SW_AUDIO_7_RX, 18)
62+
define(DI_SDW0_ACP_SW_AUDIO_8_RX, 19)
63+
define(DI_SDW0_ACP_SW_AUDIO_9_RX, 20)
64+
define(DI_SDW0_ACP_SW_AUDIO_10_RX, 21)
65+
66+
define(DI_SDW1_ACP_SW_AUDIO_0_TX, 64)
67+
define(DI_SDW1_ACP_SW_AUDIO_1_TX, 65)
68+
define(DI_SDW1_ACP_SW_AUDIO_2_TX, 66)
69+
define(DI_SDW1_ACP_SW_AUDIO_3_TX, 67)
70+
define(DI_SDW1_ACP_SW_AUDIO_4_TX, 68)
71+
define(DI_SDW1_ACP_SW_AUDIO_5_TX, 69)
72+
define(DI_SDW1_ACP_SW_AUDIO_6_TX, 70)
73+
define(DI_SDW1_ACP_SW_AUDIO_7_TX, 71)
74+
define(DI_SDW1_ACP_SW_AUDIO_8_TX, 72)
75+
define(DI_SDW1_ACP_SW_AUDIO_9_TX, 73)
76+
define(DI_SDW1_ACP_SW_AUDIO_10_TX, 74)
77+
define(DI_SDW1_ACP_SW_AUDIO_0_RX, 75)
78+
define(DI_SDW1_ACP_SW_AUDIO_1_RX, 76)
79+
define(DI_SDW1_ACP_SW_AUDIO_2_RX, 77)
80+
define(DI_SDW1_ACP_SW_AUDIO_3_RX, 78)
81+
define(DI_SDW1_ACP_SW_AUDIO_4_RX, 79)
82+
define(DI_SDW1_ACP_SW_AUDIO_5_RX, 80)
83+
define(DI_SDW1_ACP_SW_AUDIO_6_RX, 81)
84+
define(DI_SDW1_ACP_SW_AUDIO_7_RX, 82)
85+
define(DI_SDW1_ACP_SW_AUDIO_8_RX, 83)
86+
define(DI_SDW1_ACP_SW_AUDIO_9_RX, 84)
87+
define(DI_SDW1_ACP_SW_AUDIO_10_RX, 85)
88+
89+
define(DI_SDW2_ACP_SW_AUDIO_0_TX, 128)
90+
define(DI_SDW2_ACP_SW_AUDIO_1_TX, 129)
91+
define(DI_SDW2_ACP_SW_AUDIO_2_TX, 130)
92+
define(DI_SDW2_ACP_SW_AUDIO_3_TX, 131)
93+
define(DI_SDW2_ACP_SW_AUDIO_4_TX, 132)
94+
define(DI_SDW2_ACP_SW_AUDIO_5_TX, 133)
95+
define(DI_SDW2_ACP_SW_AUDIO_6_TX, 134)
96+
define(DI_SDW2_ACP_SW_AUDIO_7_TX, 135)
97+
define(DI_SDW2_ACP_SW_AUDIO_8_TX, 136)
98+
define(DI_SDW2_ACP_SW_AUDIO_9_TX, 137)
99+
define(DI_SDW2_ACP_SW_AUDIO_10_TX, 138)
100+
define(DI_SDW2_ACP_SW_AUDIO_0_RX, 139)
101+
define(DI_SDW2_ACP_SW_AUDIO_1_RX, 140)
102+
define(DI_SDW2_ACP_SW_AUDIO_2_RX, 141)
103+
define(DI_SDW2_ACP_SW_AUDIO_3_RX, 142)
104+
define(DI_SDW2_ACP_SW_AUDIO_4_RX, 143)
105+
define(DI_SDW2_ACP_SW_AUDIO_5_RX, 144)
106+
define(DI_SDW2_ACP_SW_AUDIO_6_RX, 145)
107+
define(DI_SDW2_ACP_SW_AUDIO_7_RX, 146)
108+
define(DI_SDW2_ACP_SW_AUDIO_8_RX, 147)
109+
define(DI_SDW2_ACP_SW_AUDIO_9_RX, 148)
110+
define(DI_SDW2_ACP_SW_AUDIO_10_RX, 149)
111+
112+
define(DI_SDW3_ACP_SW_AUDIO_0_TX, 192)
113+
define(DI_SDW3_ACP_SW_AUDIO_1_TX, 193)
114+
define(DI_SDW3_ACP_SW_AUDIO_2_TX, 194)
115+
define(DI_SDW3_ACP_SW_AUDIO_3_TX, 195)
116+
define(DI_SDW3_ACP_SW_AUDIO_4_TX, 196)
117+
define(DI_SDW3_ACP_SW_AUDIO_5_TX, 197)
118+
define(DI_SDW3_ACP_SW_AUDIO_6_TX, 198)
119+
define(DI_SDW3_ACP_SW_AUDIO_7_TX, 199)
120+
define(DI_SDW3_ACP_SW_AUDIO_8_TX, 200)
121+
define(DI_SDW3_ACP_SW_AUDIO_9_TX, 201)
122+
define(DI_SDW3_ACP_SW_AUDIO_10_TX, 202)
123+
define(DI_SDW3_ACP_SW_AUDIO_0_RX, 203)
124+
define(DI_SDW3_ACP_SW_AUDIO_1_RX, 204)
125+
define(DI_SDW3_ACP_SW_AUDIO_2_RX, 205)
126+
define(DI_SDW3_ACP_SW_AUDIO_3_RX, 206)
127+
define(DI_SDW3_ACP_SW_AUDIO_4_RX, 207)
128+
define(DI_SDW3_ACP_SW_AUDIO_5_RX, 208)
129+
define(DI_SDW3_ACP_SW_AUDIO_6_RX, 209)
130+
define(DI_SDW3_ACP_SW_AUDIO_7_RX, 210)
131+
define(DI_SDW3_ACP_SW_AUDIO_8_RX, 211)
132+
define(DI_SDW3_ACP_SW_AUDIO_9_RX, 212)
133+
define(DI_SDW3_ACP_SW_AUDIO_10_RX, 213)
134+
135+
136+
define(DAI_BE_SDW0_ACP_SW_AUDIO_4_TX, SDW0-PIN4-PLAYBACK-SmartAmp)
137+
define(DAI_BE_SDW0_ACP_SW_AUDIO_0_TX, SDW0-PIN0-PLAYBACK-SimpleJack)
138+
#define(DAI_BE_SDW1_ACP_SW_AUDIO_4_TX, SDW1-PIN4-PLAYBACK-SmartAmp)
139+
140+
define(DAI_BE_SDW0_ACP_SW_AUDIO_0_RX, SDW0-PIN11-CAPTURE-SimpleJack)
141+
define(DAI_BE_SDW0_ACP_SW_AUDIO_4_RX, SDW0-PIN15-CAPTURE-SmartMic)
142+
define(DAI_BE_SDW0_ACP_SW_AUDIO_5_RX, SDW0-PIN16-CAPTURE-SmartMic)
143+
144+
#pipeline: name of the predefined pipeline
145+
#pipe id: pipeline ID. This should be a unique ID identifying the pipeline
146+
#pcm: PCM ID. This will be used to bind to the correct front end DAI link
147+
148+
dnl PIPELINE_PCM_ADD(pipeline,
149+
dnl pipe id, pcm, max channels, format,
150+
dnl period, priority, core,
151+
dnl pcm_min_rate, pcm_max_rate, pipeline_rate)
152+
153+
dnl DAI_ADD(pipeline,
154+
dnl pipe id, dai type, dai_index, dai_be,
155+
dnl buffer, periods, format,
156+
dnl deadline, priority, core, time_domain)
157+
158+
dnl DAI_CONFIG(type, dai_index, link_id, name, acphs_config/acpdmic_config)
159+
dnl ACPHS_CONFIG(format, mclk, bclk, fsync, tdm, acphs_config_data)
160+
dnl ACP_CLOCK(clock, freq, codec_provider, polarity)
161+
dnl ACPHS_CONFIG_DATA(type, idx, valid bits, mclk_id)
162+
dnl mclk_id is optional
163+
164+
#/**********************************************************************************/
165+
PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4,
166+
0, 0, 2, s16le,
167+
2000, 0, 0,
168+
48000, 48000, 48000)
169+
170+
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,
171+
PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
172+
173+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 0, DAI_BE_SDW0_ACP_SW_AUDIO_0_TX,
174+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_TX, 48000, 2)))
175+
PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0)
176+
177+
#/**********************************************************************************/
178+
#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
179+
PIPELINE_PCM_ADD(sof/pipe-volume-playback.m4,
180+
2, 2, 2, s16le,
181+
2000, 0, 0,
182+
48000, 48000, 48000)
183+
184+
# playback DAI is ACP soundwire using 2 periods
185+
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,
186+
PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
187+
188+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 2, DAI_BE_SDW0_ACP_SW_AUDIO_4_TX,
189+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_4_TX, 48000, 2)))
190+
191+
PCM_PLAYBACK_ADD(ACP-SW0-PIN4-Playback-SPK, 2, PIPELINE_PCM_2)
192+
#/**********************************************************************************/
193+
194+
#/**********************************************************************************/
195+
#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
196+
# Capture pipeline 1 on PCM 1 using max 2 channels of s16le.
197+
PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4,
198+
1, 1, 2, s16le,
199+
2000, 0, 0,
200+
48000, 48000, 48000)
201+
202+
# Capture DAI is ACP soundwire using 2 periods
203+
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,
204+
PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
205+
206+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 1, DAI_BE_SDW0_ACP_SW_AUDIO_0_RX,
207+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_0_RX, 48000, 2)))
208+
209+
PCM_CAPTURE_ADD(ACP-SW0-PIN11-Capture-HS, 1, PIPELINE_PCM_1)
210+
#/**********************************************************************************/
211+
#/**********************************************************************************/
212+
#PCM 4, SDW Capture, DAI link id 4, Dai index 16(DI_SDW0_ACP_SW_AUDIO_5_RX), BE SDW0-PIN16-CAPTURE-SmartMic
213+
# Capture pipeline 1 on PCM 1 using max 2 channels of s16le.
214+
PIPELINE_PCM_ADD(sof/pipe-volume-capture.m4,
215+
4, 4, 2, s16le,
216+
2000, 0, 0,
217+
48000, 48000, 48000)
218+
219+
# Capture DAI is ACP soundwire using 2 periods
220+
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,
221+
PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)
222+
223+
DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 4, DAI_BE_SDW0_ACP_SW_AUDIO_5_RX,
224+
ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_AUDIO_5_RX, 48000, 2)))
225+
226+
PCM_CAPTURE_ADD(ACP-SW0-PIN16-CAPTURE-DMIC, 4, PIPELINE_PCM_4)
227+
#/**********************************************************************************/
228+
229+
DEBUG_END

0 commit comments

Comments
 (0)