@@ -259,25 +259,20 @@ static int sun8i_codec_hw_params(struct snd_pcm_substream *substream,
259259 return 0 ;
260260}
261261
262- static const struct snd_kcontrol_new sun8i_output_left_mixer_controls [] = {
263- SOC_DAPM_SINGLE ("LSlot 0" , SUN8I_DAC_MXR_SRC ,
264- SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA0L , 1 , 0 ),
265- SOC_DAPM_SINGLE ("LSlot 1" , SUN8I_DAC_MXR_SRC ,
266- SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA1L , 1 , 0 ),
267- SOC_DAPM_SINGLE ("DACL" , SUN8I_DAC_MXR_SRC ,
268- SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF2DACL , 1 , 0 ),
269- SOC_DAPM_SINGLE ("ADCL" , SUN8I_DAC_MXR_SRC ,
270- SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_ADCL , 1 , 0 ),
271- };
272-
273- static const struct snd_kcontrol_new sun8i_output_right_mixer_controls [] = {
274- SOC_DAPM_SINGLE ("RSlot 0" , SUN8I_DAC_MXR_SRC ,
262+ static const struct snd_kcontrol_new sun8i_dac_mixer_controls [] = {
263+ SOC_DAPM_DOUBLE ("AIF1 Slot 0 Digital DAC Playback Switch" ,
264+ SUN8I_DAC_MXR_SRC ,
265+ SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA0L ,
275266 SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_AIF1DA0R , 1 , 0 ),
276- SOC_DAPM_SINGLE ("RSlot 1" , SUN8I_DAC_MXR_SRC ,
267+ SOC_DAPM_DOUBLE ("AIF1 Slot 1 Digital DAC Playback Switch" ,
268+ SUN8I_DAC_MXR_SRC ,
269+ SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF1DA1L ,
277270 SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_AIF1DA1R , 1 , 0 ),
278- SOC_DAPM_SINGLE ("DACR" , SUN8I_DAC_MXR_SRC ,
271+ SOC_DAPM_DOUBLE ("AIF2 Digital DAC Playback Switch" , SUN8I_DAC_MXR_SRC ,
272+ SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_AIF2DACL ,
279273 SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_AIF2DACR , 1 , 0 ),
280- SOC_DAPM_SINGLE ("ADCR" , SUN8I_DAC_MXR_SRC ,
274+ SOC_DAPM_DOUBLE ("ADC Digital DAC Playback Switch" , SUN8I_DAC_MXR_SRC ,
275+ SUN8I_DAC_MXR_SRC_DACL_MXR_SRC_ADCL ,
281276 SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_ADCR , 1 , 0 ),
282277};
283278
@@ -286,19 +281,21 @@ static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
286281 SND_SOC_DAPM_SUPPLY ("DAC" , SUN8I_DAC_DIG_CTRL , SUN8I_DAC_DIG_CTRL_ENDA ,
287282 0 , NULL , 0 ),
288283
289- /* Analog DAC */
290- SND_SOC_DAPM_DAC ("Digital Left DAC" , "Playback" , SUN8I_AIF1_DACDAT_CTRL ,
291- SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA , 0 ),
292- SND_SOC_DAPM_DAC ("Digital Right DAC" , "Playback" , SUN8I_AIF1_DACDAT_CTRL ,
293- SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA , 0 ),
284+ /* Analog DAC AIF */
285+ SND_SOC_DAPM_AIF_IN ("AIF1 Slot 0 Left" , "Playback" , 0 ,
286+ SUN8I_AIF1_DACDAT_CTRL ,
287+ SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0L_ENA , 0 ),
288+ SND_SOC_DAPM_AIF_IN ("AIF1 Slot 0 Right" , "Playback" , 0 ,
289+ SUN8I_AIF1_DACDAT_CTRL ,
290+ SUN8I_AIF1_DACDAT_CTRL_AIF1_DA0R_ENA , 0 ),
294291
295292 /* DAC Mixers */
296- SND_SOC_DAPM_MIXER ("Left DAC Mixer" , SND_SOC_NOPM , 0 , 0 ,
297- sun8i_output_left_mixer_controls ,
298- ARRAY_SIZE (sun8i_output_left_mixer_controls )),
299- SND_SOC_DAPM_MIXER ("Right DAC Mixer" , SND_SOC_NOPM , 0 , 0 ,
300- sun8i_output_right_mixer_controls ,
301- ARRAY_SIZE (sun8i_output_right_mixer_controls )),
293+ SND_SOC_DAPM_MIXER ("Left Digital DAC Mixer" , SND_SOC_NOPM , 0 , 0 ,
294+ sun8i_dac_mixer_controls ,
295+ ARRAY_SIZE (sun8i_dac_mixer_controls )),
296+ SND_SOC_DAPM_MIXER ("Right Digital DAC Mixer" , SND_SOC_NOPM , 0 , 0 ,
297+ sun8i_dac_mixer_controls ,
298+ ARRAY_SIZE (sun8i_dac_mixer_controls )),
302299
303300 /* Clocks */
304301 SND_SOC_DAPM_SUPPLY ("MODCLK AFI1" , SUN8I_MOD_CLK_ENA ,
@@ -321,8 +318,6 @@ static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
321318 SUN8I_MOD_RST_CTL_AIF1 , 0 , NULL , 0 ),
322319 SND_SOC_DAPM_SUPPLY ("RST DAC" , SUN8I_MOD_RST_CTL ,
323320 SUN8I_MOD_RST_CTL_DAC , 0 , NULL , 0 ),
324-
325- SND_SOC_DAPM_OUTPUT ("HP" ),
326321};
327322
328323static const struct snd_soc_dapm_route sun8i_codec_dapm_routes [] = {
@@ -338,16 +333,14 @@ static const struct snd_soc_dapm_route sun8i_codec_dapm_routes[] = {
338333 { "DAC" , NULL , "MODCLK DAC" },
339334
340335 /* DAC Routes */
341- { "Digital Left DAC " , NULL , "DAC" },
342- { "Digital Right DAC " , NULL , "DAC" },
336+ { "AIF1 Slot 0 Right " , NULL , "DAC" },
337+ { "AIF1 Slot 0 Left " , NULL , "DAC" },
343338
344339 /* DAC Mixer Routes */
345- { "Left DAC Mixer" , "LSlot 0" , "Digital Left DAC" },
346- { "Right DAC Mixer" , "RSlot 0" , "Digital Right DAC" },
347-
348- /* End of route : HP out */
349- { "HP" , NULL , "Left DAC Mixer" },
350- { "HP" , NULL , "Right DAC Mixer" },
340+ { "Left Digital DAC Mixer" , "AIF1 Slot 0 Digital DAC Playback Switch" ,
341+ "AIF1 Slot 0 Left" },
342+ { "Right Digital DAC Mixer" , "AIF1 Slot 0 Digital DAC Playback Switch" ,
343+ "AIF1 Slot 0 Right" },
351344};
352345
353346static struct snd_soc_dai_ops sun8i_codec_dai_ops = {
0 commit comments