|
| 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