Lines Matching +full:0 +full:x2f20

36 	{   2, 0x8080 },	/* R2   - Speaker Output Volume */
37 { 4, 0x8080 }, /* R4 - Headphone Output Volume */
38 { 6, 0x8080 }, /* R6 - AUXOUT Volume */
39 { 8, 0xC800 }, /* R8 - Phone Input */
40 { 10, 0xE808 }, /* R10 - LINE_IN Volume */
41 { 12, 0x1010 }, /* R12 - STEREO DAC Input Volume */
42 { 14, 0x0808 }, /* R14 - MIC Input Volume */
43 { 16, 0xEE0F }, /* R16 - Stereo DAC and MIC Routing Control */
44 { 18, 0xCBCB }, /* R18 - ADC Record Gain */
45 { 20, 0x7F7F }, /* R20 - ADC Record Mixer Control */
46 { 24, 0xE010 }, /* R24 - Voice DAC Volume */
47 { 28, 0x8008 }, /* R28 - Output Mixer Control */
48 { 34, 0x0000 }, /* R34 - Microphone Control */
49 { 36, 0x00C0 }, /* R36 - Codec Digital MIC/Digital Boost
51 { 46, 0x0000 }, /* R46 - Stereo DAC/Voice DAC/Stereo ADC
53 { 52, 0x8000 }, /* R52 - Main Serial Data Port Control
55 { 54, 0x0000 }, /* R54 - Extend Serial Data Port Control
57 { 58, 0x0000 }, /* R58 - Power Management Addition 1 */
58 { 60, 0x0000 }, /* R60 - Power Management Addition 2 */
59 { 62, 0x8000 }, /* R62 - Power Management Addition 3 */
60 { 64, 0x0C0A }, /* R64 - General Purpose Control Register 1 */
61 { 66, 0x0000 }, /* R66 - General Purpose Control Register 2 */
62 { 68, 0x0000 }, /* R68 - PLL1 Control */
63 { 70, 0x0000 }, /* R70 - PLL2 Control */
64 { 76, 0xBE3E }, /* R76 - GPIO Pin Configuration */
65 { 78, 0xBE3E }, /* R78 - GPIO Pin Polarity */
66 { 80, 0x0000 }, /* R80 - GPIO Pin Sticky */
67 { 82, 0x0000 }, /* R82 - GPIO Pin Wake Up */
68 { 86, 0x0000 }, /* R86 - Pin Sharing */
69 { 90, 0x0009 }, /* R90 - Soft Volume Control Setting */
70 { 92, 0x0000 }, /* R92 - GPIO_Output Pin Control */
71 { 94, 0x3000 }, /* R94 - MISC Control */
72 { 96, 0x3075 }, /* R96 - Stereo DAC Clock Control_1 */
73 { 98, 0x1010 }, /* R98 - Stereo DAC Clock Control_2 */
74 { 100, 0x3110 }, /* R100 - VoDAC_PCM Clock Control_1 */
75 { 104, 0x0553 }, /* R104 - Pseudo Stereo and Spatial Effect
77 { 106, 0x0000 }, /* R106 - Private Register Address */
110 return regmap_write(map, ALC5632_RESET, 0x59B4); in alc5632_reset()
120 /* so write index num (here 0x46) to reg 0x6a */ in amp_mixer_event()
121 /* and then 0xffff/0 to reg 0x6c */ in amp_mixer_event()
122 snd_soc_component_write(component, ALC5632_HID_CTRL_INDEX, 0x46); in amp_mixer_event()
126 snd_soc_component_write(component, ALC5632_HID_CTRL_DATA, 0xFFFF); in amp_mixer_event()
129 snd_soc_component_write(component, ALC5632_HID_CTRL_DATA, 0); in amp_mixer_event()
133 return 0; in amp_mixer_event()
141 static const DECLARE_TLV_DB_SCALE(vol_tlv, -3450, 150, 0);
143 static const DECLARE_TLV_DB_SCALE(hp_tlv, -4650, 150, 0);
145 static const DECLARE_TLV_DB_SCALE(adc_rec_tlv, -1650, 150, 0);
147 0, 1, TLV_DB_SCALE_ITEM(0, 2000, 0),
148 1, 3, TLV_DB_SCALE_ITEM(2000, 1000, 0)
150 /* 0db min scale, 6 db steps, no mute */
151 static const DECLARE_TLV_DB_SCALE(dig_tlv, 0, 600, 0);
152 /* 0db min scalem 0.75db steps, no mute */
153 static const DECLARE_TLV_DB_SCALE(vdac_tlv, -3525, 75, 0);
156 /* left starts at bit 8, right at bit 0 */
159 ALC5632_SPK_OUT_VOL, 8, 0, 31, 1, hp_tlv),
164 ALC5632_HP_OUT_VOL, 8, 0, 31, 1, hp_tlv),
171 ALC5632_AUX_OUT_VOL, 8, 0, 31, 1, hp_tlv),
175 ALC5632_VOICE_DAC_VOL, 0, 63, 0, vdac_tlv),
181 ALC5632_LINE_IN_VOL, 8, 0, 31, 1, vol_tlv),
183 ALC5632_STEREO_DAC_IN_VOL, 8, 0, 63, 1, vdac_tlv),
189 ALC5632_MIC_VOL, 0, 31, 1, vol_tlv),
191 ALC5632_ADC_REC_GAIN, 8, 0, 31, 0, adc_rec_tlv),
193 ALC5632_MIC_CTRL, 10, 3, 0, boost_tlv),
195 ALC5632_MIC_CTRL, 8, 3, 0, boost_tlv),
197 ALC5632_DIGI_BOOST_CTRL, 0, 7, 0, dig_tlv),
199 ALC5632_DIGI_BOOST_CTRL, 15, 1, 0),
201 ALC5632_DIGI_BOOST_CTRL, 12, 1, 0),
233 SOC_DAPM_SINGLE("DAC2MONO Playback Switch", ALC5632_MIC_ROUTING_CTRL, 0, 1, 1),
267 SOC_DAPM_SINGLE("MONO2REC_R Capture Switch", ALC5632_ADC_REC_MIXER, 0, 1, 1),
352 SND_SOC_DAPM_MUX("AuxOut Mux", SND_SOC_NOPM, 0, 0,
354 SND_SOC_DAPM_MUX("SpeakerOut Mux", SND_SOC_NOPM, 0, 0,
356 SND_SOC_DAPM_MUX("Left Headphone Mux", SND_SOC_NOPM, 0, 0,
358 SND_SOC_DAPM_MUX("Right Headphone Mux", SND_SOC_NOPM, 0, 0,
360 SND_SOC_DAPM_MUX("SpeakerOut N Mux", SND_SOC_NOPM, 0, 0,
362 SND_SOC_DAPM_MUX("ADCR Mux", SND_SOC_NOPM, 0, 0,
364 SND_SOC_DAPM_MUX("I2SOut Mux", ALC5632_PWR_MANAG_ADD1, 11, 0,
368 SND_SOC_DAPM_MIXER("HP Mix", SND_SOC_NOPM, 0, 0,
369 &alc5632_hp_mixer_controls[0],
371 SND_SOC_DAPM_MIXER("HPR Mix", ALC5632_PWR_MANAG_ADD2, 4, 0,
372 &alc5632_hpr_mixer_controls[0],
374 SND_SOC_DAPM_MIXER("HPL Mix", ALC5632_PWR_MANAG_ADD2, 5, 0,
375 &alc5632_hpl_mixer_controls[0],
377 SND_SOC_DAPM_MIXER("HPOut Mix", SND_SOC_NOPM, 0, 0, NULL, 0),
378 SND_SOC_DAPM_MIXER("Mono Mix", ALC5632_PWR_MANAG_ADD2, 2, 0,
379 &alc5632_mono_mixer_controls[0],
381 SND_SOC_DAPM_MIXER("Speaker Mix", ALC5632_PWR_MANAG_ADD2, 3, 0,
382 &alc5632_speaker_mixer_controls[0],
384 SND_SOC_DAPM_MIXER("DMICL Mix", SND_SOC_NOPM, 0, 0,
385 &alc5632_dmicl_mixer_controls[0],
387 SND_SOC_DAPM_MIXER("DMICR Mix", SND_SOC_NOPM, 0, 0,
388 &alc5632_dmicr_mixer_controls[0],
392 SND_SOC_DAPM_MIXER("Left Capture Mix", ALC5632_PWR_MANAG_ADD2, 1, 0,
393 &alc5632_captureL_mixer_controls[0],
395 SND_SOC_DAPM_MIXER("Right Capture Mix", ALC5632_PWR_MANAG_ADD2, 0, 0,
396 &alc5632_captureR_mixer_controls[0],
399 SND_SOC_DAPM_AIF_IN("AIFRXL", "Left HiFi Playback", 0, SND_SOC_NOPM, 0, 0),
400 SND_SOC_DAPM_AIF_IN("AIFRXR", "Right HiFi Playback", 0, SND_SOC_NOPM, 0, 0),
401 SND_SOC_DAPM_AIF_OUT("AIFTXL", "Left HiFi Capture", 0, SND_SOC_NOPM, 0, 0),
402 SND_SOC_DAPM_AIF_OUT("AIFTXR", "Right HiFi Capture", 0, SND_SOC_NOPM, 0, 0),
403 SND_SOC_DAPM_AIF_IN("VAIFRX", "Voice Playback", 0, SND_SOC_NOPM, 0, 0),
404 SND_SOC_DAPM_AIF_OUT("VAIFTX", "Voice Capture", 0, SND_SOC_NOPM, 0, 0),
406 SND_SOC_DAPM_DAC("Voice DAC", NULL, ALC5632_PWR_MANAG_ADD2, 10, 0),
407 SND_SOC_DAPM_DAC("Left DAC", NULL, ALC5632_PWR_MANAG_ADD2, 9, 0),
408 SND_SOC_DAPM_DAC("Right DAC", NULL, ALC5632_PWR_MANAG_ADD2, 8, 0),
409 SND_SOC_DAPM_ADC("Left ADC", NULL, ALC5632_PWR_MANAG_ADD2, 7, 0),
410 SND_SOC_DAPM_ADC("Right ADC", NULL, ALC5632_PWR_MANAG_ADD2, 6, 0),
412 SND_SOC_DAPM_MIXER("DAC Left Channel", ALC5632_PWR_MANAG_ADD1, 15, 0, NULL, 0),
414 ALC5632_PWR_MANAG_ADD1, 14, 0, NULL, 0),
415 SND_SOC_DAPM_MIXER("I2S Mix", ALC5632_PWR_MANAG_ADD1, 11, 0, NULL, 0),
416 SND_SOC_DAPM_MIXER("Phone Mix", SND_SOC_NOPM, 0, 0, NULL, 0),
417 SND_SOC_DAPM_MIXER("Line Mix", SND_SOC_NOPM, 0, 0, NULL, 0),
418 SND_SOC_DAPM_MIXER("Voice Mix", SND_SOC_NOPM, 0, 0, NULL, 0),
419 SND_SOC_DAPM_MIXER("ADCLR", SND_SOC_NOPM, 0, 0, NULL, 0),
421 SND_SOC_DAPM_PGA("Left Headphone", ALC5632_PWR_MANAG_ADD3, 11, 0, NULL, 0),
422 SND_SOC_DAPM_PGA("Right Headphone", ALC5632_PWR_MANAG_ADD3, 10, 0, NULL, 0),
423 SND_SOC_DAPM_PGA("Left Speaker", ALC5632_PWR_MANAG_ADD3, 13, 0, NULL, 0),
424 SND_SOC_DAPM_PGA("Right Speaker", ALC5632_PWR_MANAG_ADD3, 12, 0, NULL, 0),
425 SND_SOC_DAPM_PGA("Aux Out", ALC5632_PWR_MANAG_ADD3, 14, 0, NULL, 0),
426 SND_SOC_DAPM_PGA("Left LineIn", ALC5632_PWR_MANAG_ADD3, 7, 0, NULL, 0),
427 SND_SOC_DAPM_PGA("Right LineIn", ALC5632_PWR_MANAG_ADD3, 6, 0, NULL, 0),
428 SND_SOC_DAPM_PGA("Phone", ALC5632_PWR_MANAG_ADD3, 5, 0, NULL, 0),
429 SND_SOC_DAPM_PGA("Phone ADMix", ALC5632_PWR_MANAG_ADD3, 4, 0, NULL, 0),
430 SND_SOC_DAPM_PGA("MIC1 PGA", ALC5632_PWR_MANAG_ADD3, 3, 0, NULL, 0),
431 SND_SOC_DAPM_PGA("MIC2 PGA", ALC5632_PWR_MANAG_ADD3, 2, 0, NULL, 0),
432 SND_SOC_DAPM_PGA("MIC1 Pre Amp", ALC5632_PWR_MANAG_ADD3, 1, 0, NULL, 0),
433 SND_SOC_DAPM_PGA("MIC2 Pre Amp", ALC5632_PWR_MANAG_ADD3, 0, 0, NULL, 0),
434 SND_SOC_DAPM_SUPPLY("MICBIAS1", ALC5632_PWR_MANAG_ADD1, 3, 0, NULL, 0),
435 SND_SOC_DAPM_SUPPLY("MICBIAS2", ALC5632_PWR_MANAG_ADD1, 2, 0, NULL, 0),
437 SND_SOC_DAPM_PGA_E("D Amp", ALC5632_PWR_MANAG_ADD2, 14, 0, NULL, 0,
439 SND_SOC_DAPM_PGA("AB Amp", ALC5632_PWR_MANAG_ADD2, 15, 0, NULL, 0),
440 SND_SOC_DAPM_MUX("AB-D Amp Mux", ALC5632_PWR_MANAG_ADD1, 10, 0,
626 { 2048000, 8192000, 0x0ea0},
627 { 3686400, 8192000, 0x4e27},
628 { 12000000, 8192000, 0x456b},
629 { 13000000, 8192000, 0x495f},
630 { 13100000, 8192000, 0x0320},
631 { 2048000, 11289600, 0xf637},
632 { 3686400, 11289600, 0x2f22},
633 { 12000000, 11289600, 0x3e2f},
634 { 13000000, 11289600, 0x4d5b},
635 { 13100000, 11289600, 0x363b},
636 { 2048000, 16384000, 0x1ea0},
637 { 3686400, 16384000, 0x9e27},
638 { 12000000, 16384000, 0x452b},
639 { 13000000, 16384000, 0x542f},
640 { 13100000, 16384000, 0x03a0},
641 { 2048000, 16934400, 0xe625},
642 { 3686400, 16934400, 0x9126},
643 { 12000000, 16934400, 0x4d2c},
644 { 13000000, 16934400, 0x742f},
645 { 13100000, 16934400, 0x3c27},
646 { 2048000, 22579200, 0x2aa0},
647 { 3686400, 22579200, 0x2f20},
648 { 12000000, 22579200, 0x7e2f},
649 { 13000000, 22579200, 0x742f},
650 { 13100000, 22579200, 0x3c27},
651 { 2048000, 24576000, 0x2ea0},
652 { 3686400, 24576000, 0xee27},
653 { 12000000, 24576000, 0x2915},
654 { 13000000, 24576000, 0x772e},
655 { 13100000, 24576000, 0x0d20},
661 M: bit 3:0 (div 2 .. div 17)
668 { 1024000, 16384000, 0x3ea0},
669 { 1411200, 22579200, 0x3ea0},
670 { 1536000, 24576000, 0x3ea0},
671 { 2048000, 16384000, 0x1ea0},
672 { 2822400, 22579200, 0x1ea0},
673 { 3072000, 24576000, 0x1ea0},
682 int gbl_clk = 0, pll_div = 0; in alc5632_set_dai_pll()
691 0); in alc5632_set_dai_pll()
694 0); in alc5632_set_dai_pll()
699 return 0; in alc5632_set_dai_pll()
702 return 0; in alc5632_set_dai_pll()
706 for (i = 0; i < ARRAY_SIZE(codec_master_pll_div); i++) { in alc5632_set_dai_pll()
716 for (i = 0; i < ARRAY_SIZE(codec_slave_pll_div); i++) { in alc5632_set_dai_pll()
727 for (i = 0; i < ARRAY_SIZE(codec_slave_pll_div); i++) { in alc5632_set_dai_pll()
761 return 0; in alc5632_set_dai_pll()
772 {512*1, 0x3075},
780 for (i = 0; i < ARRAY_SIZE(coeff_div); i++) { in get_coeff()
807 return 0; in alc5632_set_dai_sysclk()
816 u16 iface = 0; in alc5632_set_dai_fmt()
896 if (coeff < 0) in alc5632_pcm_hw_params()
902 return 0; in alc5632_pcm_hw_params()
943 /* "normal" mode: 0 @ 26 */ in enable_power_depop()
944 /* set all PR0-7 mixers to 0 */ in enable_power_depop()
947 0); in enable_power_depop()
962 0); in enable_power_depop()
983 /* "normal" mode: 0 @ 26 */ in alc5632_set_bias_level()
986 0xffff ^ (ALC5632_PWR_VREF_PR3 in alc5632_set_bias_level()
992 ALC5632_PWR_MANAG_ADD2_MASK, 0); in alc5632_set_bias_level()
994 ALC5632_PWR_MANAG_ADD3_MASK, 0); in alc5632_set_bias_level()
996 ALC5632_PWR_MANAG_ADD1_MASK, 0); in alc5632_set_bias_level()
999 return 0; in alc5632_set_bias_level()
1045 return 0; in alc5632_resume()
1056 case 0x5c: in alc5632_probe()
1064 return 0; in alc5632_probe()
1095 {"alc5632", 0x5c},
1103 * low = 0x1a
1104 * high = 0x1b
1129 if (ret1 != 0 || ret2 != 0) { in alc5632_i2c_probe()
1139 if ((vid1 != 0x10EC) || (vid2 != matched_id)) { in alc5632_i2c_probe()
1141 "Device is not a ALC5632: VID1=0x%x, VID2=0x%x\n", vid1, vid2); in alc5632_i2c_probe()
1146 if (ret < 0) { in alc5632_i2c_probe()
1153 case 0x5c: in alc5632_i2c_probe()
1163 if (ret < 0) { in alc5632_i2c_probe()