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
96 .id = did, \96 .id = did, \
97 }97 }
98 98
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
99static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {135static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = {
100 {136 {
101 .playback = {137 .playback = {
@@ -484,6 +520,16 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = { · 382 unmodified lines
484 .id = QUINARY_MI2S_TX,520 .id = QUINARY_MI2S_TX,
485 .name = "QUIN_MI2S_TX",521 .name = "QUIN_MI2S_TX",
486 },522 },
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),
487 Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0),533 Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0),
488 Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1),534 Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1),
489 Q6AFE_TDM_PB_DAI("Primary", 2, PRIMARY_TDM_RX_2),535 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
636 break;682 break;
637 case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:683 case QUINARY_MI2S_RX ... QUINARY_MI2S_TX:
638 case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:684 case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX:
685 case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4:
639 q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops;686 q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops;
640 break;687 break;
641 case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7:688 case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7: