403
400
static const struct snd_kcontrol_new cs42l73_snd_controls[] = {
404
401
SOC_DOUBLE_R_SX_TLV("Headphone Analog Playback Volume",
405
CS42L73_HPAAVOL, CS42L73_HPBAVOL, 7,
406
0xffffffC1, 0x0C, hpaloa_tlv),
402
CS42L73_HPAAVOL, CS42L73_HPBAVOL, 0,
403
0x41, 0x4B, hpaloa_tlv),
408
405
SOC_DOUBLE_R_SX_TLV("LineOut Analog Playback Volume", CS42L73_LOAAVOL,
409
CS42L73_LOBAVOL, 7, 0xffffffC1, 0x0C, hpaloa_tlv),
406
CS42L73_LOBAVOL, 0, 0x41, 0x4B, hpaloa_tlv),
411
408
SOC_DOUBLE_R_SX_TLV("Input PGA Analog Volume", CS42L73_MICAPREPGAAVOL,
412
CS42L73_MICBPREPGABVOL, 5, 0xffffff35,
409
CS42L73_MICBPREPGABVOL, 5, 0x34,
415
412
SOC_DOUBLE_R("MIC Preamp Switch", CS42L73_MICAPREPGAAVOL,
416
413
CS42L73_MICBPREPGABVOL, 6, 1, 1),
418
415
SOC_DOUBLE_R_SX_TLV("Input Path Digital Volume", CS42L73_IPADVOL,
419
CS42L73_IPBDVOL, 7, 0xffffffA0, 0xA0, ipd_tlv),
416
CS42L73_IPBDVOL, 0, 0xA0, 0x6C, ipd_tlv),
421
418
SOC_DOUBLE_R_SX_TLV("HL Digital Playback Volume",
422
CS42L73_HLADVOL, CS42L73_HLBDVOL, 7, 0xffffffE5,
419
CS42L73_HLADVOL, CS42L73_HLBDVOL,
420
0, 0x34, 0xE4, hl_tlv),
425
422
SOC_SINGLE_TLV("ADC A Boost Volume",
426
423
CS42L73_ADCIPC, 2, 0x01, 1, adc_boost_tlv),
428
425
SOC_SINGLE_TLV("ADC B Boost Volume",
429
CS42L73_ADCIPC, 6, 0x01, 1, adc_boost_tlv),
431
SOC_SINGLE_TLV("Speakerphone Digital Playback Volume",
432
CS42L73_SPKDVOL, 0, 0xE4, 1, hl_tlv),
434
SOC_SINGLE_TLV("Ear Speaker Digital Playback Volume",
435
CS42L73_ESLDVOL, 0, 0xE4, 1, hl_tlv),
426
CS42L73_ADCIPC, 6, 0x01, 1, adc_boost_tlv),
428
SOC_SINGLE_SX_TLV("Speakerphone Digital Volume",
429
CS42L73_SPKDVOL, 0, 0x34, 0xE4, hl_tlv),
431
SOC_SINGLE_SX_TLV("Ear Speaker Digital Volume",
432
CS42L73_ESLDVOL, 0, 0x34, 0xE4, hl_tlv),
437
434
SOC_DOUBLE_R("Headphone Analog Playback Switch", CS42L73_HPAAVOL,
438
435
CS42L73_HPBAVOL, 7, 1, 1),
599
596
SND_SOC_DAPM_INPUT("MIC2"),
600
597
SND_SOC_DAPM_SUPPLY("MIC2 Bias", CS42L73_PWRCTL2, 7, 1, NULL, 0),
602
SND_SOC_DAPM_AIF_OUT("XSPOUTL", "XSP Capture", 0,
603
CS42L73_PWRCTL2, 1, 1),
604
SND_SOC_DAPM_AIF_OUT("XSPOUTR", "XSP Capture", 0,
605
CS42L73_PWRCTL2, 1, 1),
606
SND_SOC_DAPM_AIF_OUT("ASPOUTL", "ASP Capture", 0,
607
CS42L73_PWRCTL2, 3, 1),
608
SND_SOC_DAPM_AIF_OUT("ASPOUTR", "ASP Capture", 0,
609
CS42L73_PWRCTL2, 3, 1),
610
SND_SOC_DAPM_AIF_OUT("VSPOUTL", "VSP Capture", 0,
599
SND_SOC_DAPM_AIF_OUT("XSPOUTL", NULL, 0,
600
CS42L73_PWRCTL2, 1, 1),
601
SND_SOC_DAPM_AIF_OUT("XSPOUTR", NULL, 0,
602
CS42L73_PWRCTL2, 1, 1),
603
SND_SOC_DAPM_AIF_OUT("ASPOUTL", NULL, 0,
604
CS42L73_PWRCTL2, 3, 1),
605
SND_SOC_DAPM_AIF_OUT("ASPOUTR", NULL, 0,
606
CS42L73_PWRCTL2, 3, 1),
607
SND_SOC_DAPM_AIF_OUT("VSPOUTL", NULL, 0,
611
608
CS42L73_PWRCTL2, 4, 1),
612
SND_SOC_DAPM_AIF_OUT("VSPOUTR", "VSP Capture", 0,
609
SND_SOC_DAPM_AIF_OUT("VSPOUTR", NULL, 0,
613
610
CS42L73_PWRCTL2, 4, 1),
615
612
SND_SOC_DAPM_PGA("PGA Left", SND_SOC_NOPM, 0, 0, NULL, 0),
638
635
SND_SOC_DAPM_MIXER("VSPL Output Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
639
636
SND_SOC_DAPM_MIXER("VSPR Output Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
641
SND_SOC_DAPM_AIF_IN("XSPINL", "XSP Playback", 0,
642
CS42L73_PWRCTL2, 0, 1),
643
SND_SOC_DAPM_AIF_IN("XSPINR", "XSP Playback", 0,
644
CS42L73_PWRCTL2, 0, 1),
645
SND_SOC_DAPM_AIF_IN("XSPINM", "XSP Playback", 0,
646
CS42L73_PWRCTL2, 0, 1),
648
SND_SOC_DAPM_AIF_IN("ASPINL", "ASP Playback", 0,
649
CS42L73_PWRCTL2, 2, 1),
650
SND_SOC_DAPM_AIF_IN("ASPINR", "ASP Playback", 0,
651
CS42L73_PWRCTL2, 2, 1),
652
SND_SOC_DAPM_AIF_IN("ASPINM", "ASP Playback", 0,
653
CS42L73_PWRCTL2, 2, 1),
655
SND_SOC_DAPM_AIF_IN("VSPIN", "VSP Playback", 0,
638
SND_SOC_DAPM_AIF_IN("XSPINL", NULL, 0,
639
CS42L73_PWRCTL2, 0, 1),
640
SND_SOC_DAPM_AIF_IN("XSPINR", NULL, 0,
641
CS42L73_PWRCTL2, 0, 1),
642
SND_SOC_DAPM_AIF_IN("XSPINM", NULL, 0,
643
CS42L73_PWRCTL2, 0, 1),
645
SND_SOC_DAPM_AIF_IN("ASPINL", NULL, 0,
646
CS42L73_PWRCTL2, 2, 1),
647
SND_SOC_DAPM_AIF_IN("ASPINR", NULL, 0,
648
CS42L73_PWRCTL2, 2, 1),
649
SND_SOC_DAPM_AIF_IN("ASPINM", NULL, 0,
650
CS42L73_PWRCTL2, 2, 1),
652
SND_SOC_DAPM_AIF_IN("VSPIN", NULL, 0,
656
653
CS42L73_PWRCTL2, 4, 1),
658
655
SND_SOC_DAPM_MIXER("HL Left Mixer", SND_SOC_NOPM, 0, 0, NULL, 0),
776
773
{"HL Left Mixer", NULL, "VSPIN"},
777
774
{"HL Right Mixer", NULL, "VSPIN"},
776
{"ASPINL", NULL, "ASP Playback"},
777
{"ASPINM", NULL, "ASP Playback"},
778
{"ASPINR", NULL, "ASP Playback"},
779
{"XSPINL", NULL, "XSP Playback"},
780
{"XSPINM", NULL, "XSP Playback"},
781
{"XSPINR", NULL, "XSP Playback"},
782
{"VSPIN", NULL, "VSP Playback"},
779
784
/* Capture Paths */
780
785
{"MIC1", NULL, "MIC1 Bias"},
781
786
{"PGA Left Mux", "Mic 1", "MIC1"},
823
828
{"VSPOUTL", NULL, "VSPL Output Mixer"},
824
829
{"VSPOUTR", NULL, "VSPR Output Mixer"},
831
{"ASP Capture", NULL, "ASPOUTL"},
832
{"ASP Capture", NULL, "ASPOUTR"},
833
{"XSP Capture", NULL, "XSPOUTL"},
834
{"XSP Capture", NULL, "XSPOUTR"},
835
{"VSP Capture", NULL, "VSPOUTL"},
836
{"VSP Capture", NULL, "VSPOUTR"},
827
839
struct cs42l73_mclk_div {