asoc: codecs: enable i2s mode for tavil
Add support for tavil i2c access. Add audio routings dapm widgets for data and control. Change-Id: I96ebf7a5700b10f294f4fadfeeb21dab490a9313 Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
This commit is contained in:
parent
da56c67bc4
commit
98d3d590bb
2 changed files with 966 additions and 107 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -17,13 +17,9 @@
|
|||
|
||||
const struct snd_soc_dapm_route tavil_slim_audio_map[] = {
|
||||
|
||||
/* Virtual input widgets */
|
||||
{"AIF1 CAP", NULL, "AIF1_CAP Mixer"},
|
||||
{"AIF2 CAP", NULL, "AIF2_CAP Mixer"},
|
||||
{"AIF3 CAP", NULL, "AIF3_CAP Mixer"},
|
||||
{"AIF4 MAD", NULL, "AIF4_MAD Mixer"},
|
||||
|
||||
/* Virtual input widget Mixer */
|
||||
/* Virtual input widget Mixer SLIMBUS*/
|
||||
{"AIF1_CAP Mixer", "SLIM TX0", "SLIM TX0"},
|
||||
{"AIF1_CAP Mixer", "SLIM TX1", "SLIM TX1"},
|
||||
{"AIF1_CAP Mixer", "SLIM TX2", "SLIM TX2"},
|
||||
|
@ -68,6 +64,21 @@ const struct snd_soc_dapm_route tavil_slim_audio_map[] = {
|
|||
|
||||
{"AIF4_MAD Mixer", "SLIM TX13", "SLIM TX13"},
|
||||
|
||||
/* CDC Tx interface with SLIMBUS */
|
||||
{"SLIM TX0", NULL, "CDC_IF TX0 MUX"},
|
||||
{"SLIM TX1", NULL, "CDC_IF TX1 MUX"},
|
||||
{"SLIM TX2", NULL, "CDC_IF TX2 MUX"},
|
||||
{"SLIM TX3", NULL, "CDC_IF TX3 MUX"},
|
||||
{"SLIM TX4", NULL, "CDC_IF TX4 MUX"},
|
||||
{"SLIM TX5", NULL, "CDC_IF TX5 MUX"},
|
||||
{"SLIM TX6", NULL, "CDC_IF TX6 MUX"},
|
||||
{"SLIM TX7", NULL, "CDC_IF TX7 MUX"},
|
||||
{"SLIM TX8", NULL, "CDC_IF TX8 MUX"},
|
||||
{"SLIM TX9", NULL, "CDC_IF TX9 MUX"},
|
||||
{"SLIM TX10", NULL, "CDC_IF TX10 MUX"},
|
||||
{"SLIM TX11", NULL, "CDC_IF TX11 MUX"},
|
||||
{"SLIM TX13", NULL, "CDC_IF TX13 MUX"},
|
||||
|
||||
{"SLIM RX0 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"SLIM RX1 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"SLIM RX2 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
|
@ -113,10 +124,100 @@ const struct snd_soc_dapm_route tavil_slim_audio_map[] = {
|
|||
{"SLIM RX6", NULL, "SLIM RX6 MUX"},
|
||||
{"SLIM RX7", NULL, "SLIM RX7 MUX"},
|
||||
|
||||
/* CDC Rx interface with SLIMBUS */
|
||||
{"CDC_IF RX0 MUX", "SLIM RX0", "SLIM RX0"},
|
||||
{"CDC_IF RX1 MUX", "SLIM RX1", "SLIM RX1"},
|
||||
{"CDC_IF RX2 MUX", "SLIM RX2", "SLIM RX2"},
|
||||
{"CDC_IF RX3 MUX", "SLIM RX3", "SLIM RX3"},
|
||||
{"CDC_IF RX4 MUX", "SLIM RX4", "SLIM RX4"},
|
||||
{"CDC_IF RX5 MUX", "SLIM RX5", "SLIM RX5"},
|
||||
{"CDC_IF RX6 MUX", "SLIM RX6", "SLIM RX6"},
|
||||
{"CDC_IF RX7 MUX", "SLIM RX7", "SLIM RX7"},
|
||||
|
||||
/* VI Feedback */
|
||||
{"AIF4_VI Mixer", "SPKR_VI_1", "VIINPUT"},
|
||||
{"AIF4_VI Mixer", "SPKR_VI_2", "VIINPUT"},
|
||||
{"AIF4 VI", NULL, "AIF4_VI Mixer"},
|
||||
|
||||
};
|
||||
|
||||
const struct snd_soc_dapm_route tavil_i2s_audio_map[] = {
|
||||
|
||||
/* Virtual input widget Mixer I2S*/
|
||||
{"AIF1_CAP Mixer", "I2S TX1", "I2S TX1"},
|
||||
{"AIF1_CAP Mixer", "I2S TX2", "I2S TX2"},
|
||||
{"AIF1_CAP Mixer", "I2S TX3", "I2S TX3"},
|
||||
{"AIF1_CAP Mixer", "I2S TX4", "I2S TX4"},
|
||||
{"AIF1_CAP Mixer", "I2S TX5", "I2S TX5"},
|
||||
{"AIF1_CAP Mixer", "I2S TX6", "I2S TX6"},
|
||||
{"AIF1_CAP Mixer", "I2S TX7", "I2S TX7"},
|
||||
|
||||
{"AIF2_CAP Mixer", "I2S TX8", "I2S TX8"},
|
||||
{"AIF2_CAP Mixer", "I2S TX11", "I2S TX11"},
|
||||
|
||||
{"AIF3_CAP Mixer", "I2S TX0", "I2S TX0"},
|
||||
{"AIF3_CAP Mixer", "I2S TX1", "I2S TX1"},
|
||||
|
||||
/* CDC Tx interface with I2S */
|
||||
{"I2S TX0", NULL, "CDC_IF TX0 MUX"},
|
||||
{"I2S TX1", NULL, "CDC_IF TX1 MUX"},
|
||||
{"I2S TX2", NULL, "CDC_IF TX2 MUX"},
|
||||
{"I2S TX3", NULL, "CDC_IF TX3 MUX"},
|
||||
{"I2S TX4", NULL, "CDC_IF TX4 MUX"},
|
||||
{"I2S TX5", NULL, "CDC_IF TX5 MUX"},
|
||||
{"I2S TX6", NULL, "CDC_IF TX6 MUX"},
|
||||
{"I2S TX7", NULL, "CDC_IF TX7 MUX"},
|
||||
{"I2S TX8", NULL, "CDC_IF TX8 MUX"},
|
||||
{"I2S TX11", NULL, "CDC_IF TX11 MUX"},
|
||||
|
||||
{"I2S RX0 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX1 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX2 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX3 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX4 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX5 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX6 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
{"I2S RX7 MUX", "AIF1_PB", "AIF1 PB"},
|
||||
|
||||
{"I2S RX2 MUX", "AIF2_PB", "AIF2 PB"},
|
||||
{"I2S RX3 MUX", "AIF2_PB", "AIF2 PB"},
|
||||
|
||||
{"I2S RX4 MUX", "AIF3_PB", "AIF3 PB"},
|
||||
{"I2S RX5 MUX", "AIF3_PB", "AIF3 PB"},
|
||||
|
||||
{"I2S RX0", NULL, "I2S RX0 MUX"},
|
||||
{"I2S RX1", NULL, "I2S RX1 MUX"},
|
||||
{"I2S RX2", NULL, "I2S RX2 MUX"},
|
||||
{"I2S RX3", NULL, "I2S RX3 MUX"},
|
||||
{"I2S RX4", NULL, "I2S RX4 MUX"},
|
||||
{"I2S RX5", NULL, "I2S RX5 MUX"},
|
||||
{"I2S RX6", NULL, "I2S RX6 MUX"},
|
||||
{"I2S RX7", NULL, "I2S RX7 MUX"},
|
||||
|
||||
/* CDC Rx interface with I2S */
|
||||
{"CDC_IF RX0 MUX", "I2S RX0", "I2S RX0"},
|
||||
{"CDC_IF RX1 MUX", "I2S RX1", "I2S RX1"},
|
||||
{"CDC_IF RX2 MUX", "I2S RX2", "I2S RX2"},
|
||||
{"CDC_IF RX3 MUX", "I2S RX3", "I2S RX3"},
|
||||
{"CDC_IF RX4 MUX", "I2S RX4", "I2S RX4"},
|
||||
{"CDC_IF RX5 MUX", "I2S RX5", "I2S RX5"},
|
||||
{"CDC_IF RX6 MUX", "I2S RX6", "I2S RX6"},
|
||||
{"CDC_IF RX7 MUX", "I2S RX7", "I2S RX7"},
|
||||
|
||||
};
|
||||
|
||||
const struct snd_soc_dapm_route tavil_audio_map[] = {
|
||||
|
||||
/*
|
||||
* AIF CAP to Mixer routes are common
|
||||
* for both SLIM as well as I2S
|
||||
*/
|
||||
|
||||
/* Virtual input widgets */
|
||||
{"AIF1 CAP", NULL, "AIF1_CAP Mixer"},
|
||||
{"AIF2 CAP", NULL, "AIF2_CAP Mixer"},
|
||||
{"AIF3 CAP", NULL, "AIF3_CAP Mixer"},
|
||||
|
||||
/* WDMA3 */
|
||||
{"WDMA3 PORT0 MUX", "DEC0", "ADC MUX0"},
|
||||
{"WDMA3 PORT0 MUX", "RX_MIX_TX0", "RX MIX TX0 MUX"},
|
||||
|
@ -195,26 +296,6 @@ const struct snd_soc_dapm_route tavil_audio_map[] = {
|
|||
{"MAD_CPE_OUT1", NULL, "MAD_CPE1"},
|
||||
{"MAD_CPE_OUT2", NULL, "MAD_CPE2"},
|
||||
|
||||
/* VI Feedback */
|
||||
{"AIF4_VI Mixer", "SPKR_VI_1", "VIINPUT"},
|
||||
{"AIF4_VI Mixer", "SPKR_VI_2", "VIINPUT"},
|
||||
{"AIF4 VI", NULL, "AIF4_VI Mixer"},
|
||||
|
||||
/* CDC Tx interface with SLIMBUS */
|
||||
{"SLIM TX0", NULL, "CDC_IF TX0 MUX"},
|
||||
{"SLIM TX1", NULL, "CDC_IF TX1 MUX"},
|
||||
{"SLIM TX2", NULL, "CDC_IF TX2 MUX"},
|
||||
{"SLIM TX3", NULL, "CDC_IF TX3 MUX"},
|
||||
{"SLIM TX4", NULL, "CDC_IF TX4 MUX"},
|
||||
{"SLIM TX5", NULL, "CDC_IF TX5 MUX"},
|
||||
{"SLIM TX6", NULL, "CDC_IF TX6 MUX"},
|
||||
{"SLIM TX7", NULL, "CDC_IF TX7 MUX"},
|
||||
{"SLIM TX8", NULL, "CDC_IF TX8 MUX"},
|
||||
{"SLIM TX9", NULL, "CDC_IF TX9 MUX"},
|
||||
{"SLIM TX10", NULL, "CDC_IF TX10 MUX"},
|
||||
{"SLIM TX11", NULL, "CDC_IF TX11 MUX"},
|
||||
{"SLIM TX13", NULL, "CDC_IF TX13 MUX"},
|
||||
|
||||
{"CDC_IF TX0 MUX", "DEC0", "ADC MUX0"},
|
||||
{"CDC_IF TX0 MUX", "RX_MIX_TX0", "RX MIX TX0 MUX"},
|
||||
{"CDC_IF TX0 MUX", "DEC0_192", "ADC US MUX0"},
|
||||
|
@ -568,16 +649,6 @@ const struct snd_soc_dapm_route tavil_audio_map[] = {
|
|||
{"ADC3", NULL, "AMIC3"},
|
||||
{"ADC4", NULL, "AMIC4_5 SEL"},
|
||||
|
||||
/* CDC Rx interface with SLIMBUS */
|
||||
{"CDC_IF RX0 MUX", "SLIM RX0", "SLIM RX0"},
|
||||
{"CDC_IF RX1 MUX", "SLIM RX1", "SLIM RX1"},
|
||||
{"CDC_IF RX2 MUX", "SLIM RX2", "SLIM RX2"},
|
||||
{"CDC_IF RX3 MUX", "SLIM RX3", "SLIM RX3"},
|
||||
{"CDC_IF RX4 MUX", "SLIM RX4", "SLIM RX4"},
|
||||
{"CDC_IF RX5 MUX", "SLIM RX5", "SLIM RX5"},
|
||||
{"CDC_IF RX6 MUX", "SLIM RX6", "SLIM RX6"},
|
||||
{"CDC_IF RX7 MUX", "SLIM RX7", "SLIM RX7"},
|
||||
|
||||
{"RX INT0_1 MIX1 INP0", "RX0", "CDC_IF RX0 MUX"},
|
||||
{"RX INT0_1 MIX1 INP0", "RX1", "CDC_IF RX1 MUX"},
|
||||
{"RX INT0_1 MIX1 INP0", "RX2", "CDC_IF RX2 MUX"},
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue