mirror of https://gitee.com/openkylin/linux.git
ASoC: sun8i-codec: Sort DAPM controls, widgets, and routes
Sort the remaining pieces of the DAPM driver so that they are all in the same order among controls/widgets/routes, and so they roughly match the register word and bit order of the hardware. This nicely separates the AIF-related widgets from the ADC/DAC widgets, which allows the AIF widgets to stay in a logical order as more AIFs are added to the driver. No widgets are renamed, to ease verification that this commit makes no functional change. Signed-off-by: Samuel Holland <samuel@sholland.org> Acked-by: Maxime Ripard <mripard@kernel.org> Link: https://lore.kernel.org/r/20201001021148.15852-4-samuel@sholland.org Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ed3caa3bd4
commit
d58b724708
|
@ -332,6 +332,25 @@ static int sun8i_codec_hw_params(struct snd_pcm_substream *substream,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct snd_kcontrol_new sun8i_aif1_ad0_mixer_controls[] = {
|
||||
SOC_DAPM_DOUBLE("AIF1 Slot 0 Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF1DA0L,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF1DA0R, 1, 0),
|
||||
SOC_DAPM_DOUBLE("AIF2 Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACL,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACR, 1, 0),
|
||||
SOC_DAPM_DOUBLE("AIF1 Data Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_ADCL,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_ADCR, 1, 0),
|
||||
SOC_DAPM_DOUBLE("AIF2 Inv Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACR,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACL, 1, 0),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new sun8i_dac_mixer_controls[] = {
|
||||
SOC_DAPM_DOUBLE("AIF1 Slot 0 Digital DAC Playback Switch",
|
||||
SUN8I_DAC_MXR_SRC,
|
||||
|
@ -349,24 +368,6 @@ static const struct snd_kcontrol_new sun8i_dac_mixer_controls[] = {
|
|||
SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_ADCR, 1, 0),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new sun8i_input_mixer_controls[] = {
|
||||
SOC_DAPM_DOUBLE("AIF1 Slot 0 Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF1DA0L,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF1DA0R, 1, 0),
|
||||
SOC_DAPM_DOUBLE("AIF2 Digital ADC Capture Switch", SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACL,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACR, 1, 0),
|
||||
SOC_DAPM_DOUBLE("AIF1 Data Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_ADCL,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_ADCR, 1, 0),
|
||||
SOC_DAPM_DOUBLE("AIF2 Inv Digital ADC Capture Switch",
|
||||
SUN8I_AIF1_MXR_SRC,
|
||||
SUN8I_AIF1_MXR_SRC_AD0L_MXR_SRC_AIF2DACR,
|
||||
SUN8I_AIF1_MXR_SRC_AD0R_MXR_SRC_AIF2DACL, 1, 0),
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
|
||||
/* System Clocks */
|
||||
SND_SOC_DAPM_CLOCK_SUPPLY("mod"),
|
||||
|
@ -400,19 +401,13 @@ static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
|
|||
SUN8I_MOD_RST_CTL,
|
||||
SUN8I_MOD_RST_CTL_DAC, 0, NULL, 0),
|
||||
|
||||
/* Digital parts of the DACs and ADC */
|
||||
SND_SOC_DAPM_SUPPLY("DAC", SUN8I_DAC_DIG_CTRL, SUN8I_DAC_DIG_CTRL_ENDA,
|
||||
0, NULL, 0),
|
||||
SND_SOC_DAPM_SUPPLY("ADC", SUN8I_ADC_DIG_CTRL, SUN8I_ADC_DIG_CTRL_ENAD,
|
||||
0, NULL, 0),
|
||||
|
||||
/* AIF "DAC" Inputs */
|
||||
SND_SOC_DAPM_AIF_IN("AIF1 DA0L", "Playback", 0,
|
||||
SUN8I_AIF1_DACDAT_CTRL,
|
||||
SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA, 0),
|
||||
SND_SOC_DAPM_AIF_IN("AIF1 DA0R", "Playback", 0,
|
||||
SUN8I_AIF1_DACDAT_CTRL,
|
||||
SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA, 0),
|
||||
/* Module Supplies */
|
||||
SND_SOC_DAPM_SUPPLY("ADC",
|
||||
SUN8I_ADC_DIG_CTRL,
|
||||
SUN8I_ADC_DIG_CTRL_ENAD, 0, NULL, 0),
|
||||
SND_SOC_DAPM_SUPPLY("DAC",
|
||||
SUN8I_DAC_DIG_CTRL,
|
||||
SUN8I_DAC_DIG_CTRL_ENDA, 0, NULL, 0),
|
||||
|
||||
/* AIF "ADC" Outputs */
|
||||
SND_SOC_DAPM_AIF_IN("AIF1 AD0L", "Capture", 0,
|
||||
|
@ -422,6 +417,20 @@ static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
|
|||
SUN8I_AIF1_ADCDAT_CTRL,
|
||||
SUN8I_AIF1_ADCDAT_CTRL_AIF1_AD0R_ENA, 0),
|
||||
|
||||
/* AIF "ADC" Mixers */
|
||||
SOC_MIXER_ARRAY("Left Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sun8i_aif1_ad0_mixer_controls),
|
||||
SOC_MIXER_ARRAY("Right Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sun8i_aif1_ad0_mixer_controls),
|
||||
|
||||
/* AIF "DAC" Inputs */
|
||||
SND_SOC_DAPM_AIF_IN("AIF1 DA0L", "Playback", 0,
|
||||
SUN8I_AIF1_DACDAT_CTRL,
|
||||
SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA, 0),
|
||||
SND_SOC_DAPM_AIF_IN("AIF1 DA0R", "Playback", 0,
|
||||
SUN8I_AIF1_DACDAT_CTRL,
|
||||
SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA, 0),
|
||||
|
||||
/* ADC Inputs (connected to analog codec DAPM context) */
|
||||
SND_SOC_DAPM_ADC("ADCL", NULL, SND_SOC_NOPM, 0, 0),
|
||||
SND_SOC_DAPM_ADC("ADCR", NULL, SND_SOC_NOPM, 0, 0),
|
||||
|
@ -430,15 +439,11 @@ static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
|
|||
SND_SOC_DAPM_DAC("DACL", NULL, SND_SOC_NOPM, 0, 0),
|
||||
SND_SOC_DAPM_DAC("DACR", NULL, SND_SOC_NOPM, 0, 0),
|
||||
|
||||
/* DAC and ADC Mixers */
|
||||
/* DAC Mixers */
|
||||
SOC_MIXER_ARRAY("Left Digital DAC Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sun8i_dac_mixer_controls),
|
||||
SOC_MIXER_ARRAY("Right Digital DAC Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sun8i_dac_mixer_controls),
|
||||
SOC_MIXER_ARRAY("Left Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sun8i_input_mixer_controls),
|
||||
SOC_MIXER_ARRAY("Right Digital ADC Mixer", SND_SOC_NOPM, 0, 0,
|
||||
sun8i_input_mixer_controls),
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_route sun8i_codec_dapm_routes[] = {
|
||||
|
@ -467,7 +472,18 @@ static const struct snd_soc_dapm_route sun8i_codec_dapm_routes[] = {
|
|||
{ "DACL", NULL, "DAC" },
|
||||
{ "DACR", NULL, "DAC" },
|
||||
|
||||
/* DAC Routes */
|
||||
/* AIF "ADC" Output Routes */
|
||||
{ "AIF1 AD0L", NULL, "Left Digital ADC Mixer" },
|
||||
{ "AIF1 AD0R", NULL, "Right Digital ADC Mixer" },
|
||||
|
||||
/* AIF "ADC" Mixer Routes */
|
||||
{ "Left Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", "AIF1 DA0L" },
|
||||
{ "Left Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", "ADCL" },
|
||||
|
||||
{ "Right Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", "AIF1 DA0R" },
|
||||
{ "Right Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", "ADCR" },
|
||||
|
||||
/* DAC Output Routes */
|
||||
{ "DACL", NULL, "Left Digital DAC Mixer" },
|
||||
{ "DACR", NULL, "Right Digital DAC Mixer" },
|
||||
|
||||
|
@ -477,17 +493,6 @@ static const struct snd_soc_dapm_route sun8i_codec_dapm_routes[] = {
|
|||
|
||||
{ "Right Digital DAC Mixer", "AIF1 Slot 0 Digital DAC Playback Switch", "AIF1 DA0R" },
|
||||
{ "Right Digital DAC Mixer", "ADC Digital DAC Playback Switch", "ADCR" },
|
||||
|
||||
/* ADC Routes */
|
||||
{ "AIF1 AD0L", NULL, "Left Digital ADC Mixer" },
|
||||
{ "AIF1 AD0R", NULL, "Right Digital ADC Mixer" },
|
||||
|
||||
/* ADC Mixer Routes */
|
||||
{ "Left Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", "AIF1 DA0L" },
|
||||
{ "Left Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", "ADCL" },
|
||||
|
||||
{ "Right Digital ADC Mixer", "AIF1 Slot 0 Digital ADC Capture Switch", "AIF1 DA0R" },
|
||||
{ "Right Digital ADC Mixer", "AIF1 Data Digital ADC Capture Switch", "ADCR" },
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget sun8i_codec_legacy_widgets[] = {
|
||||
|
|
Loading…
Reference in New Issue