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 
q6dsp_audio_ports_of_xlate_dai_name(struct snd_soc_component * component,const struct of_phandle_args * args,const char ** dai_name)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 
q6dsp_audio_ports_set_config(struct device * dev,struct q6dsp_audio_port_dai_driver_config * cfg,int * num_dais)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 		switch (q6dsp_audio_fe_dais[i].id) {
60795b6cd57SSrinivas Kandagatla 		case HDMI_RX:
60895b6cd57SSrinivas Kandagatla 		case DISPLAY_PORT_RX:
60995b6cd57SSrinivas Kandagatla 			q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops;
61095b6cd57SSrinivas Kandagatla 			break;
611*90848a25SSrinivas Kandagatla 		case DISPLAY_PORT_RX_1 ... DISPLAY_PORT_RX_7:
612*90848a25SSrinivas Kandagatla 			q6dsp_audio_fe_dais[i].ops = cfg->q6hdmi_ops;
613*90848a25SSrinivas Kandagatla 			break;
61495b6cd57SSrinivas Kandagatla 		case SLIMBUS_0_RX ... SLIMBUS_6_TX:
61595b6cd57SSrinivas Kandagatla 			q6dsp_audio_fe_dais[i].ops = cfg->q6slim_ops;
61695b6cd57SSrinivas Kandagatla 			break;
61795b6cd57SSrinivas Kandagatla 		case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:
61895b6cd57SSrinivas Kandagatla 		case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:
61995b6cd57SSrinivas Kandagatla 			q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops;
62095b6cd57SSrinivas Kandagatla 			break;
62195b6cd57SSrinivas Kandagatla 		case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7:
62295b6cd57SSrinivas Kandagatla 			q6dsp_audio_fe_dais[i].ops = cfg->q6tdm_ops;
62395b6cd57SSrinivas Kandagatla 			break;
62495b6cd57SSrinivas Kandagatla 		case WSA_CODEC_DMA_RX_0 ... RX_CODEC_DMA_RX_7:
62595b6cd57SSrinivas Kandagatla 			q6dsp_audio_fe_dais[i].ops = cfg->q6dma_ops;
62695b6cd57SSrinivas Kandagatla 			break;
62795b6cd57SSrinivas Kandagatla 		default:
62895b6cd57SSrinivas Kandagatla 			break;
62995b6cd57SSrinivas Kandagatla 		}
63095b6cd57SSrinivas Kandagatla 	}
63195b6cd57SSrinivas Kandagatla 
63295b6cd57SSrinivas Kandagatla 	*num_dais = ARRAY_SIZE(q6dsp_audio_fe_dais);
63395b6cd57SSrinivas Kandagatla 	return q6dsp_audio_fe_dais;
63495b6cd57SSrinivas Kandagatla }
63595b6cd57SSrinivas Kandagatla EXPORT_SYMBOL_GPL(q6dsp_audio_ports_set_config);
636