|
| 1 | +#Required Topology for rt722 with ACP DMIC Card for ACP_7_0 |
| 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-PIN3-Capture-SimpleJack AUDIO_RX |
| 6 | +# 2 Speaker playback 2 SDW0-PIN1-Playback-SmartAmp BT_TX |
| 7 | +# 4 SDW DMIC 4 SDW0-PIN5-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(AUDIO_TX) SDW0-PIN0-PLAYBACK-SimpleJack |
| 41 | +#1(BT_TX) SDW0-PIN1-PLAYBACK-SmartAmp |
| 42 | +#2(HS_TX) SDW0-PIN2-PLAYBACK |
| 43 | +#3(AUDIO_RX) SDW0-PIN3-CAPTURE-SimpleJack |
| 44 | +#4(BT_RX) SDW0-PIN4-CAPTURE-SmartAmp |
| 45 | +#5(HS_RX) SDW0-PIN5-CAPTURE |
| 46 | + |
| 47 | +define(DI_SDW0_ACP_SW_Audio_TX, 0) |
| 48 | +define(DI_SDW0_ACP_SW_BT_TX, 1) |
| 49 | +define(DI_SDW0_ACP_SW_HS_TX, 2) |
| 50 | +define(DI_SDW0_ACP_SW_Audio_RX, 3) |
| 51 | +define(DI_SDW0_ACP_SW_BT_RX, 4) |
| 52 | +define(DI_SDW0_ACP_SW_HS_RX, 5) |
| 53 | +define(DI_SDW1_ACP_P1_SW_BT_RX, 68) |
| 54 | +define(DI_SDW1_ACP_P1_SW_BT_TX, 65) |
| 55 | + |
| 56 | +define(DAI_BE_SDW0_ACP_SW_HS_TX, SDW0-PIN2-PLAYBACK) |
| 57 | +define(DAI_BE_SDW1_ACP_P1_SW_BT_RX, SDW1-PIN1-CAPTURE-SmartMic) |
| 58 | +define(DAI_BE_SDW1_ACP_P1_SW_BT_TX, SDW1-PIN1-PLAYBACK) |
| 59 | +define(DAI_BE_ACP_SW_Audio_RX, SDW0-PIN3-CAPTURE-SimpleJack) |
| 60 | +define(DAI_BE_SDW0_ACP_SW_Audio_TX, SDW0-PIN0-PLAYBACK-SimpleJack) |
| 61 | +define(DAI_BE_SDW0_ACP_SW_BT_RX, SDW0-PIN4-CAPTURE-SmartAmp) |
| 62 | +define(DAI_BE_SDW0_ACP_SW_BT_TX, SDW0-PIN1-PLAYBACK-SmartAmp) |
| 63 | +define(DAI_BE_SDW0_ACP_SW_HS_RX, SDW0-PIN5-CAPTURE-SmartMic) |
| 64 | + |
| 65 | +#pipeline: name of the predefined pipeline |
| 66 | +#pipe id: pipeline ID. This should be a unique ID identifying the pipeline |
| 67 | +#pcm: PCM ID. This will be used to bind to the correct front end DAI link |
| 68 | + |
| 69 | +dnl PIPELINE_PCM_ADD(pipeline, |
| 70 | +dnl pipe id, pcm, max channels, format, |
| 71 | +dnl period, priority, core, |
| 72 | +dnl pcm_min_rate, pcm_max_rate, pipeline_rate) |
| 73 | +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, |
| 74 | + 0, 0, 2, s16le, |
| 75 | + 2000, 0, 0, |
| 76 | + 48000, 48000, 48000) |
| 77 | + |
| 78 | +dnl DAI_ADD(pipeline, |
| 79 | +dnl pipe id, dai type, dai_index, dai_be, |
| 80 | +dnl buffer, periods, format, |
| 81 | +dnl deadline, priority, core, time_domain) |
| 82 | +DAI_ADD(sof/pipe-dai-playback.m4, 0, ACP_SDW, DI_SDW0_ACP_SW_Audio_TX, DAI_BE_SDW0_ACP_SW_Audio_TX, |
| 83 | + PIPELINE_SOURCE_0, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) |
| 84 | + |
| 85 | +dnl DAI_CONFIG(type, dai_index, link_id, name, acphs_config/acpdmic_config) |
| 86 | +dnl ACPHS_CONFIG(format, mclk, bclk, fsync, tdm, acphs_config_data) |
| 87 | +dnl ACP_CLOCK(clock, freq, codec_provider, polarity) |
| 88 | +dnl ACPHS_CONFIG_DATA(type, idx, valid bits, mclk_id) |
| 89 | +dnl mclk_id is optional |
| 90 | +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_Audio_TX, 0, DAI_BE_SDW0_ACP_SW_Audio_TX, |
| 91 | + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_Audio_TX, 48000, 2))) |
| 92 | + |
| 93 | +PCM_PLAYBACK_ADD(ACP-SW0-PIN0-Playback-HS, 0, PIPELINE_PCM_0) |
| 94 | +#/**********************************************************************************/ |
| 95 | + |
| 96 | + |
| 97 | +#/**********************************************************************************/ |
| 98 | +#PCM 1, HS Capture, DAI link id 1, Dai index 3(Audio_RX), BE SW0-PIN0-CAPTURE |
| 99 | +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. |
| 100 | +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, |
| 101 | + 1, 1, 2, s16le, |
| 102 | + 2000, 0, 0, |
| 103 | + 48000, 48000, 48000) |
| 104 | + |
| 105 | +# Capture DAI is ACP soundwire using 2 periods |
| 106 | +DAI_ADD(sof/pipe-dai-capture.m4, 1, ACP_SDW, DI_SDW0_ACP_SW_Audio_RX, DAI_BE_ACP_SW_Audio_RX, |
| 107 | + PIPELINE_SINK_1, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) |
| 108 | + |
| 109 | +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_Audio_RX, 1, DAI_BE_ACP_SW_Audio_RX, |
| 110 | + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_Audio_RX, 48000, 2))) |
| 111 | + |
| 112 | +PCM_CAPTURE_ADD(ACP-SW0-PIN0-Capture-HS, 1, PIPELINE_PCM_1) |
| 113 | +#/**********************************************************************************/ |
| 114 | + |
| 115 | +#/**********************************************************************************/ |
| 116 | +#PCM 2, Speaker Playback, DAI link id 2, Dai index 1(BT_TX), BE SW0-PIN1-PLAYBACK |
| 117 | +PIPELINE_PCM_ADD(sof/pipe-passthrough-playback.m4, |
| 118 | + 2, 2, 2, s16le, |
| 119 | + 2000, 0, 0, |
| 120 | + 48000, 48000, 48000) |
| 121 | + |
| 122 | +# playback DAI is ACP soundwire using 2 periods |
| 123 | +DAI_ADD(sof/pipe-dai-playback.m4, 2, ACP_SDW, DI_SDW0_ACP_SW_BT_TX, DAI_BE_SDW0_ACP_SW_BT_TX, |
| 124 | + PIPELINE_SOURCE_2, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) |
| 125 | + |
| 126 | +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_BT_TX, 2, DAI_BE_SDW0_ACP_SW_BT_TX, |
| 127 | + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_BT_TX, 48000, 2))) |
| 128 | + |
| 129 | +PCM_PLAYBACK_ADD(ACP-SW0-PIN2-Playback-SPK, 2, PIPELINE_PCM_2) |
| 130 | +#/**********************************************************************************/ |
| 131 | + |
| 132 | +#/**********************************************************************************/ |
| 133 | +#PCM 4, SDW Capture, DAI link id 4, Dai index 5(HS_RX), BE SDW0-PIN5-CAPTURE-SmartMic |
| 134 | +# Capture pipeline 1 on PCM 1 using max 2 channels of s16le. |
| 135 | +PIPELINE_PCM_ADD(sof/pipe-passthrough-capture.m4, |
| 136 | + 4, 4, 2, s16le, |
| 137 | + 2000, 0, 0, |
| 138 | + 48000, 48000, 48000) |
| 139 | + |
| 140 | +# Capture DAI is ACP soundwire using 2 periods |
| 141 | +DAI_ADD(sof/pipe-dai-capture.m4, 4, ACP_SDW, DI_SDW0_ACP_SW_HS_RX, DAI_BE_SDW0_ACP_SW_HS_RX, |
| 142 | + PIPELINE_SINK_4, 2, s16le, 2000, 0, 0, SCHEDULE_TIME_DOMAIN_DMA) |
| 143 | + |
| 144 | +DAI_CONFIG(ACP_SDW, DI_SDW0_ACP_SW_HS_RX, 4, DAI_BE_SDW0_ACP_SW_HS_RX, |
| 145 | + ACP_SDW_CONFIG(ACP_SDW_CONFIG_DATA(ACP_SDW, DI_SDW0_ACP_SW_HS_RX, 48000, 2))) |
| 146 | + |
| 147 | +PCM_CAPTURE_ADD(ACP-SW0-PIN5-CAPTURE-DMIC, 4, PIPELINE_PCM_4) |
| 148 | +#/**********************************************************************************/ |
| 149 | + |
| 150 | +DEBUG_END |
0 commit comments