History

ASoC: qcom: qdsp6: lpass-ports: add support for LPASS LPI MI2S dais

Add support for LPASS LPI MI2S dais in the dai-driver, these dais are used in Monaco based platform devices.

Srinivas Kandagatla committed 7 months ago

Commit bcd0df11 parent d49ee8f1 file · +47 −0Browse files

Unified · Split

sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c+47−0
@@ -96,6 +96,42 @@ · 95 unmodified lines
9696 .id = did, \
9797 }
9898
99+#define Q6AFE_MI2S_RX_DAI(pre, did) { \
100+ .playback = { \
101+ .stream_name = pre" MI2S Playback", \
102+ .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
103+ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
104+ SNDRV_PCM_RATE_176400, \
105+ .formats = SNDRV_PCM_FMTBIT_S16_LE | \
106+ SNDRV_PCM_FMTBIT_S24_LE | \
107+ SNDRV_PCM_FMTBIT_S32_LE, \
108+ .channels_min = 1, \
109+ .channels_max = 8, \
110+ .rate_min = 8000, \
111+ .rate_max = 176400, \
112+ }, \
113+ .name = #did, \
114+ .id = did, \
115+ }
116+
117+#define Q6AFE_MI2S_TX_DAI(pre, did) { \
118+ .capture = { \
119+ .stream_name = pre" MI2S Capture", \
120+ .rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
121+ SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
122+ SNDRV_PCM_RATE_176400, \
123+ .formats = SNDRV_PCM_FMTBIT_S16_LE | \
124+ SNDRV_PCM_FMTBIT_S24_LE | \
125+ SNDRV_PCM_FMTBIT_S32_LE, \
126+ .channels_min = 1, \
127+ .channels_max = 8, \
128+ .rate_min = 8000, \
129+ .rate_max = 176400, \
130+ }, \
131+ .name = #did, \
132+ .id = did, \
133+ }
134+
99135 static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
100136 {
101137 .playback = {
@@ -484,6 +520,16 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = { · 382 unmodified lines
484520 .id = QUINARY_MI2S_TX,
485521 .name = "QUIN_MI2S_TX",
486522 },
523+ Q6AFE_MI2S_RX_DAI("LPI RX0", LPI_MI2S_RX_0),
524+ Q6AFE_MI2S_RX_DAI("LPI RX1", LPI_MI2S_RX_1),
525+ Q6AFE_MI2S_RX_DAI("LPI RX2", LPI_MI2S_RX_2),
526+ Q6AFE_MI2S_RX_DAI("LPI RX3", LPI_MI2S_RX_3),
527+ Q6AFE_MI2S_RX_DAI("LPI RX4", LPI_MI2S_RX_4),
528+ Q6AFE_MI2S_TX_DAI("LPI TX0", LPI_MI2S_TX_0),
529+ Q6AFE_MI2S_TX_DAI("LPI TX1", LPI_MI2S_TX_1),
530+ Q6AFE_MI2S_TX_DAI("LPI TX2", LPI_MI2S_TX_2),
531+ Q6AFE_MI2S_TX_DAI("LPI TX3", LPI_MI2S_TX_3),
532+ Q6AFE_MI2S_TX_DAI("LPI TX4", LPI_MI2S_TX_4),
487533 Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0),
488534 Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1),
489535 Q6AFE_TDM_PB_DAI("Primary", 2, PRIMARY_TDM_RX_2),
@@ -636,6 +682,7 @@ struct snd_soc_dai_driver *q6dsp_audio_ports_set_config(struct device *dev, · 146 unmodified lines
636682 break;
637683 case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:
638684 case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:
685+ case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4:
639686 q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops;
640687 break;
641688 case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7: