Lines Matching refs:codec
49 static void sn95031_enable_mic_bias(struct snd_soc_codec *codec) in sn95031_enable_mic_bias() argument
51 snd_soc_write(codec, SN95031_VAUD, BIT(2)|BIT(1)|BIT(0)); in sn95031_enable_mic_bias()
52 snd_soc_update_bits(codec, SN95031_MICBIAS, BIT(2), BIT(2)); in sn95031_enable_mic_bias()
140 static unsigned int sn95031_get_mic_bias(struct snd_soc_codec *codec) in sn95031_get_mic_bias() argument
142 u16 adc_adr = sn95031_initialize_adc(codec); in sn95031_get_mic_bias()
146 sn95031_enable_mic_bias(codec); in sn95031_get_mic_bias()
149 snd_soc_write(codec, SN95031_ADC1CNTL3, 0x05); in sn95031_get_mic_bias()
151 snd_soc_write(codec, SN95031_ADC1CNTL3, 0x04); in sn95031_get_mic_bias()
155 adc_val1 = snd_soc_read(codec, adc_adr); in sn95031_get_mic_bias()
157 adc_val2 = snd_soc_read(codec, adc_adr); in sn95031_get_mic_bias()
189 static int sn95031_set_vaud_bias(struct snd_soc_codec *codec, in sn95031_set_vaud_bias() argument
197 if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY) { in sn95031_set_vaud_bias()
200 snd_soc_write(codec, SN95031_AUDPLLCTRL, BIT(5)); in sn95031_set_vaud_bias()
202 snd_soc_update_bits(codec, SN95031_PCM2C2, in sn95031_set_vaud_bias()
208 if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { in sn95031_set_vaud_bias()
211 snd_soc_write(codec, SN95031_VAUD, in sn95031_set_vaud_bias()
214 } else if (codec->dapm.bias_level == SND_SOC_BIAS_PREPARE) { in sn95031_set_vaud_bias()
217 snd_soc_update_bits(codec, SN95031_PCM2C2, BIT(0), 0); in sn95031_set_vaud_bias()
218 snd_soc_write(codec, SN95031_AUDPLLCTRL, 0); in sn95031_set_vaud_bias()
225 snd_soc_write(codec, SN95031_VAUD, BIT(3)); in sn95031_set_vaud_bias()
229 codec->dapm.bias_level = level; in sn95031_set_vaud_bias()
236 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in sn95031_vhs_event() local
241 snd_soc_write(codec, SN95031_VHSP, 0x3D); in sn95031_vhs_event()
242 snd_soc_write(codec, SN95031_VHSN, 0x3F); in sn95031_vhs_event()
246 snd_soc_write(codec, SN95031_VHSP, 0xC4); in sn95031_vhs_event()
247 snd_soc_write(codec, SN95031_VHSN, 0x04); in sn95031_vhs_event()
255 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in sn95031_vihf_event() local
260 snd_soc_write(codec, SN95031_VIHF, 0x27); in sn95031_vihf_event()
264 snd_soc_write(codec, SN95031_VIHF, 0x24); in sn95031_vihf_event()
272 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in sn95031_dmic12_event() local
281 snd_soc_update_bits(codec, SN95031_MICBIAS, BIT(5)|BIT(4), ldo); in sn95031_dmic12_event()
282 snd_soc_update_bits(codec, SN95031_DMICBUF0123, BIT(0), clk_dir); in sn95031_dmic12_event()
283 snd_soc_update_bits(codec, SN95031_DMICBUF0123, BIT(7), data_dir); in sn95031_dmic12_event()
290 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in sn95031_dmic34_event() local
299 snd_soc_update_bits(codec, SN95031_MICBIAS, BIT(5)|BIT(4), ldo); in sn95031_dmic34_event()
300 snd_soc_update_bits(codec, SN95031_DMICBUF0123, BIT(2), clk_dir); in sn95031_dmic34_event()
301 snd_soc_update_bits(codec, SN95031_DMICBUF45, BIT(1), data_dir); in sn95031_dmic34_event()
308 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in sn95031_dmic56_event() local
315 snd_soc_update_bits(codec, SN95031_MICBIAS, BIT(7)|BIT(6), ldo); in sn95031_dmic56_event()
650 snd_soc_update_bits(dai->codec, in sn95031_pcm_hs_mute()
652 snd_soc_update_bits(dai->codec, in sn95031_pcm_hs_mute()
659 snd_soc_update_bits(dai->codec, in sn95031_pcm_spkr_mute()
661 snd_soc_update_bits(dai->codec, in sn95031_pcm_spkr_mute()
682 snd_soc_update_bits(dai->codec, SN95031_PCM2C2, in sn95031_pcm_hw_params()
700 snd_soc_update_bits(dai->codec, SN95031_PCM1C1, BIT(7), rate); in sn95031_pcm_hw_params()
775 static inline void sn95031_disable_jack_btn(struct snd_soc_codec *codec) in sn95031_disable_jack_btn() argument
777 snd_soc_write(codec, SN95031_BTNCTRL2, 0x00); in sn95031_disable_jack_btn()
780 static inline void sn95031_enable_jack_btn(struct snd_soc_codec *codec) in sn95031_enable_jack_btn() argument
782 snd_soc_write(codec, SN95031_BTNCTRL1, 0x77); in sn95031_enable_jack_btn()
783 snd_soc_write(codec, SN95031_BTNCTRL2, 0x01); in sn95031_enable_jack_btn()
786 static int sn95031_get_headset_state(struct snd_soc_codec *codec, in sn95031_get_headset_state() argument
789 int micbias = sn95031_get_mic_bias(codec); in sn95031_get_headset_state()
795 sn95031_enable_jack_btn(codec); in sn95031_get_headset_state()
799 void sn95031_jack_detection(struct snd_soc_codec *codec, in sn95031_jack_detection() argument
814 status = sn95031_get_headset_state(codec, jack_data->mfld_jack); in sn95031_jack_detection()
818 sn95031_disable_jack_btn(codec); in sn95031_jack_detection()
833 static int sn95031_codec_probe(struct snd_soc_codec *codec) in sn95031_codec_probe() argument
841 snd_soc_write(codec, SN95031_PCM2RXSLOT01, 0x10); in sn95031_codec_probe()
842 snd_soc_write(codec, SN95031_PCM2RXSLOT23, 0x32); in sn95031_codec_probe()
843 snd_soc_write(codec, SN95031_PCM2RXSLOT45, 0x54); in sn95031_codec_probe()
844 snd_soc_write(codec, SN95031_PCM2TXSLOT01, 0x10); in sn95031_codec_probe()
845 snd_soc_write(codec, SN95031_PCM2TXSLOT23, 0x32); in sn95031_codec_probe()
850 snd_soc_write(codec, SN95031_PCM1C1, 0x00); in sn95031_codec_probe()
851 snd_soc_write(codec, SN95031_PCM2C1, 0x01); in sn95031_codec_probe()
852 snd_soc_write(codec, SN95031_PCM2C2, 0x0A); in sn95031_codec_probe()
853 snd_soc_write(codec, SN95031_HSMIXER, BIT(0)|BIT(4)); in sn95031_codec_probe()
857 snd_soc_write(codec, SN95031_SSR5, 0x80); in sn95031_codec_probe()
858 snd_soc_write(codec, SN95031_SSR6, 0x80); in sn95031_codec_probe()
859 snd_soc_write(codec, SN95031_VIB1C5, 0x00); in sn95031_codec_probe()
860 snd_soc_write(codec, SN95031_VIB2C5, 0x00); in sn95031_codec_probe()
862 snd_soc_write(codec, SN95031_VIB1C3, 0x00); in sn95031_codec_probe()
863 snd_soc_write(codec, SN95031_VIB2C3, 0x00); in sn95031_codec_probe()
866 snd_soc_write(codec, SN95031_SOFTMUTE, 0x3); in sn95031_codec_probe()
871 snd_soc_write(codec, SN95031_HSLVOLCTRL, 0x08); in sn95031_codec_probe()
872 snd_soc_write(codec, SN95031_HSRVOLCTRL, 0x08); in sn95031_codec_probe()
873 snd_soc_write(codec, SN95031_IHFLVOLCTRL, 0x08); in sn95031_codec_probe()
874 snd_soc_write(codec, SN95031_IHFRVOLCTRL, 0x08); in sn95031_codec_probe()
876 snd_soc_write(codec, SN95031_SSR2, 0x10); in sn95031_codec_probe()
877 snd_soc_write(codec, SN95031_SSR3, 0x40); in sn95031_codec_probe()