@@ -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 ( `NOJACK' , `' ,
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 ( ` ' , `matrix1 ,' , `matrix2' ))
6796' )
97+ ' )
6898
6999#
70100# Define the pipelines
@@ -74,10 +104,14 @@ ifdef(`NOJACK', `',
74104# PCM0 ---> volume ----> 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
@@ -105,6 +139,8 @@ PIPELINE_PCM_ADD(sof/pipe-volume-switch-capture.m4,
105139 48000 , 48000 , 48000 )
106140' )
107141
142+ ifdef ( `NOAMP' , `' ,
143+ `
108144ifdef ( `MONO' ,
109145`
110146# Low Latency playback pipeline 3 on PCM 2 using max 2 channels of s32le.
@@ -129,13 +165,17 @@ PIPELINE_PCM_ADD(sof/pipe-dai-endpoint.m4,
129165 1000 , 0 , 0 ,
130166 48000 , 48000 , 48000 )
131167' )
168+ ' )
132169
170+ ifdef ( `NO_LOCAL_MIC' , `' ,
171+ `
133172# Low Latency capture pipeline 5 on PCM 4 using max 2 channels of s32le.
134173# Schedule 48 frames per 1000us deadline on core 0 with priority 0
135174PIPELINE_PCM_ADD ( sof/pipe-highpass-switch-capture.m4 ,
136175 5 , 4 , 2 , s32le ,
137176 1000 , 0 , 0 ,
138177 48000 , 48000 , 48000 )
178+ ' )
139179
140180# Low Latency playback pipeline 6 on PCM 5 using max 2 channels of s32le.
141181# Schedule 48 frames per 1000us deadline on core 0 with priority 0
@@ -184,6 +224,8 @@ DAI_ADD(sof/pipe-dai-capture.m4,
184224 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER )
185225' )
186226
227+ ifdef ( `NOAMP' , `' ,
228+ `
187229# playback DAI is ALH(AMP_1_LINK PIN2/AMP_2_LINK PIN2) using 2 periods
188230# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
189231DAI_ADD ( sof/pipe-dai-playback.m4 ,
@@ -208,13 +250,17 @@ SectionGraph."PIPE_DEMUX" {
208250 ]
209251}
210252' )
253+ ' )
211254
255+ ifdef ( `NO_LOCAL_MIC' , `' ,
256+ `
212257# capture DAI is ALH(MIC_LINK PIN2) using 2 periods
213258# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
214259DAI_ADD ( sof/pipe-dai-capture.m4 ,
215260 5 , ALH , eval ( MIC_LINK * 256 + 2 ) , `SDW'eval ( MIC_LINK ) `-Capture' ,
216261 PIPELINE_SINK_5 , 2 , s24le ,
217262 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER )
263+ ' )
218264
219265# playback DAI is iDisp1 using 2 periods
220266# # Buffers use s32le format, 1000us deadline on core 0 with priority 0
@@ -245,9 +291,11 @@ ifdef(`NOJACK', `',
245291PCM_PLAYBACK_ADD ( Jack Out , 0 , PIPELINE_PCM_1 )
246292PCM_CAPTURE_ADD ( Jack In , 1 , PIPELINE_PCM_2 )
247293' )
248-
294+ ifdef ( `NOAMP' , `' ,
295+ `
249296PCM_PLAYBACK_ADD ( Speaker , 2 , PIPELINE_PCM_3 )
250- PCM_CAPTURE_ADD(Microphone, 4, PIPELINE_PCM_5)
297+ ' )
298+ ifdef ( `NO_LOCAL_MIC' , `' , `PCM_CAPTURE_ADD ( Microphone , 4 , PIPELINE_PCM_5 ) ' )
251299PCM_PLAYBACK_ADD(HDMI 1, 5, PIPELINE_PCM_6)
252300PCM_PLAYBACK_ADD(HDMI 2, 6, PIPELINE_PCM_7)
253301PCM_PLAYBACK_ADD(HDMI 3, 7, PIPELINE_PCM_8)
@@ -268,20 +316,26 @@ DAI_CONFIG(ALH, eval(UAJ_LINK * 256 + 3), 1, `SDW'eval(UAJ_LINK)`-Capture',
268316 ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( UAJ_LINK * 256 + 3 ) , 48000 , 2 )))
269317' )
270318
319+ ifdef ( `NOAMP' , `' ,
320+ `
271321# ALH AMP_1_LINK Pin2 (ID: 2)
272322DAI_CONFIG ( ALH , eval ( AMP_1_LINK * 256 + 2 ) , 2 , `SDW'eval ( AMP_1_LINK ) `-Playback' ,
273323 ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( AMP_1_LINK * 256 + 2 ) , 48000 , 2 )))
324+ ' )
274325
326+ ifdef ( `NO_LOCAL_MIC' , `' ,
327+ `
275328# ALH MIC_LINK Pin2 (ID: 4)
276329DAI_CONFIG ( ALH , eval ( MIC_LINK * 256 + 2 ) , 4 , `SDW'eval ( MIC_LINK ) `-Capture' ,
277330 ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( MIC_LINK * 256 + 2 ) , 48000 , 2 )))
331+ ' )
278332
279- # 3 HDMI/DP outputs (ID: 5,6,7 )
280- DAI_CONFIG(HDA, 0, 5 , iDisp1,
333+ # 3 HDMI/DP outputs (ID: from HDMI_BE_ID_BASE )
334+ DAI_CONFIG(HDA, 0, HDMI_BE_ID_BASE , iDisp1,
281335 HDA_CONFIG(HDA_CONFIG_DATA(HDA, 0, 48000, 2)))
282- DAI_CONFIG(HDA, 1, 6 , iDisp2,
336+ DAI_CONFIG(HDA, 1, eval ( HDMI_BE_ID_BASE + 1 ) , iDisp2,
283337 HDA_CONFIG(HDA_CONFIG_DATA(HDA, 1, 48000, 2)))
284- DAI_CONFIG(HDA, 2, 7 , iDisp3,
338+ DAI_CONFIG(HDA, 2, eval ( HDMI_BE_ID_BASE + 2 ) , iDisp3,
285339 HDA_CONFIG(HDA_CONFIG_DATA(HDA, 2, 48000, 2)))
286340
287341DEBUG_END
0 commit comments