Add support for LPASS LPI MI2S dais in the dai-driver, these dais are used in Monaco based platform devices.
Unified · Split
| @@ -96,6 +96,42 @@ · 95 unmodified lines | ||
| 96 | 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 | + | |
| 99 | 135 | static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = { |
| 100 | 136 | { |
| 101 | 137 | .playback = { |
| @@ -484,6 +520,16 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[] = { · 382 unmodified lines | ||
| 484 | 520 | .id = QUINARY_MI2S_TX, |
| 485 | 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 | 533 | Q6AFE_TDM_PB_DAI("Primary", 0, PRIMARY_TDM_RX_0), |
| 488 | 534 | Q6AFE_TDM_PB_DAI("Primary", 1, PRIMARY_TDM_RX_1), |
| 489 | 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 | 682 | break; |
| 637 | 683 | case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: |
| 638 | 684 | case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: |
| 685 | + case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4: | |
| 639 | 686 | q6dsp_audio_fe_dais[i].ops = cfg->q6i2s_ops; |
| 640 | 687 | break; |
| 641 | 688 | case PRIMARY_TDM_RX_0 ... QUINARY_TDM_TX_7: |