@@ -259,25 +259,20 @@ static int sun8i_codec_hw_params(struct snd_pcm_substream *substream,
259
259
return 0 ;
260
260
}
261
261
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 ,
275
266
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 ,
277
270
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 ,
279
273
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 ,
281
276
SUN8I_DAC_MXR_SRC_DACR_MXR_SRC_ADCR , 1 , 0 ),
282
277
};
283
278
@@ -286,19 +281,21 @@ static const struct snd_soc_dapm_widget sun8i_codec_dapm_widgets[] = {
286
281
SND_SOC_DAPM_SUPPLY ("DAC" , SUN8I_DAC_DIG_CTRL , SUN8I_DAC_DIG_CTRL_ENDA ,
287
282
0 , NULL , 0 ),
288
283
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 ),
294
291
295
292
/* 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 )),
302
299
303
300
/* Clocks */
304
301
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[] = {
321
318
SUN8I_MOD_RST_CTL_AIF1 , 0 , NULL , 0 ),
322
319
SND_SOC_DAPM_SUPPLY ("RST DAC" , SUN8I_MOD_RST_CTL ,
323
320
SUN8I_MOD_RST_CTL_DAC , 0 , NULL , 0 ),
324
-
325
- SND_SOC_DAPM_OUTPUT ("HP" ),
326
321
};
327
322
328
323
static 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[] = {
338
333
{ "DAC" , NULL , "MODCLK DAC" },
339
334
340
335
/* 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" },
343
338
344
339
/* 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" },
351
344
};
352
345
353
346
static struct snd_soc_dai_ops sun8i_codec_dai_ops = {
0 commit comments