diff options
author | Daniel Mack <daniel@caiaq.org> | 2008-11-26 11:47:36 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2008-11-26 13:30:59 -0500 |
commit | 54f01916297bafc18bd7df4e2300a0544a84fce3 (patch) | |
tree | 0f4a819087c89004bd059036d7518ed95bedd833 /sound/soc | |
parent | 414ff491b2ab68359c7a2037b30ccfea20d829d4 (diff) |
ASoC: Allow more routing features for tlv320aic3x
This patch enables more routing functions for tlv320aic3x codecs.
It is now possible to
- control the volume of the PGA bypass path for the HPL, HPR, HPLCOM
and HPRCOM outputs individually
- route right line1 input to the left ADC channel
- route left line1 input to the right ADC channel
- route right mic3 input to left DAC channel
- route left mic3 input to right DAC channel
- route left line1 input to right line1 output
- route right line1 input to left line1 output
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.c | 96 | ||||
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.h | 12 |
2 files changed, 78 insertions, 30 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index b76bcc3c4110..255e784c805b 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
@@ -272,8 +272,10 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = { | |||
272 | DACR1_2_HPROUT_VOL, 0, 0x7f, 1), | 272 | DACR1_2_HPROUT_VOL, 0, 0x7f, 1), |
273 | SOC_DOUBLE_R("HP DAC Playback Switch", HPLOUT_CTRL, HPROUT_CTRL, 3, | 273 | SOC_DOUBLE_R("HP DAC Playback Switch", HPLOUT_CTRL, HPROUT_CTRL, 3, |
274 | 0x01, 0), | 274 | 0x01, 0), |
275 | SOC_DOUBLE_R("HP PGA Bypass Playback Volume", PGAL_2_HPLOUT_VOL, | 275 | SOC_SINGLE("HPL PGA Bypass Playback Volume", PGAL_2_HPLOUT_VOL, |
276 | PGAR_2_HPROUT_VOL, 0, 0x7f, 1), | 276 | 0, 0x7f, 1), |
277 | SOC_SINGLE("HPR PGA Bypass Playback Volume", PGAL_2_HPROUT_VOL, | ||
278 | 0, 0x7f, 1), | ||
277 | SOC_DOUBLE_R("HP Line2 Bypass Playback Volume", LINE2L_2_HPLOUT_VOL, | 279 | SOC_DOUBLE_R("HP Line2 Bypass Playback Volume", LINE2L_2_HPLOUT_VOL, |
278 | LINE2R_2_HPROUT_VOL, 0, 0x7f, 1), | 280 | LINE2R_2_HPROUT_VOL, 0, 0x7f, 1), |
279 | 281 | ||
@@ -281,8 +283,10 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = { | |||
281 | DACR1_2_HPRCOM_VOL, 0, 0x7f, 1), | 283 | DACR1_2_HPRCOM_VOL, 0, 0x7f, 1), |
282 | SOC_DOUBLE_R("HPCOM DAC Playback Switch", HPLCOM_CTRL, HPRCOM_CTRL, 3, | 284 | SOC_DOUBLE_R("HPCOM DAC Playback Switch", HPLCOM_CTRL, HPRCOM_CTRL, 3, |
283 | 0x01, 0), | 285 | 0x01, 0), |
284 | SOC_DOUBLE_R("HPCOM PGA Bypass Playback Volume", PGAL_2_HPLCOM_VOL, | 286 | SOC_SINGLE("HPLCOM PGA Bypass Playback Volume", PGAL_2_HPLCOM_VOL, |
285 | PGAR_2_HPRCOM_VOL, 0, 0x7f, 1), | 287 | 0, 0x7f, 1), |
288 | SOC_SINGLE("HPRCOM PGA Bypass Playback Volume", PGAL_2_HPRCOM_VOL, | ||
289 | 0, 0x7f, 1), | ||
286 | SOC_DOUBLE_R("HPCOM Line2 Bypass Playback Volume", LINE2L_2_HPLCOM_VOL, | 290 | SOC_DOUBLE_R("HPCOM Line2 Bypass Playback Volume", LINE2L_2_HPLCOM_VOL, |
287 | LINE2R_2_HPRCOM_VOL, 0, 0x7f, 1), | 291 | LINE2R_2_HPRCOM_VOL, 0, 0x7f, 1), |
288 | 292 | ||
@@ -333,7 +337,8 @@ SOC_DAPM_ENUM("Route", aic3x_enum[RHPCOM_ENUM]); | |||
333 | 337 | ||
334 | /* Left DAC_L1 Mixer */ | 338 | /* Left DAC_L1 Mixer */ |
335 | static const struct snd_kcontrol_new aic3x_left_dac_mixer_controls[] = { | 339 | static const struct snd_kcontrol_new aic3x_left_dac_mixer_controls[] = { |
336 | SOC_DAPM_SINGLE("Line Switch", DACL1_2_LLOPM_VOL, 7, 1, 0), | 340 | SOC_DAPM_SINGLE("LineL Switch", DACL1_2_LLOPM_VOL, 7, 1, 0), |
341 | SOC_DAPM_SINGLE("LineR Switch", DACL1_2_RLOPM_VOL, 7, 1, 0), | ||
337 | SOC_DAPM_SINGLE("Mono Switch", DACL1_2_MONOLOPM_VOL, 7, 1, 0), | 342 | SOC_DAPM_SINGLE("Mono Switch", DACL1_2_MONOLOPM_VOL, 7, 1, 0), |
338 | SOC_DAPM_SINGLE("HP Switch", DACL1_2_HPLOUT_VOL, 7, 1, 0), | 343 | SOC_DAPM_SINGLE("HP Switch", DACL1_2_HPLOUT_VOL, 7, 1, 0), |
339 | SOC_DAPM_SINGLE("HPCOM Switch", DACL1_2_HPLCOM_VOL, 7, 1, 0), | 344 | SOC_DAPM_SINGLE("HPCOM Switch", DACL1_2_HPLCOM_VOL, 7, 1, 0), |
@@ -341,7 +346,8 @@ static const struct snd_kcontrol_new aic3x_left_dac_mixer_controls[] = { | |||
341 | 346 | ||
342 | /* Right DAC_R1 Mixer */ | 347 | /* Right DAC_R1 Mixer */ |
343 | static const struct snd_kcontrol_new aic3x_right_dac_mixer_controls[] = { | 348 | static const struct snd_kcontrol_new aic3x_right_dac_mixer_controls[] = { |
344 | SOC_DAPM_SINGLE("Line Switch", DACR1_2_RLOPM_VOL, 7, 1, 0), | 349 | SOC_DAPM_SINGLE("LineL Switch", DACR1_2_LLOPM_VOL, 7, 1, 0), |
350 | SOC_DAPM_SINGLE("LineR Switch", DACR1_2_RLOPM_VOL, 7, 1, 0), | ||
345 | SOC_DAPM_SINGLE("Mono Switch", DACR1_2_MONOLOPM_VOL, 7, 1, 0), | 351 | SOC_DAPM_SINGLE("Mono Switch", DACR1_2_MONOLOPM_VOL, 7, 1, 0), |
346 | SOC_DAPM_SINGLE("HP Switch", DACR1_2_HPROUT_VOL, 7, 1, 0), | 352 | SOC_DAPM_SINGLE("HP Switch", DACR1_2_HPROUT_VOL, 7, 1, 0), |
347 | SOC_DAPM_SINGLE("HPCOM Switch", DACR1_2_HPRCOM_VOL, 7, 1, 0), | 353 | SOC_DAPM_SINGLE("HPCOM Switch", DACR1_2_HPRCOM_VOL, 7, 1, 0), |
@@ -350,14 +356,18 @@ static const struct snd_kcontrol_new aic3x_right_dac_mixer_controls[] = { | |||
350 | /* Left PGA Mixer */ | 356 | /* Left PGA Mixer */ |
351 | static const struct snd_kcontrol_new aic3x_left_pga_mixer_controls[] = { | 357 | static const struct snd_kcontrol_new aic3x_left_pga_mixer_controls[] = { |
352 | SOC_DAPM_SINGLE_AIC3X("Line1L Switch", LINE1L_2_LADC_CTRL, 3, 1, 1), | 358 | SOC_DAPM_SINGLE_AIC3X("Line1L Switch", LINE1L_2_LADC_CTRL, 3, 1, 1), |
359 | SOC_DAPM_SINGLE_AIC3X("Line1R Switch", LINE1R_2_LADC_CTRL, 3, 1, 1), | ||
353 | SOC_DAPM_SINGLE_AIC3X("Line2L Switch", LINE2L_2_LADC_CTRL, 3, 1, 1), | 360 | SOC_DAPM_SINGLE_AIC3X("Line2L Switch", LINE2L_2_LADC_CTRL, 3, 1, 1), |
354 | SOC_DAPM_SINGLE_AIC3X("Mic3L Switch", MIC3LR_2_LADC_CTRL, 4, 1, 1), | 361 | SOC_DAPM_SINGLE_AIC3X("Mic3L Switch", MIC3LR_2_LADC_CTRL, 4, 1, 1), |
362 | SOC_DAPM_SINGLE_AIC3X("Mic3R Switch", MIC3LR_2_LADC_CTRL, 0, 1, 1), | ||
355 | }; | 363 | }; |
356 | 364 | ||
357 | /* Right PGA Mixer */ | 365 | /* Right PGA Mixer */ |
358 | static const struct snd_kcontrol_new aic3x_right_pga_mixer_controls[] = { | 366 | static const struct snd_kcontrol_new aic3x_right_pga_mixer_controls[] = { |
359 | SOC_DAPM_SINGLE_AIC3X("Line1R Switch", LINE1R_2_RADC_CTRL, 3, 1, 1), | 367 | SOC_DAPM_SINGLE_AIC3X("Line1R Switch", LINE1R_2_RADC_CTRL, 3, 1, 1), |
368 | SOC_DAPM_SINGLE_AIC3X("Line1L Switch", LINE1L_2_RADC_CTRL, 3, 1, 1), | ||
360 | SOC_DAPM_SINGLE_AIC3X("Line2R Switch", LINE2R_2_RADC_CTRL, 3, 1, 1), | 369 | SOC_DAPM_SINGLE_AIC3X("Line2R Switch", LINE2R_2_RADC_CTRL, 3, 1, 1), |
370 | SOC_DAPM_SINGLE_AIC3X("Mic3L Switch", MIC3LR_2_RADC_CTRL, 4, 1, 1), | ||
361 | SOC_DAPM_SINGLE_AIC3X("Mic3R Switch", MIC3LR_2_RADC_CTRL, 0, 1, 1), | 371 | SOC_DAPM_SINGLE_AIC3X("Mic3R Switch", MIC3LR_2_RADC_CTRL, 0, 1, 1), |
362 | }; | 372 | }; |
363 | 373 | ||
@@ -379,34 +389,42 @@ SOC_DAPM_ENUM("Route", aic3x_enum[LINE2R_ENUM]); | |||
379 | 389 | ||
380 | /* Left PGA Bypass Mixer */ | 390 | /* Left PGA Bypass Mixer */ |
381 | static const struct snd_kcontrol_new aic3x_left_pga_bp_mixer_controls[] = { | 391 | static const struct snd_kcontrol_new aic3x_left_pga_bp_mixer_controls[] = { |
382 | SOC_DAPM_SINGLE("Line Switch", PGAL_2_LLOPM_VOL, 7, 1, 0), | 392 | SOC_DAPM_SINGLE("LineL Switch", PGAL_2_LLOPM_VOL, 7, 1, 0), |
393 | SOC_DAPM_SINGLE("LineR Switch", PGAL_2_RLOPM_VOL, 7, 1, 0), | ||
383 | SOC_DAPM_SINGLE("Mono Switch", PGAL_2_MONOLOPM_VOL, 7, 1, 0), | 394 | SOC_DAPM_SINGLE("Mono Switch", PGAL_2_MONOLOPM_VOL, 7, 1, 0), |
384 | SOC_DAPM_SINGLE("HP Switch", PGAL_2_HPLOUT_VOL, 7, 1, 0), | 395 | SOC_DAPM_SINGLE("HPL Switch", PGAL_2_HPLOUT_VOL, 7, 1, 0), |
385 | SOC_DAPM_SINGLE("HPCOM Switch", PGAL_2_HPLCOM_VOL, 7, 1, 0), | 396 | SOC_DAPM_SINGLE("HPR Switch", PGAL_2_HPROUT_VOL, 7, 1, 0), |
397 | SOC_DAPM_SINGLE("HPLCOM Switch", PGAL_2_HPLCOM_VOL, 7, 1, 0), | ||
398 | SOC_DAPM_SINGLE("HPRCOM Switch", PGAL_2_HPRCOM_VOL, 7, 1, 0), | ||
386 | }; | 399 | }; |
387 | 400 | ||
388 | /* Right PGA Bypass Mixer */ | 401 | /* Right PGA Bypass Mixer */ |
389 | static const struct snd_kcontrol_new aic3x_right_pga_bp_mixer_controls[] = { | 402 | static const struct snd_kcontrol_new aic3x_right_pga_bp_mixer_controls[] = { |
390 | SOC_DAPM_SINGLE("Line Switch", PGAR_2_RLOPM_VOL, 7, 1, 0), | 403 | SOC_DAPM_SINGLE("LineL Switch", PGAR_2_LLOPM_VOL, 7, 1, 0), |
404 | SOC_DAPM_SINGLE("LineR Switch", PGAR_2_RLOPM_VOL, 7, 1, 0), | ||
391 | SOC_DAPM_SINGLE("Mono Switch", PGAR_2_MONOLOPM_VOL, 7, 1, 0), | 405 | SOC_DAPM_SINGLE("Mono Switch", PGAR_2_MONOLOPM_VOL, 7, 1, 0), |
392 | SOC_DAPM_SINGLE("HP Switch", PGAR_2_HPROUT_VOL, 7, 1, 0), | 406 | SOC_DAPM_SINGLE("HPL Switch", PGAR_2_HPLOUT_VOL, 7, 1, 0), |
393 | SOC_DAPM_SINGLE("HPCOM Switch", PGAR_2_HPRCOM_VOL, 7, 1, 0), | 407 | SOC_DAPM_SINGLE("HPR Switch", PGAR_2_HPROUT_VOL, 7, 1, 0), |
408 | SOC_DAPM_SINGLE("HPLCOM Switch", PGAR_2_HPLCOM_VOL, 7, 1, 0), | ||
409 | SOC_DAPM_SINGLE("HPRCOM Switch", PGAR_2_HPRCOM_VOL, 7, 1, 0), | ||
394 | }; | 410 | }; |
395 | 411 | ||
396 | /* Left Line2 Bypass Mixer */ | 412 | /* Left Line2 Bypass Mixer */ |
397 | static const struct snd_kcontrol_new aic3x_left_line2_bp_mixer_controls[] = { | 413 | static const struct snd_kcontrol_new aic3x_left_line2_bp_mixer_controls[] = { |
398 | SOC_DAPM_SINGLE("Line Switch", LINE2L_2_LLOPM_VOL, 7, 1, 0), | 414 | SOC_DAPM_SINGLE("LineL Switch", LINE2L_2_LLOPM_VOL, 7, 1, 0), |
415 | SOC_DAPM_SINGLE("LineR Switch", LINE2L_2_RLOPM_VOL, 7, 1, 0), | ||
399 | SOC_DAPM_SINGLE("Mono Switch", LINE2L_2_MONOLOPM_VOL, 7, 1, 0), | 416 | SOC_DAPM_SINGLE("Mono Switch", LINE2L_2_MONOLOPM_VOL, 7, 1, 0), |
400 | SOC_DAPM_SINGLE("HP Switch", LINE2L_2_HPLOUT_VOL, 7, 1, 0), | 417 | SOC_DAPM_SINGLE("HP Switch", LINE2L_2_HPLOUT_VOL, 7, 1, 0), |
401 | SOC_DAPM_SINGLE("HPCOM Switch", LINE2L_2_HPLCOM_VOL, 7, 1, 0), | 418 | SOC_DAPM_SINGLE("HPLCOM Switch", LINE2L_2_HPLCOM_VOL, 7, 1, 0), |
402 | }; | 419 | }; |
403 | 420 | ||
404 | /* Right Line2 Bypass Mixer */ | 421 | /* Right Line2 Bypass Mixer */ |
405 | static const struct snd_kcontrol_new aic3x_right_line2_bp_mixer_controls[] = { | 422 | static const struct snd_kcontrol_new aic3x_right_line2_bp_mixer_controls[] = { |
406 | SOC_DAPM_SINGLE("Line Switch", LINE2R_2_RLOPM_VOL, 7, 1, 0), | 423 | SOC_DAPM_SINGLE("LineL Switch", LINE2R_2_LLOPM_VOL, 7, 1, 0), |
424 | SOC_DAPM_SINGLE("LineR Switch", LINE2R_2_RLOPM_VOL, 7, 1, 0), | ||
407 | SOC_DAPM_SINGLE("Mono Switch", LINE2R_2_MONOLOPM_VOL, 7, 1, 0), | 425 | SOC_DAPM_SINGLE("Mono Switch", LINE2R_2_MONOLOPM_VOL, 7, 1, 0), |
408 | SOC_DAPM_SINGLE("HP Switch", LINE2R_2_HPROUT_VOL, 7, 1, 0), | 426 | SOC_DAPM_SINGLE("HP Switch", LINE2R_2_HPROUT_VOL, 7, 1, 0), |
409 | SOC_DAPM_SINGLE("HPCOM Switch", LINE2R_2_HPRCOM_VOL, 7, 1, 0), | 427 | SOC_DAPM_SINGLE("HPRCOM Switch", LINE2R_2_HPRCOM_VOL, 7, 1, 0), |
410 | }; | 428 | }; |
411 | 429 | ||
412 | static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = { | 430 | static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = { |
@@ -439,22 +457,26 @@ static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = { | |||
439 | /* Mono Output */ | 457 | /* Mono Output */ |
440 | SND_SOC_DAPM_PGA("Mono Out", MONOLOPM_CTRL, 0, 0, NULL, 0), | 458 | SND_SOC_DAPM_PGA("Mono Out", MONOLOPM_CTRL, 0, 0, NULL, 0), |
441 | 459 | ||
442 | /* Left Inputs to Left ADC */ | 460 | /* Inputs to Left ADC */ |
443 | SND_SOC_DAPM_ADC("Left ADC", "Left Capture", LINE1L_2_LADC_CTRL, 2, 0), | 461 | SND_SOC_DAPM_ADC("Left ADC", "Left Capture", LINE1L_2_LADC_CTRL, 2, 0), |
444 | SND_SOC_DAPM_MIXER("Left PGA Mixer", SND_SOC_NOPM, 0, 0, | 462 | SND_SOC_DAPM_MIXER("Left PGA Mixer", SND_SOC_NOPM, 0, 0, |
445 | &aic3x_left_pga_mixer_controls[0], | 463 | &aic3x_left_pga_mixer_controls[0], |
446 | ARRAY_SIZE(aic3x_left_pga_mixer_controls)), | 464 | ARRAY_SIZE(aic3x_left_pga_mixer_controls)), |
447 | SND_SOC_DAPM_MUX("Left Line1L Mux", SND_SOC_NOPM, 0, 0, | 465 | SND_SOC_DAPM_MUX("Left Line1L Mux", SND_SOC_NOPM, 0, 0, |
448 | &aic3x_left_line1_mux_controls), | 466 | &aic3x_left_line1_mux_controls), |
467 | SND_SOC_DAPM_MUX("Left Line1R Mux", SND_SOC_NOPM, 0, 0, | ||
468 | &aic3x_left_line1_mux_controls), | ||
449 | SND_SOC_DAPM_MUX("Left Line2L Mux", SND_SOC_NOPM, 0, 0, | 469 | SND_SOC_DAPM_MUX("Left Line2L Mux", SND_SOC_NOPM, 0, 0, |
450 | &aic3x_left_line2_mux_controls), | 470 | &aic3x_left_line2_mux_controls), |
451 | 471 | ||
452 | /* Right Inputs to Right ADC */ | 472 | /* Inputs to Right ADC */ |
453 | SND_SOC_DAPM_ADC("Right ADC", "Right Capture", | 473 | SND_SOC_DAPM_ADC("Right ADC", "Right Capture", |
454 | LINE1R_2_RADC_CTRL, 2, 0), | 474 | LINE1R_2_RADC_CTRL, 2, 0), |
455 | SND_SOC_DAPM_MIXER("Right PGA Mixer", SND_SOC_NOPM, 0, 0, | 475 | SND_SOC_DAPM_MIXER("Right PGA Mixer", SND_SOC_NOPM, 0, 0, |
456 | &aic3x_right_pga_mixer_controls[0], | 476 | &aic3x_right_pga_mixer_controls[0], |
457 | ARRAY_SIZE(aic3x_right_pga_mixer_controls)), | 477 | ARRAY_SIZE(aic3x_right_pga_mixer_controls)), |
478 | SND_SOC_DAPM_MUX("Right Line1L Mux", SND_SOC_NOPM, 0, 0, | ||
479 | &aic3x_right_line1_mux_controls), | ||
458 | SND_SOC_DAPM_MUX("Right Line1R Mux", SND_SOC_NOPM, 0, 0, | 480 | SND_SOC_DAPM_MUX("Right Line1R Mux", SND_SOC_NOPM, 0, 0, |
459 | &aic3x_right_line1_mux_controls), | 481 | &aic3x_right_line1_mux_controls), |
460 | SND_SOC_DAPM_MUX("Right Line2R Mux", SND_SOC_NOPM, 0, 0, | 482 | SND_SOC_DAPM_MUX("Right Line2R Mux", SND_SOC_NOPM, 0, 0, |
@@ -531,7 +553,8 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
531 | {"Left DAC Mux", "DAC_L2", "Left DAC"}, | 553 | {"Left DAC Mux", "DAC_L2", "Left DAC"}, |
532 | {"Left DAC Mux", "DAC_L3", "Left DAC"}, | 554 | {"Left DAC Mux", "DAC_L3", "Left DAC"}, |
533 | 555 | ||
534 | {"Left DAC_L1 Mixer", "Line Switch", "Left DAC Mux"}, | 556 | {"Left DAC_L1 Mixer", "LineL Switch", "Left DAC Mux"}, |
557 | {"Left DAC_L1 Mixer", "LineR Switch", "Left DAC Mux"}, | ||
535 | {"Left DAC_L1 Mixer", "Mono Switch", "Left DAC Mux"}, | 558 | {"Left DAC_L1 Mixer", "Mono Switch", "Left DAC Mux"}, |
536 | {"Left DAC_L1 Mixer", "HP Switch", "Left DAC Mux"}, | 559 | {"Left DAC_L1 Mixer", "HP Switch", "Left DAC Mux"}, |
537 | {"Left DAC_L1 Mixer", "HPCOM Switch", "Left DAC Mux"}, | 560 | {"Left DAC_L1 Mixer", "HPCOM Switch", "Left DAC Mux"}, |
@@ -557,7 +580,8 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
557 | {"Right DAC Mux", "DAC_R2", "Right DAC"}, | 580 | {"Right DAC Mux", "DAC_R2", "Right DAC"}, |
558 | {"Right DAC Mux", "DAC_R3", "Right DAC"}, | 581 | {"Right DAC Mux", "DAC_R3", "Right DAC"}, |
559 | 582 | ||
560 | {"Right DAC_R1 Mixer", "Line Switch", "Right DAC Mux"}, | 583 | {"Right DAC_R1 Mixer", "LineL Switch", "Right DAC Mux"}, |
584 | {"Right DAC_R1 Mixer", "LineR Switch", "Right DAC Mux"}, | ||
561 | {"Right DAC_R1 Mixer", "Mono Switch", "Right DAC Mux"}, | 585 | {"Right DAC_R1 Mixer", "Mono Switch", "Right DAC Mux"}, |
562 | {"Right DAC_R1 Mixer", "HP Switch", "Right DAC Mux"}, | 586 | {"Right DAC_R1 Mixer", "HP Switch", "Right DAC Mux"}, |
563 | {"Right DAC_R1 Mixer", "HPCOM Switch", "Right DAC Mux"}, | 587 | {"Right DAC_R1 Mixer", "HPCOM Switch", "Right DAC Mux"}, |
@@ -592,8 +616,10 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
592 | {"Left Line2L Mux", "differential", "LINE2L"}, | 616 | {"Left Line2L Mux", "differential", "LINE2L"}, |
593 | 617 | ||
594 | {"Left PGA Mixer", "Line1L Switch", "Left Line1L Mux"}, | 618 | {"Left PGA Mixer", "Line1L Switch", "Left Line1L Mux"}, |
619 | {"Left PGA Mixer", "Line1R Switch", "Left Line1R Mux"}, | ||
595 | {"Left PGA Mixer", "Line2L Switch", "Left Line2L Mux"}, | 620 | {"Left PGA Mixer", "Line2L Switch", "Left Line2L Mux"}, |
596 | {"Left PGA Mixer", "Mic3L Switch", "MIC3L"}, | 621 | {"Left PGA Mixer", "Mic3L Switch", "MIC3L"}, |
622 | {"Left PGA Mixer", "Mic3R Switch", "MIC3R"}, | ||
597 | 623 | ||
598 | {"Left ADC", NULL, "Left PGA Mixer"}, | 624 | {"Left ADC", NULL, "Left PGA Mixer"}, |
599 | {"Left ADC", NULL, "GPIO1 dmic modclk"}, | 625 | {"Left ADC", NULL, "GPIO1 dmic modclk"}, |
@@ -605,18 +631,23 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
605 | {"Right Line2R Mux", "single-ended", "LINE2R"}, | 631 | {"Right Line2R Mux", "single-ended", "LINE2R"}, |
606 | {"Right Line2R Mux", "differential", "LINE2R"}, | 632 | {"Right Line2R Mux", "differential", "LINE2R"}, |
607 | 633 | ||
634 | {"Right PGA Mixer", "Line1L Switch", "Right Line1L Mux"}, | ||
608 | {"Right PGA Mixer", "Line1R Switch", "Right Line1R Mux"}, | 635 | {"Right PGA Mixer", "Line1R Switch", "Right Line1R Mux"}, |
609 | {"Right PGA Mixer", "Line2R Switch", "Right Line2R Mux"}, | 636 | {"Right PGA Mixer", "Line2R Switch", "Right Line2R Mux"}, |
637 | {"Right PGA Mixer", "Mic3L Switch", "MIC3L"}, | ||
610 | {"Right PGA Mixer", "Mic3R Switch", "MIC3R"}, | 638 | {"Right PGA Mixer", "Mic3R Switch", "MIC3R"}, |
611 | 639 | ||
612 | {"Right ADC", NULL, "Right PGA Mixer"}, | 640 | {"Right ADC", NULL, "Right PGA Mixer"}, |
613 | {"Right ADC", NULL, "GPIO1 dmic modclk"}, | 641 | {"Right ADC", NULL, "GPIO1 dmic modclk"}, |
614 | 642 | ||
615 | /* Left PGA Bypass */ | 643 | /* Left PGA Bypass */ |
616 | {"Left PGA Bypass Mixer", "Line Switch", "Left PGA Mixer"}, | 644 | {"Left PGA Bypass Mixer", "LineL Switch", "Left PGA Mixer"}, |
645 | {"Left PGA Bypass Mixer", "LineR Switch", "Left PGA Mixer"}, | ||
617 | {"Left PGA Bypass Mixer", "Mono Switch", "Left PGA Mixer"}, | 646 | {"Left PGA Bypass Mixer", "Mono Switch", "Left PGA Mixer"}, |
618 | {"Left PGA Bypass Mixer", "HP Switch", "Left PGA Mixer"}, | 647 | {"Left PGA Bypass Mixer", "HPL Switch", "Left PGA Mixer"}, |
619 | {"Left PGA Bypass Mixer", "HPCOM Switch", "Left PGA Mixer"}, | 648 | {"Left PGA Bypass Mixer", "HPR Switch", "Left PGA Mixer"}, |
649 | {"Left PGA Bypass Mixer", "HPLCOM Switch", "Left PGA Mixer"}, | ||
650 | {"Left PGA Bypass Mixer", "HPRCOM Switch", "Left PGA Mixer"}, | ||
620 | 651 | ||
621 | {"Left HPCOM Mux", "differential of HPLOUT", "Left PGA Bypass Mixer"}, | 652 | {"Left HPCOM Mux", "differential of HPLOUT", "Left PGA Bypass Mixer"}, |
622 | {"Left HPCOM Mux", "constant VCM", "Left PGA Bypass Mixer"}, | 653 | {"Left HPCOM Mux", "constant VCM", "Left PGA Bypass Mixer"}, |
@@ -627,10 +658,13 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
627 | {"Left HP Out", NULL, "Left PGA Bypass Mixer"}, | 658 | {"Left HP Out", NULL, "Left PGA Bypass Mixer"}, |
628 | 659 | ||
629 | /* Right PGA Bypass */ | 660 | /* Right PGA Bypass */ |
630 | {"Right PGA Bypass Mixer", "Line Switch", "Right PGA Mixer"}, | 661 | {"Right PGA Bypass Mixer", "LineL Switch", "Right PGA Mixer"}, |
662 | {"Right PGA Bypass Mixer", "LineR Switch", "Right PGA Mixer"}, | ||
631 | {"Right PGA Bypass Mixer", "Mono Switch", "Right PGA Mixer"}, | 663 | {"Right PGA Bypass Mixer", "Mono Switch", "Right PGA Mixer"}, |
632 | {"Right PGA Bypass Mixer", "HP Switch", "Right PGA Mixer"}, | 664 | {"Right PGA Bypass Mixer", "HPL Switch", "Right PGA Mixer"}, |
633 | {"Right PGA Bypass Mixer", "HPCOM Switch", "Right PGA Mixer"}, | 665 | {"Right PGA Bypass Mixer", "HPR Switch", "Right PGA Mixer"}, |
666 | {"Right PGA Bypass Mixer", "HPLCOM Switch", "Right PGA Mixer"}, | ||
667 | {"Right PGA Bypass Mixer", "HPRCOM Switch", "Right PGA Mixer"}, | ||
634 | 668 | ||
635 | {"Right HPCOM Mux", "differential of HPROUT", "Right PGA Bypass Mixer"}, | 669 | {"Right HPCOM Mux", "differential of HPROUT", "Right PGA Bypass Mixer"}, |
636 | {"Right HPCOM Mux", "constant VCM", "Right PGA Bypass Mixer"}, | 670 | {"Right HPCOM Mux", "constant VCM", "Right PGA Bypass Mixer"}, |
@@ -643,10 +677,11 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
643 | {"Right HP Out", NULL, "Right PGA Bypass Mixer"}, | 677 | {"Right HP Out", NULL, "Right PGA Bypass Mixer"}, |
644 | 678 | ||
645 | /* Left Line2 Bypass */ | 679 | /* Left Line2 Bypass */ |
646 | {"Left Line2 Bypass Mixer", "Line Switch", "Left Line2L Mux"}, | 680 | {"Left Line2 Bypass Mixer", "LineL Switch", "Left Line2L Mux"}, |
681 | {"Left Line2 Bypass Mixer", "LineR Switch", "Left Line2L Mux"}, | ||
647 | {"Left Line2 Bypass Mixer", "Mono Switch", "Left Line2L Mux"}, | 682 | {"Left Line2 Bypass Mixer", "Mono Switch", "Left Line2L Mux"}, |
648 | {"Left Line2 Bypass Mixer", "HP Switch", "Left Line2L Mux"}, | 683 | {"Left Line2 Bypass Mixer", "HP Switch", "Left Line2L Mux"}, |
649 | {"Left Line2 Bypass Mixer", "HPCOM Switch", "Left Line2L Mux"}, | 684 | {"Left Line2 Bypass Mixer", "HPLCOM Switch", "Left Line2L Mux"}, |
650 | 685 | ||
651 | {"Left HPCOM Mux", "differential of HPLOUT", "Left Line2 Bypass Mixer"}, | 686 | {"Left HPCOM Mux", "differential of HPLOUT", "Left Line2 Bypass Mixer"}, |
652 | {"Left HPCOM Mux", "constant VCM", "Left Line2 Bypass Mixer"}, | 687 | {"Left HPCOM Mux", "constant VCM", "Left Line2 Bypass Mixer"}, |
@@ -657,10 +692,11 @@ static const struct snd_soc_dapm_route intercon[] = { | |||
657 | {"Left HP Out", NULL, "Left Line2 Bypass Mixer"}, | 692 | {"Left HP Out", NULL, "Left Line2 Bypass Mixer"}, |
658 | 693 | ||
659 | /* Right Line2 Bypass */ | 694 | /* Right Line2 Bypass */ |
660 | {"Right Line2 Bypass Mixer", "Line Switch", "Right Line2R Mux"}, | 695 | {"Right Line2 Bypass Mixer", "LineL Switch", "Right Line2R Mux"}, |
696 | {"Right Line2 Bypass Mixer", "LineR Switch", "Right Line2R Mux"}, | ||
661 | {"Right Line2 Bypass Mixer", "Mono Switch", "Right Line2R Mux"}, | 697 | {"Right Line2 Bypass Mixer", "Mono Switch", "Right Line2R Mux"}, |
662 | {"Right Line2 Bypass Mixer", "HP Switch", "Right Line2R Mux"}, | 698 | {"Right Line2 Bypass Mixer", "HP Switch", "Right Line2R Mux"}, |
663 | {"Right Line2 Bypass Mixer", "HPCOM Switch", "Right Line2R Mux"}, | 699 | {"Right Line2 Bypass Mixer", "HPRCOM Switch", "Right Line2R Mux"}, |
664 | 700 | ||
665 | {"Right HPCOM Mux", "differential of HPROUT", "Right Line2 Bypass Mixer"}, | 701 | {"Right HPCOM Mux", "differential of HPROUT", "Right Line2 Bypass Mixer"}, |
666 | {"Right HPCOM Mux", "constant VCM", "Right Line2 Bypass Mixer"}, | 702 | {"Right HPCOM Mux", "constant VCM", "Right Line2 Bypass Mixer"}, |
diff --git a/sound/soc/codecs/tlv320aic3x.h b/sound/soc/codecs/tlv320aic3x.h index 00a195aa02e4..7e982acf3996 100644 --- a/sound/soc/codecs/tlv320aic3x.h +++ b/sound/soc/codecs/tlv320aic3x.h | |||
@@ -48,7 +48,9 @@ | |||
48 | #define MIC3LR_2_RADC_CTRL 18 | 48 | #define MIC3LR_2_RADC_CTRL 18 |
49 | /* Line1 Input control registers */ | 49 | /* Line1 Input control registers */ |
50 | #define LINE1L_2_LADC_CTRL 19 | 50 | #define LINE1L_2_LADC_CTRL 19 |
51 | #define LINE1R_2_LADC_CTRL 21 | ||
51 | #define LINE1R_2_RADC_CTRL 22 | 52 | #define LINE1R_2_RADC_CTRL 22 |
53 | #define LINE1L_2_RADC_CTRL 24 | ||
52 | /* Line2 Input control registers */ | 54 | /* Line2 Input control registers */ |
53 | #define LINE2L_2_LADC_CTRL 20 | 55 | #define LINE2L_2_LADC_CTRL 20 |
54 | #define LINE2R_2_RADC_CTRL 23 | 56 | #define LINE2R_2_RADC_CTRL 23 |
@@ -79,6 +81,8 @@ | |||
79 | #define LINE2L_2_HPLOUT_VOL 45 | 81 | #define LINE2L_2_HPLOUT_VOL 45 |
80 | #define LINE2R_2_HPROUT_VOL 62 | 82 | #define LINE2R_2_HPROUT_VOL 62 |
81 | #define PGAL_2_HPLOUT_VOL 46 | 83 | #define PGAL_2_HPLOUT_VOL 46 |
84 | #define PGAL_2_HPROUT_VOL 60 | ||
85 | #define PGAR_2_HPLOUT_VOL 49 | ||
82 | #define PGAR_2_HPROUT_VOL 63 | 86 | #define PGAR_2_HPROUT_VOL 63 |
83 | #define DACL1_2_HPLOUT_VOL 47 | 87 | #define DACL1_2_HPLOUT_VOL 47 |
84 | #define DACR1_2_HPROUT_VOL 64 | 88 | #define DACR1_2_HPROUT_VOL 64 |
@@ -88,6 +92,8 @@ | |||
88 | #define LINE2L_2_HPLCOM_VOL 52 | 92 | #define LINE2L_2_HPLCOM_VOL 52 |
89 | #define LINE2R_2_HPRCOM_VOL 69 | 93 | #define LINE2R_2_HPRCOM_VOL 69 |
90 | #define PGAL_2_HPLCOM_VOL 53 | 94 | #define PGAL_2_HPLCOM_VOL 53 |
95 | #define PGAR_2_HPLCOM_VOL 56 | ||
96 | #define PGAL_2_HPRCOM_VOL 67 | ||
91 | #define PGAR_2_HPRCOM_VOL 70 | 97 | #define PGAR_2_HPRCOM_VOL 70 |
92 | #define DACL1_2_HPLCOM_VOL 54 | 98 | #define DACL1_2_HPLCOM_VOL 54 |
93 | #define DACR1_2_HPRCOM_VOL 71 | 99 | #define DACR1_2_HPRCOM_VOL 71 |
@@ -103,11 +109,17 @@ | |||
103 | #define MONOLOPM_CTRL 79 | 109 | #define MONOLOPM_CTRL 79 |
104 | /* Line Output Plus/Minus control registers */ | 110 | /* Line Output Plus/Minus control registers */ |
105 | #define LINE2L_2_LLOPM_VOL 80 | 111 | #define LINE2L_2_LLOPM_VOL 80 |
112 | #define LINE2L_2_RLOPM_VOL 87 | ||
113 | #define LINE2R_2_LLOPM_VOL 83 | ||
106 | #define LINE2R_2_RLOPM_VOL 90 | 114 | #define LINE2R_2_RLOPM_VOL 90 |
107 | #define PGAL_2_LLOPM_VOL 81 | 115 | #define PGAL_2_LLOPM_VOL 81 |
116 | #define PGAL_2_RLOPM_VOL 88 | ||
117 | #define PGAR_2_LLOPM_VOL 84 | ||
108 | #define PGAR_2_RLOPM_VOL 91 | 118 | #define PGAR_2_RLOPM_VOL 91 |
109 | #define DACL1_2_LLOPM_VOL 82 | 119 | #define DACL1_2_LLOPM_VOL 82 |
120 | #define DACL1_2_RLOPM_VOL 89 | ||
110 | #define DACR1_2_RLOPM_VOL 92 | 121 | #define DACR1_2_RLOPM_VOL 92 |
122 | #define DACR1_2_LLOPM_VOL 85 | ||
111 | #define LLOPM_CTRL 86 | 123 | #define LLOPM_CTRL 86 |
112 | #define RLOPM_CTRL 93 | 124 | #define RLOPM_CTRL 93 |
113 | /* GPIO/IRQ registers */ | 125 | /* GPIO/IRQ registers */ |