195b6cd57SSrinivas Kandagatla // SPDX-License-Identifier: GPL-2.0 295b6cd57SSrinivas Kandagatla // Copyright (c) 2020, Linaro Limited 395b6cd57SSrinivas Kandagatla 495b6cd57SSrinivas Kandagatla #include <sound/pcm.h> 595b6cd57SSrinivas Kandagatla #include <sound/soc.h> 695b6cd57SSrinivas Kandagatla #include <sound/pcm_params.h> 795b6cd57SSrinivas Kandagatla #include <dt-bindings/sound/qcom,q6afe.h> 895b6cd57SSrinivas Kandagatla #include "q6dsp-lpass-ports.h" 995b6cd57SSrinivas Kandagatla 1095b6cd57SSrinivas Kandagatla #define Q6AFE_TDM_PB_DAI(pre, num, did) { \ 1195b6cd57SSrinivas Kandagatla .playback = { \ 1295b6cd57SSrinivas Kandagatla .stream_name = pre" TDM"#num" Playback", \ 1395b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ 1495b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ 1595b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_176400, \ 1695b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | \ 1795b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE | \ 1895b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S32_LE, \ 1995b6cd57SSrinivas Kandagatla .channels_min = 1, \ 2095b6cd57SSrinivas Kandagatla .channels_max = 8, \ 2195b6cd57SSrinivas Kandagatla .rate_min = 8000, \ 2295b6cd57SSrinivas Kandagatla .rate_max = 176400, \ 2395b6cd57SSrinivas Kandagatla }, \ 2495b6cd57SSrinivas Kandagatla .name = #did, \ 2595b6cd57SSrinivas Kandagatla .id = did, \ 2695b6cd57SSrinivas Kandagatla } 2795b6cd57SSrinivas Kandagatla 2895b6cd57SSrinivas Kandagatla #define Q6AFE_TDM_CAP_DAI(pre, num, did) { \ 2995b6cd57SSrinivas Kandagatla .capture = { \ 3095b6cd57SSrinivas Kandagatla .stream_name = pre" TDM"#num" Capture", \ 3195b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ 3295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ 3395b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_176400, \ 3495b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | \ 3595b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE | \ 3695b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S32_LE, \ 3795b6cd57SSrinivas Kandagatla .channels_min = 1, \ 3895b6cd57SSrinivas Kandagatla .channels_max = 8, \ 3995b6cd57SSrinivas Kandagatla .rate_min = 8000, \ 4095b6cd57SSrinivas Kandagatla .rate_max = 176400, \ 4195b6cd57SSrinivas Kandagatla }, \ 4295b6cd57SSrinivas Kandagatla .name = #did, \ 4395b6cd57SSrinivas Kandagatla .id = did, \ 4495b6cd57SSrinivas Kandagatla } 4595b6cd57SSrinivas Kandagatla 4695b6cd57SSrinivas Kandagatla #define Q6AFE_CDC_DMA_RX_DAI(did) { \ 4795b6cd57SSrinivas Kandagatla .playback = { \ 4895b6cd57SSrinivas Kandagatla .stream_name = #did" Playback", \ 4995b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ 5095b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ 5195b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_176400, \ 5295b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | \ 5395b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE | \ 5495b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S32_LE, \ 5595b6cd57SSrinivas Kandagatla .channels_min = 1, \ 5695b6cd57SSrinivas Kandagatla .channels_max = 8, \ 5795b6cd57SSrinivas Kandagatla .rate_min = 8000, \ 5895b6cd57SSrinivas Kandagatla .rate_max = 176400, \ 5995b6cd57SSrinivas Kandagatla }, \ 6095b6cd57SSrinivas Kandagatla .name = #did, \ 6195b6cd57SSrinivas Kandagatla .id = did, \ 6295b6cd57SSrinivas Kandagatla } 6395b6cd57SSrinivas Kandagatla 6495b6cd57SSrinivas Kandagatla #define Q6AFE_CDC_DMA_TX_DAI(did) { \ 6595b6cd57SSrinivas Kandagatla .capture = { \ 6695b6cd57SSrinivas Kandagatla .stream_name = #did" Capture", \ 6795b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\ 6895b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\ 6995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_176400, \ 7095b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | \ 7195b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE | \ 7295b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S32_LE, \ 7395b6cd57SSrinivas Kandagatla .channels_min = 1, \ 7495b6cd57SSrinivas Kandagatla .channels_max = 8, \ 7595b6cd57SSrinivas Kandagatla .rate_min = 8000, \ 7695b6cd57SSrinivas Kandagatla .rate_max = 176400, \ 7795b6cd57SSrinivas Kandagatla }, \ 7895b6cd57SSrinivas Kandagatla .name = #did, \ 7995b6cd57SSrinivas Kandagatla .id = did, \ 8095b6cd57SSrinivas Kandagatla } 8195b6cd57SSrinivas Kandagatla 82*90848a25SSrinivas Kandagatla #define Q6AFE_DP_RX_DAI(did) { \ 83*90848a25SSrinivas Kandagatla .playback = { \ 84*90848a25SSrinivas Kandagatla .stream_name = #did" Playback", \ 85*90848a25SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | \ 86*90848a25SSrinivas Kandagatla SNDRV_PCM_RATE_96000 | \ 87*90848a25SSrinivas Kandagatla SNDRV_PCM_RATE_192000, \ 88*90848a25SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | \ 89*90848a25SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, \ 90*90848a25SSrinivas Kandagatla .channels_min = 2, \ 91*90848a25SSrinivas Kandagatla .channels_max = 8, \ 92*90848a25SSrinivas Kandagatla .rate_min = 48000, \ 93*90848a25SSrinivas Kandagatla .rate_max = 192000, \ 94*90848a25SSrinivas Kandagatla }, \ 95*90848a25SSrinivas Kandagatla .name = #did, \ 96*90848a25SSrinivas Kandagatla .id = did, \ 97*90848a25SSrinivas Kandagatla } 9895b6cd57SSrinivas Kandagatla 9995b6cd57SSrinivas Kandagatla static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = { 10095b6cd57SSrinivas Kandagatla { 10195b6cd57SSrinivas Kandagatla .playback = { 10295b6cd57SSrinivas Kandagatla .stream_name = "HDMI Playback", 10395b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | 10495b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_96000 | 10595b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 10695b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 10795b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 10895b6cd57SSrinivas Kandagatla .channels_min = 2, 10995b6cd57SSrinivas Kandagatla .channels_max = 8, 11095b6cd57SSrinivas Kandagatla .rate_max = 192000, 11195b6cd57SSrinivas Kandagatla .rate_min = 48000, 11295b6cd57SSrinivas Kandagatla }, 11395b6cd57SSrinivas Kandagatla .id = HDMI_RX, 11495b6cd57SSrinivas Kandagatla .name = "HDMI", 11595b6cd57SSrinivas Kandagatla }, { 11695b6cd57SSrinivas Kandagatla .name = "SLIMBUS_0_RX", 11795b6cd57SSrinivas Kandagatla .id = SLIMBUS_0_RX, 11895b6cd57SSrinivas Kandagatla .playback = { 11995b6cd57SSrinivas Kandagatla .stream_name = "Slimbus Playback", 12095b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 12195b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 12295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 12395b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 12495b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 12595b6cd57SSrinivas Kandagatla .channels_min = 1, 12695b6cd57SSrinivas Kandagatla .channels_max = 8, 12795b6cd57SSrinivas Kandagatla .rate_min = 8000, 12895b6cd57SSrinivas Kandagatla .rate_max = 192000, 12995b6cd57SSrinivas Kandagatla }, 13095b6cd57SSrinivas Kandagatla }, { 13195b6cd57SSrinivas Kandagatla .name = "SLIMBUS_0_TX", 13295b6cd57SSrinivas Kandagatla .id = SLIMBUS_0_TX, 13395b6cd57SSrinivas Kandagatla .capture = { 13495b6cd57SSrinivas Kandagatla .stream_name = "Slimbus Capture", 13595b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 13695b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 13795b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 13895b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 13995b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 14095b6cd57SSrinivas Kandagatla .channels_min = 1, 14195b6cd57SSrinivas Kandagatla .channels_max = 8, 14295b6cd57SSrinivas Kandagatla .rate_min = 8000, 14395b6cd57SSrinivas Kandagatla .rate_max = 192000, 14495b6cd57SSrinivas Kandagatla }, 14595b6cd57SSrinivas Kandagatla }, { 14695b6cd57SSrinivas Kandagatla .playback = { 14795b6cd57SSrinivas Kandagatla .stream_name = "Slimbus1 Playback", 14895b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | 14995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | 15095b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 15195b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 15295b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 15395b6cd57SSrinivas Kandagatla .channels_min = 1, 15495b6cd57SSrinivas Kandagatla .channels_max = 2, 15595b6cd57SSrinivas Kandagatla .rate_min = 8000, 15695b6cd57SSrinivas Kandagatla .rate_max = 192000, 15795b6cd57SSrinivas Kandagatla }, 15895b6cd57SSrinivas Kandagatla .name = "SLIMBUS_1_RX", 15995b6cd57SSrinivas Kandagatla .id = SLIMBUS_1_RX, 16095b6cd57SSrinivas Kandagatla }, { 16195b6cd57SSrinivas Kandagatla .name = "SLIMBUS_1_TX", 16295b6cd57SSrinivas Kandagatla .id = SLIMBUS_1_TX, 16395b6cd57SSrinivas Kandagatla .capture = { 16495b6cd57SSrinivas Kandagatla .stream_name = "Slimbus1 Capture", 16595b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 16695b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 16795b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 16895b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 16995b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 17095b6cd57SSrinivas Kandagatla .channels_min = 1, 17195b6cd57SSrinivas Kandagatla .channels_max = 8, 17295b6cd57SSrinivas Kandagatla .rate_min = 8000, 17395b6cd57SSrinivas Kandagatla .rate_max = 192000, 17495b6cd57SSrinivas Kandagatla }, 17595b6cd57SSrinivas Kandagatla }, { 17695b6cd57SSrinivas Kandagatla .playback = { 17795b6cd57SSrinivas Kandagatla .stream_name = "Slimbus2 Playback", 17895b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 17995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 18095b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 18195b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 18295b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 18395b6cd57SSrinivas Kandagatla .channels_min = 1, 18495b6cd57SSrinivas Kandagatla .channels_max = 8, 18595b6cd57SSrinivas Kandagatla .rate_min = 8000, 18695b6cd57SSrinivas Kandagatla .rate_max = 192000, 18795b6cd57SSrinivas Kandagatla }, 18895b6cd57SSrinivas Kandagatla .name = "SLIMBUS_2_RX", 18995b6cd57SSrinivas Kandagatla .id = SLIMBUS_2_RX, 19095b6cd57SSrinivas Kandagatla 19195b6cd57SSrinivas Kandagatla }, { 19295b6cd57SSrinivas Kandagatla .name = "SLIMBUS_2_TX", 19395b6cd57SSrinivas Kandagatla .id = SLIMBUS_2_TX, 19495b6cd57SSrinivas Kandagatla .capture = { 19595b6cd57SSrinivas Kandagatla .stream_name = "Slimbus2 Capture", 19695b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 19795b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 19895b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 19995b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 20095b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 20195b6cd57SSrinivas Kandagatla .channels_min = 1, 20295b6cd57SSrinivas Kandagatla .channels_max = 8, 20395b6cd57SSrinivas Kandagatla .rate_min = 8000, 20495b6cd57SSrinivas Kandagatla .rate_max = 192000, 20595b6cd57SSrinivas Kandagatla }, 20695b6cd57SSrinivas Kandagatla }, { 20795b6cd57SSrinivas Kandagatla .playback = { 20895b6cd57SSrinivas Kandagatla .stream_name = "Slimbus3 Playback", 20995b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | 21095b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | 21195b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 21295b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 21395b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 21495b6cd57SSrinivas Kandagatla .channels_min = 1, 21595b6cd57SSrinivas Kandagatla .channels_max = 2, 21695b6cd57SSrinivas Kandagatla .rate_min = 8000, 21795b6cd57SSrinivas Kandagatla .rate_max = 192000, 21895b6cd57SSrinivas Kandagatla }, 21995b6cd57SSrinivas Kandagatla .name = "SLIMBUS_3_RX", 22095b6cd57SSrinivas Kandagatla .id = SLIMBUS_3_RX, 22195b6cd57SSrinivas Kandagatla 22295b6cd57SSrinivas Kandagatla }, { 22395b6cd57SSrinivas Kandagatla .name = "SLIMBUS_3_TX", 22495b6cd57SSrinivas Kandagatla .id = SLIMBUS_3_TX, 22595b6cd57SSrinivas Kandagatla .capture = { 22695b6cd57SSrinivas Kandagatla .stream_name = "Slimbus3 Capture", 22795b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 22895b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 22995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 23095b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 23195b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 23295b6cd57SSrinivas Kandagatla .channels_min = 1, 23395b6cd57SSrinivas Kandagatla .channels_max = 8, 23495b6cd57SSrinivas Kandagatla .rate_min = 8000, 23595b6cd57SSrinivas Kandagatla .rate_max = 192000, 23695b6cd57SSrinivas Kandagatla }, 23795b6cd57SSrinivas Kandagatla }, { 23895b6cd57SSrinivas Kandagatla .playback = { 23995b6cd57SSrinivas Kandagatla .stream_name = "Slimbus4 Playback", 24095b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | 24195b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | 24295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 24395b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 24495b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 24595b6cd57SSrinivas Kandagatla .channels_min = 1, 24695b6cd57SSrinivas Kandagatla .channels_max = 2, 24795b6cd57SSrinivas Kandagatla .rate_min = 8000, 24895b6cd57SSrinivas Kandagatla .rate_max = 192000, 24995b6cd57SSrinivas Kandagatla }, 25095b6cd57SSrinivas Kandagatla .name = "SLIMBUS_4_RX", 25195b6cd57SSrinivas Kandagatla .id = SLIMBUS_4_RX, 25295b6cd57SSrinivas Kandagatla 25395b6cd57SSrinivas Kandagatla }, { 25495b6cd57SSrinivas Kandagatla .name = "SLIMBUS_4_TX", 25595b6cd57SSrinivas Kandagatla .id = SLIMBUS_4_TX, 25695b6cd57SSrinivas Kandagatla .capture = { 25795b6cd57SSrinivas Kandagatla .stream_name = "Slimbus4 Capture", 25895b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 25995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 26095b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 26195b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 26295b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 26395b6cd57SSrinivas Kandagatla .channels_min = 1, 26495b6cd57SSrinivas Kandagatla .channels_max = 8, 26595b6cd57SSrinivas Kandagatla .rate_min = 8000, 26695b6cd57SSrinivas Kandagatla .rate_max = 192000, 26795b6cd57SSrinivas Kandagatla }, 26895b6cd57SSrinivas Kandagatla }, { 26995b6cd57SSrinivas Kandagatla .playback = { 27095b6cd57SSrinivas Kandagatla .stream_name = "Slimbus5 Playback", 27195b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | 27295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | 27395b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 27495b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 27595b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 27695b6cd57SSrinivas Kandagatla .channels_min = 1, 27795b6cd57SSrinivas Kandagatla .channels_max = 2, 27895b6cd57SSrinivas Kandagatla .rate_min = 8000, 27995b6cd57SSrinivas Kandagatla .rate_max = 192000, 28095b6cd57SSrinivas Kandagatla }, 28195b6cd57SSrinivas Kandagatla .name = "SLIMBUS_5_RX", 28295b6cd57SSrinivas Kandagatla .id = SLIMBUS_5_RX, 28395b6cd57SSrinivas Kandagatla 28495b6cd57SSrinivas Kandagatla }, { 28595b6cd57SSrinivas Kandagatla .name = "SLIMBUS_5_TX", 28695b6cd57SSrinivas Kandagatla .id = SLIMBUS_5_TX, 28795b6cd57SSrinivas Kandagatla .capture = { 28895b6cd57SSrinivas Kandagatla .stream_name = "Slimbus5 Capture", 28995b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 29095b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 29195b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 29295b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 29395b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 29495b6cd57SSrinivas Kandagatla .channels_min = 1, 29595b6cd57SSrinivas Kandagatla .channels_max = 8, 29695b6cd57SSrinivas Kandagatla .rate_min = 8000, 29795b6cd57SSrinivas Kandagatla .rate_max = 192000, 29895b6cd57SSrinivas Kandagatla }, 29995b6cd57SSrinivas Kandagatla }, { 30095b6cd57SSrinivas Kandagatla .playback = { 30195b6cd57SSrinivas Kandagatla .stream_name = "Slimbus6 Playback", 30295b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | 30395b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | 30495b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 30595b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 30695b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 30795b6cd57SSrinivas Kandagatla .channels_min = 1, 30895b6cd57SSrinivas Kandagatla .channels_max = 2, 30995b6cd57SSrinivas Kandagatla .rate_min = 8000, 31095b6cd57SSrinivas Kandagatla .rate_max = 192000, 31195b6cd57SSrinivas Kandagatla }, 31295b6cd57SSrinivas Kandagatla .name = "SLIMBUS_6_RX", 31395b6cd57SSrinivas Kandagatla .id = SLIMBUS_6_RX, 31495b6cd57SSrinivas Kandagatla 31595b6cd57SSrinivas Kandagatla }, { 31695b6cd57SSrinivas Kandagatla .name = "SLIMBUS_6_TX", 31795b6cd57SSrinivas Kandagatla .id = SLIMBUS_6_TX, 31895b6cd57SSrinivas Kandagatla .capture = { 31995b6cd57SSrinivas Kandagatla .stream_name = "Slimbus6 Capture", 32095b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 32195b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 32295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 32395b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 32495b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 32595b6cd57SSrinivas Kandagatla .channels_min = 1, 32695b6cd57SSrinivas Kandagatla .channels_max = 8, 32795b6cd57SSrinivas Kandagatla .rate_min = 8000, 32895b6cd57SSrinivas Kandagatla .rate_max = 192000, 32995b6cd57SSrinivas Kandagatla }, 33095b6cd57SSrinivas Kandagatla }, { 33195b6cd57SSrinivas Kandagatla .playback = { 33295b6cd57SSrinivas Kandagatla .stream_name = "Primary MI2S Playback", 33395b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 33495b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 33595b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 33695b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 33795b6cd57SSrinivas Kandagatla .channels_min = 1, 33895b6cd57SSrinivas Kandagatla .channels_max = 8, 33995b6cd57SSrinivas Kandagatla .rate_min = 8000, 34095b6cd57SSrinivas Kandagatla .rate_max = 48000, 34195b6cd57SSrinivas Kandagatla }, 34295b6cd57SSrinivas Kandagatla .id = PRIMARY_MI2S_RX, 34395b6cd57SSrinivas Kandagatla .name = "PRI_MI2S_RX", 34495b6cd57SSrinivas Kandagatla }, { 34595b6cd57SSrinivas Kandagatla .capture = { 34695b6cd57SSrinivas Kandagatla .stream_name = "Primary MI2S Capture", 34795b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 34895b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 34995b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 35095b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 35195b6cd57SSrinivas Kandagatla .channels_min = 1, 35295b6cd57SSrinivas Kandagatla .channels_max = 8, 35395b6cd57SSrinivas Kandagatla .rate_min = 8000, 35495b6cd57SSrinivas Kandagatla .rate_max = 48000, 35595b6cd57SSrinivas Kandagatla }, 35695b6cd57SSrinivas Kandagatla .id = PRIMARY_MI2S_TX, 35795b6cd57SSrinivas Kandagatla .name = "PRI_MI2S_TX", 35895b6cd57SSrinivas Kandagatla }, { 35995b6cd57SSrinivas Kandagatla .playback = { 36095b6cd57SSrinivas Kandagatla .stream_name = "Secondary MI2S Playback", 36195b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 36295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 36395b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE, 36495b6cd57SSrinivas Kandagatla .channels_min = 1, 36595b6cd57SSrinivas Kandagatla .channels_max = 8, 36695b6cd57SSrinivas Kandagatla .rate_min = 8000, 36795b6cd57SSrinivas Kandagatla .rate_max = 48000, 36895b6cd57SSrinivas Kandagatla }, 36995b6cd57SSrinivas Kandagatla .name = "SEC_MI2S_RX", 37095b6cd57SSrinivas Kandagatla .id = SECONDARY_MI2S_RX, 37195b6cd57SSrinivas Kandagatla }, { 37295b6cd57SSrinivas Kandagatla .capture = { 37395b6cd57SSrinivas Kandagatla .stream_name = "Secondary MI2S Capture", 37495b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 37595b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 37695b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 37795b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 37895b6cd57SSrinivas Kandagatla .channels_min = 1, 37995b6cd57SSrinivas Kandagatla .channels_max = 8, 38095b6cd57SSrinivas Kandagatla .rate_min = 8000, 38195b6cd57SSrinivas Kandagatla .rate_max = 48000, 38295b6cd57SSrinivas Kandagatla }, 38395b6cd57SSrinivas Kandagatla .id = SECONDARY_MI2S_TX, 38495b6cd57SSrinivas Kandagatla .name = "SEC_MI2S_TX", 38595b6cd57SSrinivas Kandagatla }, { 38695b6cd57SSrinivas Kandagatla .playback = { 38795b6cd57SSrinivas Kandagatla .stream_name = "Tertiary MI2S Playback", 38895b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 38995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 39095b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE, 39195b6cd57SSrinivas Kandagatla .channels_min = 1, 39295b6cd57SSrinivas Kandagatla .channels_max = 8, 39395b6cd57SSrinivas Kandagatla .rate_min = 8000, 39495b6cd57SSrinivas Kandagatla .rate_max = 48000, 39595b6cd57SSrinivas Kandagatla }, 39695b6cd57SSrinivas Kandagatla .name = "TERT_MI2S_RX", 39795b6cd57SSrinivas Kandagatla .id = TERTIARY_MI2S_RX, 39895b6cd57SSrinivas Kandagatla }, { 39995b6cd57SSrinivas Kandagatla .capture = { 40095b6cd57SSrinivas Kandagatla .stream_name = "Tertiary MI2S Capture", 40195b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 40295b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 40395b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 40495b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 40595b6cd57SSrinivas Kandagatla .channels_min = 1, 40695b6cd57SSrinivas Kandagatla .channels_max = 8, 40795b6cd57SSrinivas Kandagatla .rate_min = 8000, 40895b6cd57SSrinivas Kandagatla .rate_max = 48000, 40995b6cd57SSrinivas Kandagatla }, 41095b6cd57SSrinivas Kandagatla .id = TERTIARY_MI2S_TX, 41195b6cd57SSrinivas Kandagatla .name = "TERT_MI2S_TX", 41295b6cd57SSrinivas Kandagatla }, { 41395b6cd57SSrinivas Kandagatla .playback = { 41495b6cd57SSrinivas Kandagatla .stream_name = "Quaternary MI2S Playback", 41595b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 41695b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 41795b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE, 41895b6cd57SSrinivas Kandagatla .channels_min = 1, 41995b6cd57SSrinivas Kandagatla .channels_max = 8, 42095b6cd57SSrinivas Kandagatla .rate_min = 8000, 42195b6cd57SSrinivas Kandagatla .rate_max = 48000, 42295b6cd57SSrinivas Kandagatla }, 42395b6cd57SSrinivas Kandagatla .name = "QUAT_MI2S_RX", 42495b6cd57SSrinivas Kandagatla .id = QUATERNARY_MI2S_RX, 42595b6cd57SSrinivas Kandagatla }, { 42695b6cd57SSrinivas Kandagatla .capture = { 42795b6cd57SSrinivas Kandagatla .stream_name = "Quaternary MI2S Capture", 42895b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 42995b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 43095b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE | 43195b6cd57SSrinivas Kandagatla SNDRV_PCM_FMTBIT_S24_LE, 43295b6cd57SSrinivas Kandagatla .channels_min = 1, 43395b6cd57SSrinivas Kandagatla .channels_max = 8, 43495b6cd57SSrinivas Kandagatla .rate_min = 8000, 43595b6cd57SSrinivas Kandagatla .rate_max = 48000, 43695b6cd57SSrinivas Kandagatla }, 43795b6cd57SSrinivas Kandagatla .id = QUATERNARY_MI2S_TX, 43895b6cd57SSrinivas Kandagatla .name = "QUAT_MI2S_TX", 43995b6cd57SSrinivas Kandagatla }, { 44095b6cd57SSrinivas Kandagatla .playback = { 44195b6cd57SSrinivas Kandagatla .stream_name = "Quinary MI2S Playback", 44295b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 44395b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_96000 | 44495b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_192000, 44595b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE, 44695b6cd57SSrinivas Kandagatla .channels_min = 1, 44795b6cd57SSrinivas Kandagatla .channels_max = 8, 44895b6cd57SSrinivas Kandagatla .rate_min = 8000, 44995b6cd57SSrinivas Kandagatla .rate_max = 192000, 45095b6cd57SSrinivas Kandagatla }, 45195b6cd57SSrinivas Kandagatla .id = QUINARY_MI2S_RX, 45295b6cd57SSrinivas Kandagatla .name = "QUIN_MI2S_RX", 45395b6cd57SSrinivas Kandagatla }, { 45495b6cd57SSrinivas Kandagatla .capture = { 45595b6cd57SSrinivas Kandagatla .stream_name = "Quinary MI2S Capture", 45695b6cd57SSrinivas Kandagatla .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_8000 | 45795b6cd57SSrinivas Kandagatla SNDRV_PCM_RATE_16000, 45895b6cd57SSrinivas Kandagatla .formats = SNDRV_PCM_FMTBIT_S16_LE, 45995b6cd57SSrinivas Kandagatla .channels_min = 1, 46095b6cd57SSrinivas Kandagatla .channels_max = 8, 46195b6cd57SSrinivas Kandagatla .rate_min = 8000, 46295b6cd57SSrinivas Kandagatla .rate_max = 48000, 46395b6cd57SSrinivas Kandagatla }, 46495b6cd57SSrinivas Kandagatla .id = QUINARY_MI2S_TX, 46595b6cd57SSrinivas Kandagatla .name = "QUIN_MI2S_TX", 46695b6cd57SSrinivas Kandagatla }, 46795b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0), 46895b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1), 46995b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 2, PRIMARY_TDM_RX_2), 47095b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 3, PRIMARY_TDM_RX_3), 47195b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 4, PRIMARY_TDM_RX_4), 47295b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 5, PRIMARY_TDM_RX_5), 47395b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 6, PRIMARY_TDM_RX_6), 47495b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Primary", 7, PRIMARY_TDM_RX_7), 47595b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 0, PRIMARY_TDM_TX_0), 47695b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 1, PRIMARY_TDM_TX_1), 47795b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 2, PRIMARY_TDM_TX_2), 47895b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 3, PRIMARY_TDM_TX_3), 47995b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 4, PRIMARY_TDM_TX_4), 48095b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 5, PRIMARY_TDM_TX_5), 48195b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 6, PRIMARY_TDM_TX_6), 48295b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Primary", 7, PRIMARY_TDM_TX_7), 48395b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 0, SECONDARY_TDM_RX_0), 48495b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 1, SECONDARY_TDM_RX_1), 48595b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 2, SECONDARY_TDM_RX_2), 48695b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 3, SECONDARY_TDM_RX_3), 48795b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 4, SECONDARY_TDM_RX_4), 48895b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 5, SECONDARY_TDM_RX_5), 48995b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 6, SECONDARY_TDM_RX_6), 49095b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Secondary", 7, SECONDARY_TDM_RX_7), 49195b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 0, SECONDARY_TDM_TX_0), 49295b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 1, SECONDARY_TDM_TX_1), 49395b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 2, SECONDARY_TDM_TX_2), 49495b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 3, SECONDARY_TDM_TX_3), 49595b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 4, SECONDARY_TDM_TX_4), 49695b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 5, SECONDARY_TDM_TX_5), 49795b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 6, SECONDARY_TDM_TX_6), 49895b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Secondary", 7, SECONDARY_TDM_TX_7), 49995b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 0, TERTIARY_TDM_RX_0), 50095b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 1, TERTIARY_TDM_RX_1), 50195b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 2, TERTIARY_TDM_RX_2), 50295b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 3, TERTIARY_TDM_RX_3), 50395b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 4, TERTIARY_TDM_RX_4), 50495b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 5, TERTIARY_TDM_RX_5), 50595b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 6, TERTIARY_TDM_RX_6), 50695b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Tertiary", 7, TERTIARY_TDM_RX_7), 50795b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 0, TERTIARY_TDM_TX_0), 50895b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 1, TERTIARY_TDM_TX_1), 50995b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 2, TERTIARY_TDM_TX_2), 51095b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 3, TERTIARY_TDM_TX_3), 51195b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 4, TERTIARY_TDM_TX_4), 51295b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 5, TERTIARY_TDM_TX_5), 51395b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 6, TERTIARY_TDM_TX_6), 51495b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Tertiary", 7, TERTIARY_TDM_TX_7), 51595b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 0, QUATERNARY_TDM_RX_0), 51695b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 1, QUATERNARY_TDM_RX_1), 51795b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 2, QUATERNARY_TDM_RX_2), 51895b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 3, QUATERNARY_TDM_RX_3), 51995b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 4, QUATERNARY_TDM_RX_4), 52095b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 5, QUATERNARY_TDM_RX_5), 52195b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 6, QUATERNARY_TDM_RX_6), 52295b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quaternary", 7, QUATERNARY_TDM_RX_7), 52395b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 0, QUATERNARY_TDM_TX_0), 52495b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 1, QUATERNARY_TDM_TX_1), 52595b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 2, QUATERNARY_TDM_TX_2), 52695b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 3, QUATERNARY_TDM_TX_3), 52795b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 4, QUATERNARY_TDM_TX_4), 52895b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 5, QUATERNARY_TDM_TX_5), 52995b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 6, QUATERNARY_TDM_TX_6), 53095b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quaternary", 7, QUATERNARY_TDM_TX_7), 53195b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 0, QUINARY_TDM_RX_0), 53295b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 1, QUINARY_TDM_RX_1), 53395b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 2, QUINARY_TDM_RX_2), 53495b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 3, QUINARY_TDM_RX_3), 53595b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 4, QUINARY_TDM_RX_4), 53695b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 5, QUINARY_TDM_RX_5), 53795b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 6, QUINARY_TDM_RX_6), 53895b6cd57SSrinivas Kandagatla Q6AFE_TDM_PB_DAI("Quinary", 7, QUINARY_TDM_RX_7), 53995b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 0, QUINARY_TDM_TX_0), 54095b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 1, QUINARY_TDM_TX_1), 54195b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 2, QUINARY_TDM_TX_2), 54295b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 3, QUINARY_TDM_TX_3), 54395b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 4, QUINARY_TDM_TX_4), 54495b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 5, QUINARY_TDM_TX_5), 54595b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 6, QUINARY_TDM_TX_6), 54695b6cd57SSrinivas Kandagatla Q6AFE_TDM_CAP_DAI("Quinary", 7, QUINARY_TDM_TX_7), 547*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_0), 548*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_1), 549*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_2), 550*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_3), 551*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_4), 552*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_5), 553*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_6), 554*90848a25SSrinivas Kandagatla Q6AFE_DP_RX_DAI(DISPLAY_PORT_RX_7), 55595b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(WSA_CODEC_DMA_RX_0), 55695b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(WSA_CODEC_DMA_TX_0), 55795b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(WSA_CODEC_DMA_RX_1), 55895b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(WSA_CODEC_DMA_TX_1), 55995b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(WSA_CODEC_DMA_TX_2), 56095b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(VA_CODEC_DMA_TX_0), 56195b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(VA_CODEC_DMA_TX_1), 56295b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(VA_CODEC_DMA_TX_2), 56395b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_0), 56495b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_0), 56595b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_1), 56695b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_1), 56795b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_2), 56895b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_2), 56995b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_3), 57095b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_3), 57195b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_4), 57295b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_4), 57395b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_5), 57495b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_TX_DAI(TX_CODEC_DMA_TX_5), 57595b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_6), 57695b6cd57SSrinivas Kandagatla Q6AFE_CDC_DMA_RX_DAI(RX_CODEC_DMA_RX_7), 57795b6cd57SSrinivas Kandagatla }; 57895b6cd57SSrinivas Kandagatla 57995b6cd57SSrinivas Kandagatla int q6dsp_audio_ports_of_xlate_dai_name(struct snd_soc_component *component, 58095b6cd57SSrinivas Kandagatla const struct of_phandle_args *args, 58195b6cd57SSrinivas Kandagatla const char **dai_name) 58295b6cd57SSrinivas Kandagatla { 58395b6cd57SSrinivas Kandagatla int id = args->args[0]; 58495b6cd57SSrinivas Kandagatla int ret = -EINVAL; 58595b6cd57SSrinivas Kandagatla int i; 58695b6cd57SSrinivas Kandagatla 58795b6cd57SSrinivas Kandagatla for (i = 0; i < ARRAY_SIZE(q6dsp_audio_fe_dais); i++) { 58895b6cd57SSrinivas Kandagatla if (q6dsp_audio_fe_dais[i].id == id) { 58995b6cd57SSrinivas Kandagatla *dai_name = q6dsp_audio_fe_dais[i].name; 59095b6cd57SSrinivas Kandagatla ret = 0; 59195b6cd57SSrinivas Kandagatla break; 59295b6cd57SSrinivas Kandagatla } 59395b6cd57SSrinivas Kandagatla } 59495b6cd57SSrinivas Kandagatla 59595b6cd57SSrinivas Kandagatla return ret; 59695b6cd57SSrinivas Kandagatla } 59795b6cd57SSrinivas Kandagatla EXPORT_SYMBOL_GPL(q6dsp_audio_ports_of_xlate_dai_name); 59895b6cd57SSrinivas Kandagatla 59995b6cd57SSrinivas Kandagatla struct snd_soc_dai_driver *q6dsp_audio_ports_set_config(struct device *dev, 60095b6cd57SSrinivas Kandagatla struct q6dsp_audio_port_dai_driver_config *cfg, 60195b6cd57SSrinivas Kandagatla int *num_dais) 60295b6cd57SSrinivas Kandagatla { 60395b6cd57SSrinivas Kandagatla int i; 60495b6cd57SSrinivas Kandagatla 60595b6cd57SSrinivas Kandagatla for (i = 0; i < ARRAY_SIZE(q6dsp_audio_fe_dais); i++) { 60695b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].probe = cfg->probe; 60795b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].remove = cfg->remove; 60895b6cd57SSrinivas Kandagatla 60995b6cd57SSrinivas Kandagatla switch (q6dsp_audio_fe_dais[i].id) { 61095b6cd57SSrinivas Kandagatla case HDMI_RX: 61195b6cd57SSrinivas Kandagatla case DISPLAY_PORT_RX: 61295b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops; 61395b6cd57SSrinivas Kandagatla break; 614*90848a25SSrinivas Kandagatla case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7: 615*90848a25SSrinivas Kandagatla q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops; 616*90848a25SSrinivas Kandagatla break; 61795b6cd57SSrinivas Kandagatla case SLIMBUS_0_RX ... SLIMBUS_6_TX: 61895b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].ops = cfg->q6slim_ops; 61995b6cd57SSrinivas Kandagatla break; 62095b6cd57SSrinivas Kandagatla case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: 62195b6cd57SSrinivas Kandagatla case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: 62295b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops; 62395b6cd57SSrinivas Kandagatla break; 62495b6cd57SSrinivas Kandagatla case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7: 62595b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].ops = cfg->q6tdm_ops; 62695b6cd57SSrinivas Kandagatla break; 62795b6cd57SSrinivas Kandagatla case WSA_CODEC_DMA_RX_0 ... RX_CODEC_DMA_RX_7: 62895b6cd57SSrinivas Kandagatla q6dsp_audio_fe_dais[i].ops = cfg->q6dma_ops; 62995b6cd57SSrinivas Kandagatla break; 63095b6cd57SSrinivas Kandagatla default: 63195b6cd57SSrinivas Kandagatla break; 63295b6cd57SSrinivas Kandagatla } 63395b6cd57SSrinivas Kandagatla } 63495b6cd57SSrinivas Kandagatla 63595b6cd57SSrinivas Kandagatla *num_dais = ARRAY_SIZE(q6dsp_audio_fe_dais); 63695b6cd57SSrinivas Kandagatla return q6dsp_audio_fe_dais; 63795b6cd57SSrinivas Kandagatla } 63895b6cd57SSrinivas Kandagatla EXPORT_SYMBOL_GPL(q6dsp_audio_ports_set_config); 639