1# Mixer DAI Playback connector 2# 3# DAI playback starting with a LL mixer 4# 5# Pipeline Endpoints for connection are :- 6# 7# LL Playback Mixer (Mixer) 8# LL Playback Volume B3 (DAI buffer) 9# 10# DAI_BUF -> ll mixer(M) --B0--> volume(LL) ---B1--> sink DAI 11# 12# the ll mixer is connected to one DAI_BUF by default. Additional ones can be added later 13 14# Include topology builder 15include(`utils.m4') 16include(`mixer.m4') 17include(`mixercontrol.m4') 18include(`pga.m4') 19include(`buffer.m4') 20include(`dai.m4') 21include(`pipeline.m4') 22 23# 24# Controls 25# 26# Volume Mixer control with max value of 32 27C_CONTROLMIXER(Master Playback Volume, PIPELINE_ID, 28 CONTROLMIXER_OPS(volsw, 256 binds the mixer control to volume get/put handlers, 256, 256), 29 CONTROLMIXER_MAX(, 32), 30 false, 31 CONTROLMIXER_TLV(TLV 32 steps from -64dB to 0dB for 2dB, vtlv_m64s2), 32 Channel register and shift for Front Left/Right, 33 VOLUME_CHANNEL_MAP) 34 35# 36# Volume configuration 37# 38 39W_VENDORTUPLES(playback_pga_tokens, sof_volume_tokens, 40LIST(` ', `SOF_TKN_VOLUME_RAMP_STEP_TYPE "0"' 41 ` ', `SOF_TKN_VOLUME_RAMP_STEP_MS "250"')) 42 43W_DATA(playback_pga_conf, playback_pga_tokens) 44 45# Mixer 0 has 2 sink and source periods. 46W_MIXER(0, PIPELINE_FORMAT, 2, 2, SCHEDULE_CORE) 47 48# "Master Playback Volume" has 2 source and x sink periods for DAI ping-pong 49W_PGA(0, PIPELINE_FORMAT, DAI_PERIODS, 2, playback_pga_conf, SCHEDULE_CORE, 50 LIST(` ', "PIPELINE_ID Master Playback Volume")) 51 52# 53# DAI definitions 54# 55W_DAI_OUT(DAI_TYPE, DAI_INDEX, DAI_BE, DAI_FORMAT, 0, DAI_PERIODS, SCHEDULE_CORE) 56 57# 58# DAI pipeline - always use 0 for DAIs - FIXME WHY 0? 59# 60W_PIPELINE(N_DAI_OUT, SCHEDULE_PERIOD, SCHEDULE_PRIORITY, SCHEDULE_CORE, SCHEDULE_TIME_DOMAIN, pipe_dai_schedule_plat) 61 62# Low Latency Buffers 63W_BUFFER(0, COMP_BUFFER_SIZE(2, 64 COMP_SAMPLE_SIZE(DAI_FORMAT), DAI_CHANNELS, COMP_PERIOD_FRAMES(DAI_RATE, SCHEDULE_PERIOD)), 65 PLATFORM_COMP_MEM_CAP) 66W_BUFFER(1, COMP_BUFFER_SIZE(2, 67 COMP_SAMPLE_SIZE(DAI_FORMAT), DAI_CHANNELS,COMP_PERIOD_FRAMES(DAI_RATE, SCHEDULE_PERIOD)), 68 PLATFORM_COMP_MEM_CAP) 69 70# 71# Graph connections to pipelines 72# we don't connect `dapm(N_MIXER(0), DAI_BUF)' due to forward dependencies 73# 74P_GRAPH(DAI_NAME, PIPELINE_ID, 75 LIST(` ', 76 `dapm(N_BUFFER(0), N_MIXER(0))', 77 `dapm(N_PGA(0), N_BUFFER(0))', 78 `dapm(N_BUFFER(1), N_PGA(0))' 79 `dapm(N_DAI_OUT, N_BUFFER(1))')) 80 81indir(`define', concat(`PIPELINE_PLAYBACK_SCHED_COMP_', PIPELINE_ID), N_DAI_OUT) 82indir(`define', concat(`PIPELINE_MIXER_', PIPELINE_ID), N_MIXER(0)) 83 84