@@ -40,6 +40,46 @@ ifdef(`MIC_LINK',`',
4040# HDMI ID calculated based on the configuraiton
4141define ( HDMI_BE_ID_BASE , `0' )
4242
43+ # define the codec endpoints order according to each codec dai index
44+ # assign rt711 dai index
45+ define ( `ALH_JACK_OUT_INDEX' , `0' )
46+ define ( `ALH_JACK_IN_INDEX' , `1' )
47+ define ( `ALH_JACK_AMP_INDEX' , `0' )
48+ define ( `ALH_DMIC_IN_INDEX' , `0' )
49+
50+ define ( `ALH_JACK_OUT_NAME' , `SDW'eval ( UAJ_LINK ) `-Playback' )
51+ define ( `ALH_JACK_IN_NAME' , `SDW'eval ( UAJ_LINK ) `-Capture' )
52+ define ( `ALH_AMP_OUT_NAME' , `SDW'eval ( AMP_1_LINK ) `-Playback' )
53+ define ( `ALH_MIC_IN_NAME' , `SDW'eval ( MIC_LINK ) `-Capture' )
54+
55+ ifdef ( `MFC' , `
56+ # assign cs42l43 dai index
57+ undefine ( `ALH_JACK_OUT_INDEX' )
58+ undefine ( `ALH_JACK_IN_INDEX' )
59+ undefine ( `ALH_JACK_AMP_INDEX' )
60+ undefine ( `ALH_DMIC_IN_INDEX' )
61+ define ( `ALH_JACK_OUT_INDEX' , `0' )
62+ define ( `ALH_JACK_IN_INDEX' , `2' )
63+ define ( `ALH_JACK_AMP_INDEX' , `3' )
64+ define ( `ALH_DMIC_IN_INDEX' , `1' )
65+
66+ # align the partial string match of full dai link name
67+ undefine ( `ALH_JACK_OUT_NAME' )
68+ undefine ( `ALH_JACK_IN_NAME' )
69+ undefine ( `ALH_AMP_OUT_NAME' )
70+ undefine ( `ALH_MIC_IN_NAME' )
71+ define ( `ALH_JACK_OUT_NAME' , `Playback-SimpleJack' )
72+ define ( `ALH_JACK_IN_NAME' , `Capture-SimpleJack' )
73+ define ( `ALH_AMP_OUT_NAME' , `Playback-SmartAmp' )
74+ define ( `ALH_MIC_IN_NAME' , `Capture-SmartMic' ) '
75+ )
76+
77+ # SDW Pin as DAIs index starts from 2 on each SDW link
78+ define ( `ALH_PIN2' , `2' + `ALH_JACK_OUT_INDEX' )
79+ define ( `ALH_PIN3' , `2' + `ALH_JACK_IN_INDEX' )
80+ define ( `ALH_PIN4' , `2' + `ALH_JACK_AMP_INDEX' )
81+ define ( `ALH_PIN5' , `2' + `ALH_DMIC_IN_INDEX' )
82+
4383ifdef ( `NO_JACK' , `' ,
4484 `undefine ( `HDMI_BE_ID_BASE' )
4585 define ( HDMI_BE_ID_BASE , `2' ) '
@@ -106,16 +146,16 @@ ifdef(`NOJACK', `',
106146`
107147# PCM0 ---> volume ----> mixer --->ALH 2 BE UAJ_LINK
108148# PCM31 ---> volume ------^
109- # PCM1 <--- volume <---- ALH 3 BE UAJ_LINK
149+ # PCM1 <--- volume <---- ALH 3/4 BE UAJ_LINK
110150' )
111151ifdef ( `NOAMP' , `' ,
112152`
113- # PCM2 ---> volume ----> ALH 2 BE AMP_1_LINK
153+ # PCM2 ---> volume ----> ALH 2/5 BE AMP_1_LINK
114154ifdef ( `MONO' , `' ,
115- `# PCM40 --- > volume ---- > ALH 2 BE AMP_2_LINK' )
155+ `# PCM40 --- > volume ---- > ALH 2/5 BE AMP_2_LINK' )
116156' )
117157ifdef ( `NO_LOCAL_MIC' , `' ,
118- `# PCM4 <--- volume <---- ALH 2 BE MIC_LINK' )
158+ `# PCM4 <--- volume <---- ALH 2/3 BE MIC_LINK' )
119159
120160ifdef ( `NOHDMI' , `' ,
121161`
@@ -215,14 +255,14 @@ ifdef(`NOJACK', `',
215255# The NOT_USED_IGNORED is due to dependencies and is adjusted later with an explicit dapm line.
216256
217257DAI_ADD ( sof/pipe-mixer-volume-dai-playback.m4 ,
218- 1 , ALH , eval ( UAJ_LINK * 256 + 2 ) , `SDW'eval ( UAJ_LINK ) `-Playback' ,
258+ 1 , ALH , eval ( UAJ_LINK * 256 + ALH_PIN2 ) , ALH_JACK_OUT_NAME ,
219259 NOT_USE_IGNORED , 2 , s24le ,
220260 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER , 2 , 48000 )
221261
222262# capture DAI is ALH(UAJ_LINK PIN3) using 2 periods
223263# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
224264DAI_ADD ( sof/pipe-dai-capture.m4 ,
225- 2 , ALH , eval ( UAJ_LINK * 256 + 3 ) , `SDW'eval ( UAJ_LINK ) `-Capture' ,
265+ 2 , ALH , eval ( UAJ_LINK * 256 + ALH_PIN3 ) , ALH_JACK_IN_NAME ,
226266 PIPELINE_SINK_2 , 2 , s24le ,
227267 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER )
228268
@@ -271,13 +311,13 @@ ifdef(`NOAMP', `',
271311# playback DAI is ALH(AMP_1_LINK PIN2/AMP_2_LINK PIN2) using 2 periods
272312# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
273313DAI_ADD ( sof/pipe-dai-playback.m4 ,
274- 3 , ALH , eval ( AMP_1_LINK * 256 + 2 ) , `SDW'eval ( AMP_1_LINK ) `-Playback' ,
314+ 3 , ALH , eval ( AMP_1_LINK * 256 + ALH_PIN4 ) , ALH_AMP_OUT_NAME ,
275315 PIPELINE_SOURCE_3 , 2 , s24le ,
276316 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER )
277317
278318ifdef ( `MONO' , `' ,
279319`DAI_ADD_SCHED ( sof/pipe-dai-sched-playback.m4 ,
280- 4 , ALH , eval ( AMP_2_LINK * 256 + 2 ) , `SDW'eval ( AMP_1_LINK ) `-Playback' ,
320+ 4 , ALH , eval ( AMP_2_LINK * 256 + ALH_PIN4 ) , ALH_AMP_OUT_NAME ,
281321 PIPELINE_SOURCE_4 , 2 , s24le ,
282322 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER ,
283323 PIPELINE_PLAYBACK_SCHED_COMP_3 )
@@ -299,7 +339,7 @@ ifdef(`NO_LOCAL_MIC', `',
299339# capture DAI is ALH(MIC_LINK PIN2) using 2 periods
300340# Buffers use s24le format, with 48 frame per 1000us on core 0 with priority 0
301341DAI_ADD ( sof/pipe-dai-capture.m4 ,
302- 5 , ALH , eval ( MIC_LINK * 256 + 2 ) , `SDW'eval ( MIC_LINK ) `-Capture' ,
342+ 5 , ALH , eval ( MIC_LINK * 256 + ALH_PIN5 ) , ALH_MIC_IN_NAME ,
303343 PIPELINE_SINK_5 , 2 , s24le ,
304344 1000 , 0 , 0 , SCHEDULE_TIME_DOMAIN_TIMER )
305345' )
@@ -362,26 +402,26 @@ ifdef(`NOJACK', `',
362402`
363403# ALH dai index = ((link_id << 8) | PDI id)
364404# ALH UAJ_LINK Pin2 (ID: 0)
365- DAI_CONFIG ( ALH , eval ( UAJ_LINK * 256 + 2 ) , 0 , `SDW'eval ( UAJ_LINK ) `-Playback' ,
366- ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( UAJ_LINK * 256 + 2 ) , 48000 , 2 )))
405+ DAI_CONFIG ( ALH , eval ( UAJ_LINK * 256 + ALH_PIN2 ) , 0 , ALH_JACK_OUT_NAME ,
406+ ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( UAJ_LINK * 256 + ALH_PIN2 ) , 48000 , 2 )))
367407
368- # ALH UAJ_LINK Pin3 (ID: 1)
369- DAI_CONFIG ( ALH , eval ( UAJ_LINK * 256 + 3 ) , 1 , `SDW'eval ( UAJ_LINK ) `-Capture' ,
370- ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( UAJ_LINK * 256 + 3 ) , 48000 , 2 )))
408+ # ALH UAJ_LINK Pin3/4 (ID: 1)
409+ DAI_CONFIG ( ALH , eval ( UAJ_LINK * 256 + ALH_PIN3 ) , 1 , ALH_JACK_IN_NAME ,
410+ ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( UAJ_LINK * 256 + ALH_PIN3 ) , 48000 , 2 )))
371411' )
372412
373413ifdef ( `NOAMP' , `' ,
374414`
375- # ALH AMP_1_LINK Pin2 (ID: 2)
376- DAI_CONFIG ( ALH , eval ( AMP_1_LINK * 256 + 2 ) , 2 , `SDW'eval ( AMP_1_LINK ) `-Playback' ,
377- ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( AMP_1_LINK * 256 + 2 ) , 48000 , 2 )))
415+ # ALH AMP_1_LINK Pin2/5 (ID: 2)
416+ DAI_CONFIG ( ALH , eval ( AMP_1_LINK * 256 + ALH_PIN4 ) , 2 , ALH_AMP_OUT_NAME ,
417+ ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( AMP_1_LINK * 256 + ALH_PIN4 ) , 48000 , 2 )))
378418' )
379419
380420ifdef ( `NO_LOCAL_MIC' , `' ,
381421`
382- # ALH MIC_LINK Pin2 (ID: 4)
383- DAI_CONFIG ( ALH , eval ( MIC_LINK * 256 + 2 ) , 4 , `SDW'eval ( MIC_LINK ) `-Capture' ,
384- ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( MIC_LINK * 256 + 2 ) , 48000 , 2 )))
422+ # ALH MIC_LINK Pin2/3 (ID: 4)
423+ DAI_CONFIG ( ALH , eval ( MIC_LINK * 256 + ALH_PIN5 ) , 4 , ALH_MIC_IN_NAME ,
424+ ALH_CONFIG ( ALH_CONFIG_DATA ( ALH , eval ( MIC_LINK * 256 + ALH_PIN5 ) , 48000 , 2 )))
385425' )
386426
387427ifdef ( `NOHDMI' , `' ,
0 commit comments