@@ -31,6 +31,33 @@ ifdef(`AMP_2_LINK',`',
3131ifdef ( `MIC_LINK' ,`' ,
3232`define ( MIC_LINK , `3' ) ' )
3333
34+ # UAJ ID: 0, 1
35+ # AMP ID: 2, 3 (if EXT_AMP_REF defined)
36+ # DMIC ID: 4
37+ # HDMI ID calculated based on the configuraiton
38+ define ( HDMI_BE_ID_BASE , `0' )
39+
40+ ifdef ( `NO_JACK' , `' ,
41+ `undefine ( `HDMI_BE_ID_BASE' )
42+ define ( HDMI_BE_ID_BASE , `2' ) '
43+ )
44+
45+ ifdef ( `NOAMP' , `' ,
46+ `undefine ( `HDMI_BE_ID_BASE' )
47+ define ( HDMI_BE_ID_BASE , `3' ) '
48+ )
49+
50+ ifdef ( `EXT_AMP_REF' ,
51+ `undefine ( `HDMI_BE_ID_BASE' )
52+ define ( HDMI_BE_ID_BASE , `4' ) ' ,
53+ `'
54+ )
55+
56+ ifdef ( `NO_LOCAL_MIC' , `' ,
57+ `undefine ( `HDMI_BE_ID_BASE' )
58+ define ( HDMI_BE_ID_BASE , `5' ) '
59+ )
60+
3461DEBUG_START
3562
3663dnl Configure demux
@@ -40,6 +67,8 @@ dnl copied to corresponding output channels in all output streams.
4067dnl I.e. row index is the input channel, 1 means it is copied to
4168dnl corresponding output channel (column index), 0 means it is discarded.
4269dnl There's a separate matrix for all outputs.
70+ ifdef ( `NOAMP' , `' ,
71+ `
4372ifdef ( `MONO' , `' ,
4473`
4574define ( matrix1 , `ROUTE_MATRIX ( 3 ,
@@ -65,6 +94,7 @@ define(matrix2, `ROUTE_MATRIX(4,
6594dnl name, num_streams, route_matrix list
6695MUXDEMUX_CONFIG ( demux_priv_3 , 2 , LIST_NONEWLINE ( `' , `matrix1 ,' , `matrix2' ))
6796' )
97+ ' )
6898
6999#
70100# Define the pipelines
@@ -74,10 +104,14 @@ ifdef(`NOJACK', `',
74104# PCM0 ---> volume ----> mixer --->ALH 2 BE UAJ_LINK
75105# PCM1 <--- volume <---- ALH 3 BE UAJ_LINK
76106' )
107+ ifdef ( `NOAMP' , `' ,
108+ `
77109# PCM2 ---> volume ----> ALH 2 BE AMP_1_LINK
78110ifdef ( `MONO' , `' ,
79111`# PCM40 --- > volume ---- > ALH 2 BE AMP_2_LINK' )
80- # PCM4 <--- volume <---- ALH 2 BE MIC_LINK
112+ ' )
113+ ifdef ( `NO_LOCAL_MIC' , `' ,
114+ `# PCM4 <--- volume <---- ALH 2 BE MIC_LINK' )
81115# PCM5 ---> volume ----> iDisp1
82116# PCM6 ---> volume ----> iDisp2
83117# PCM7 ---> volume ----> iDisp3
@@ -98,6 +132,8 @@ PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4,
98132 48000 , 48000 , 48000 )
99133' )
100134
135+ ifdef ( `NOAMP' , `' ,
136+ `
101137ifdef ( `MONO' ,
102138`
103139# Low Latency playback pipeline 3 on PCM 2 using max 2 channels of s32le.
@@ -122,13 +158,17 @@ PIPELINE_PCM_ADD(sof/pipe-dai-endpoint.m4,
122158 1000 , 0 , 0 ,
123159 48000 , 48000 , 48000 )
124160' )
161+ ' )
125162
163+ ifdef ( `NO_LOCAL_MIC' , `' ,
164+ `
126165# Low Latency capture pipeline 5 on PCM 4 using max 2 channels of s32le.
127166# Schedule 48 frames per 1000us deadline with priority 0 on core 0
128167PIPELINE_PCM_ADD ( sof/pipe-highpass-switch-capture.m4 ,
129168 5 , 4 , 2 , s32le ,
130169 1000 , 0 , 0 ,
131170 48000 , 48000 , 48000 )
171+ ' )
132172
133173# Low Latency playback pipeline 6 on PCM 5 using max 2 channels of s32le.
134174# Schedule 48 frames per 1000us deadline with priority 0 on core 0
@@ -199,6 +239,8 @@ SectionGraph."mixer-host" {
199239'
200240)
201241
242+ ifdef ( `NOAMP' , `' ,
243+ `
202244# playback DAI is ALH(AMP_1_LINK PIN2/AMP_2_LINK PIN2) using 2 periods
203245# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
204246DAI_ADD ( sof/pipe-dai-playback.m4 ,
@@ -223,13 +265,17 @@ SectionGraph."PIPE_DEMUX" {
223265 ]
224266}
225267' )
268+ ' )
226269
270+ ifdef ( `NO_LOCAL_MIC' , `' ,
271+ `
227272# capture DAI is ALH(MIC_LINK PIN2) using 2 periods
228273# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
229274DAI_ADD ( sof/pipe-dai-capture.m4 ,
230275 5 , ALH , eval ( MIC_LINK * 256 + 2 ) , `SDW'eval ( MIC_LINK ) `-Capture' ,
231276 PIPELINE_SINK_5 , 2 , s24le ,
232277 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER )
278+ ' )
233279
234280# playback DAI is iDisp1 using 2 periods
235281# # Buffers use s32le format, 1000us deadline with priority 0 on core 0
@@ -260,9 +306,11 @@ ifdef(`NOJACK', `',
260306PCM_PLAYBACK_ADD ( Jack Out , 0 , PIPELINE_PCM_30 )
261307PCM_CAPTURE_ADD ( Jack In , 1 , PIPELINE_PCM_2 )
262308' )
263-
309+ ifdef ( `NOAMP' , `' ,
310+ `
264311PCM_PLAYBACK_ADD ( Speaker , 2 , PIPELINE_PCM_3 )
265- PCM_CAPTURE_ADD(Microphone, 4, PIPELINE_PCM_5)
312+ ' )
313+ ifdef ( `NO_LOCAL_MIC' , `' , `PCM_CAPTURE_ADD ( Microphone , 4 , PIPELINE_PCM_5 ) ' )
266314PCM_PLAYBACK_ADD(HDMI 1, 5, PIPELINE_PCM_6)
267315PCM_PLAYBACK_ADD(HDMI 2, 6, PIPELINE_PCM_7)
268316PCM_PLAYBACK_ADD(HDMI 3, 7, PIPELINE_PCM_8)
@@ -283,20 +331,26 @@ DAI_CONFIG(ALH, eval(UAJ_LINK * 256 + 3), 1, `SDW'eval(UAJ_LINK)`-Capture',
283331 ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( UAJ_LINK * 256 + 3 ) , 48000 , 2 )))
284332' )
285333
334+ ifdef ( `NOAMP' , `' ,
335+ `
286336# ALH AMP_1_LINK Pin2 (ID: 2)
287337DAI_CONFIG ( ALH , eval ( AMP_1_LINK * 256 + 2 ) , 2 , `SDW'eval ( AMP_1_LINK ) `-Playback' ,
288338 ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( AMP_1_LINK * 256 + 2 ) , 48000 , 2 )))
339+ ' )
289340
341+ ifdef ( `NO_LOCAL_MIC' , `' ,
342+ `
290343# ALH MIC_LINK Pin2 (ID: 4)
291344DAI_CONFIG ( ALH , eval ( MIC_LINK * 256 + 2 ) , 4 , `SDW'eval ( MIC_LINK ) `-Capture' ,
292345 ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( MIC_LINK * 256 + 2 ) , 48000 , 2 )))
346+ ' )
293347
294- # 3 HDMI/DP outputs (ID: 5,6,7 )
295- DAI_CONFIG(HDA, 0, 5 , iDisp1,
348+ # 3 HDMI/DP outputs (ID: from HDMI_BE_ID_BASE )
349+ DAI_CONFIG(HDA, 0, HDMI_BE_ID_BASE , iDisp1,
296350 HDA_CONFIG(HDA_CONFIG_DATA(HDA, 0, 48000, 2)))
297- DAI_CONFIG(HDA, 1, 6 , iDisp2,
351+ DAI_CONFIG(HDA, 1, eval ( HDMI_BE_ID_BASE + 1 ) , iDisp2,
298352 HDA_CONFIG(HDA_CONFIG_DATA(HDA, 1, 48000, 2)))
299- DAI_CONFIG(HDA, 2, 7 , iDisp3,
353+ DAI_CONFIG(HDA, 2, eval ( HDMI_BE_ID_BASE + 2 ) , iDisp3,
300354 HDA_CONFIG(HDA_CONFIG_DATA(HDA, 2, 48000, 2)))
301355
302356DEBUG_END
0 commit comments