Lines Matching refs:codec
219 static void wm8900_reset(struct snd_soc_codec *codec) in wm8900_reset() argument
221 snd_soc_write(codec, WM8900_REG_RESET, 0); in wm8900_reset()
227 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in wm8900_hp_event() local
228 u16 hpctl1 = snd_soc_read(codec, WM8900_REG_HPCTL1); in wm8900_hp_event()
235 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
244 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
251 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
255 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
257 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
263 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
267 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
273 snd_soc_write(codec, WM8900_REG_HPCTL1, hpctl1); in wm8900_hp_event()
278 snd_soc_write(codec, WM8900_REG_HPCTL1, 0); in wm8900_hp_event()
638 struct snd_soc_codec *codec = dai->codec; in wm8900_hw_params() local
641 reg = snd_soc_read(codec, WM8900_REG_AUDIO1) & ~0x60; in wm8900_hw_params()
659 snd_soc_write(codec, WM8900_REG_AUDIO1, reg); in wm8900_hw_params()
662 reg = snd_soc_read(codec, WM8900_REG_DACCTRL); in wm8900_hw_params()
669 snd_soc_write(codec, WM8900_REG_DACCTRL, reg); in wm8900_hw_params()
754 static int wm8900_set_fll(struct snd_soc_codec *codec, in wm8900_set_fll() argument
757 struct wm8900_priv *wm8900 = snd_soc_codec_get_drvdata(codec); in wm8900_set_fll()
764 snd_soc_update_bits(codec, WM8900_REG_POWER1, in wm8900_set_fll()
769 snd_soc_update_bits(codec, WM8900_REG_CLOCKING1, in wm8900_set_fll()
771 snd_soc_update_bits(codec, WM8900_REG_FLLCTL1, in wm8900_set_fll()
787 snd_soc_write(codec, WM8900_REG_FLLCTL1, in wm8900_set_fll()
790 snd_soc_write(codec, WM8900_REG_FLLCTL4, fll_div.n >> 5); in wm8900_set_fll()
791 snd_soc_write(codec, WM8900_REG_FLLCTL5, in wm8900_set_fll()
795 snd_soc_write(codec, WM8900_REG_FLLCTL2, in wm8900_set_fll()
797 snd_soc_write(codec, WM8900_REG_FLLCTL3, fll_div.k & 0xff); in wm8900_set_fll()
799 snd_soc_write(codec, WM8900_REG_FLLCTL2, 0); in wm8900_set_fll()
802 snd_soc_write(codec, WM8900_REG_FLLCTL6, in wm8900_set_fll()
805 snd_soc_write(codec, WM8900_REG_FLLCTL6, 0); in wm8900_set_fll()
807 snd_soc_update_bits(codec, WM8900_REG_POWER1, in wm8900_set_fll()
812 snd_soc_update_bits(codec, WM8900_REG_CLOCKING1, in wm8900_set_fll()
821 return wm8900_set_fll(codec_dai->codec, pll_id, freq_in, freq_out); in wm8900_set_dai_pll()
827 struct snd_soc_codec *codec = codec_dai->codec; in wm8900_set_dai_clkdiv() local
831 snd_soc_update_bits(codec, WM8900_REG_CLOCKING1, in wm8900_set_dai_clkdiv()
835 snd_soc_update_bits(codec, WM8900_REG_CLOCKING1, in wm8900_set_dai_clkdiv()
839 snd_soc_update_bits(codec, WM8900_REG_AUDIO4, in wm8900_set_dai_clkdiv()
843 snd_soc_update_bits(codec, WM8900_REG_AUDIO3, in wm8900_set_dai_clkdiv()
847 snd_soc_update_bits(codec, WM8900_REG_CLOCKING2, in wm8900_set_dai_clkdiv()
851 snd_soc_update_bits(codec, WM8900_REG_CLOCKING2, in wm8900_set_dai_clkdiv()
855 snd_soc_update_bits(codec, WM8900_REG_DACCTRL, in wm8900_set_dai_clkdiv()
869 struct snd_soc_codec *codec = codec_dai->codec; in wm8900_set_dai_fmt() local
872 clocking1 = snd_soc_read(codec, WM8900_REG_CLOCKING1); in wm8900_set_dai_fmt()
873 aif1 = snd_soc_read(codec, WM8900_REG_AUDIO1); in wm8900_set_dai_fmt()
874 aif3 = snd_soc_read(codec, WM8900_REG_AUDIO3); in wm8900_set_dai_fmt()
875 aif4 = snd_soc_read(codec, WM8900_REG_AUDIO4); in wm8900_set_dai_fmt()
971 snd_soc_write(codec, WM8900_REG_CLOCKING1, clocking1); in wm8900_set_dai_fmt()
972 snd_soc_write(codec, WM8900_REG_AUDIO1, aif1); in wm8900_set_dai_fmt()
973 snd_soc_write(codec, WM8900_REG_AUDIO3, aif3); in wm8900_set_dai_fmt()
974 snd_soc_write(codec, WM8900_REG_AUDIO4, aif4); in wm8900_set_dai_fmt()
981 struct snd_soc_codec *codec = codec_dai->codec; in wm8900_digital_mute() local
984 reg = snd_soc_read(codec, WM8900_REG_DACCTRL); in wm8900_digital_mute()
991 snd_soc_write(codec, WM8900_REG_DACCTRL, reg); in wm8900_digital_mute()
1031 static int wm8900_set_bias_level(struct snd_soc_codec *codec, in wm8900_set_bias_level() argument
1039 snd_soc_update_bits(codec, WM8900_REG_GPIO, in wm8900_set_bias_level()
1042 snd_soc_update_bits(codec, WM8900_REG_ADDCTL, in wm8900_set_bias_level()
1052 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { in wm8900_set_bias_level()
1054 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1058 snd_soc_write(codec, WM8900_REG_ADDCTL, in wm8900_set_bias_level()
1063 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1070 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1074 snd_soc_write(codec, WM8900_REG_ADDCTL, 0); in wm8900_set_bias_level()
1076 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1080 reg = snd_soc_read(codec, WM8900_REG_POWER1); in wm8900_set_bias_level()
1081 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1084 snd_soc_write(codec, WM8900_REG_POWER2, in wm8900_set_bias_level()
1086 snd_soc_write(codec, WM8900_REG_POWER3, 0); in wm8900_set_bias_level()
1091 reg = snd_soc_read(codec, WM8900_REG_POWER1); in wm8900_set_bias_level()
1092 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1094 snd_soc_write(codec, WM8900_REG_ADDCTL, in wm8900_set_bias_level()
1099 snd_soc_write(codec, WM8900_REG_POWER1, in wm8900_set_bias_level()
1104 snd_soc_write(codec, WM8900_REG_HPCTL1, 0); in wm8900_set_bias_level()
1107 snd_soc_write(codec, WM8900_REG_ADDCTL, 0); in wm8900_set_bias_level()
1108 snd_soc_write(codec, WM8900_REG_POWER1, 0); in wm8900_set_bias_level()
1109 snd_soc_write(codec, WM8900_REG_POWER2, 0); in wm8900_set_bias_level()
1110 snd_soc_write(codec, WM8900_REG_POWER3, 0); in wm8900_set_bias_level()
1116 snd_soc_write(codec, WM8900_REG_POWER2, in wm8900_set_bias_level()
1123 static int wm8900_suspend(struct snd_soc_codec *codec) in wm8900_suspend() argument
1125 struct wm8900_priv *wm8900 = snd_soc_codec_get_drvdata(codec); in wm8900_suspend()
1131 ret = wm8900_set_fll(codec, 0, 0, 0); in wm8900_suspend()
1133 dev_err(codec->dev, "Failed to stop FLL\n"); in wm8900_suspend()
1140 snd_soc_codec_force_bias_level(codec, SND_SOC_BIAS_OFF); in wm8900_suspend()
1145 static int wm8900_resume(struct snd_soc_codec *codec) in wm8900_resume() argument
1147 struct wm8900_priv *wm8900 = snd_soc_codec_get_drvdata(codec); in wm8900_resume()
1150 wm8900_reset(codec); in wm8900_resume()
1154 dev_err(codec->dev, "Failed to restore cache: %d\n", ret); in wm8900_resume()
1158 snd_soc_codec_force_bias_level(codec, SND_SOC_BIAS_STANDBY); in wm8900_resume()
1168 ret = wm8900_set_fll(codec, 0, fll_in, fll_out); in wm8900_resume()
1170 dev_err(codec->dev, "Failed to restart FLL\n"); in wm8900_resume()
1178 static int wm8900_probe(struct snd_soc_codec *codec) in wm8900_probe() argument
1182 reg = snd_soc_read(codec, WM8900_REG_ID); in wm8900_probe()
1184 dev_err(codec->dev, "Device is not a WM8900 - ID %x\n", reg); in wm8900_probe()
1188 wm8900_reset(codec); in wm8900_probe()
1191 snd_soc_codec_force_bias_level(codec, SND_SOC_BIAS_STANDBY); in wm8900_probe()
1194 snd_soc_update_bits(codec, WM8900_REG_LINVOL, 0x100, 0x100); in wm8900_probe()
1195 snd_soc_update_bits(codec, WM8900_REG_RINVOL, 0x100, 0x100); in wm8900_probe()
1196 snd_soc_update_bits(codec, WM8900_REG_LOUT1CTL, 0x100, 0x100); in wm8900_probe()
1197 snd_soc_update_bits(codec, WM8900_REG_ROUT1CTL, 0x100, 0x100); in wm8900_probe()
1198 snd_soc_update_bits(codec, WM8900_REG_LOUT2CTL, 0x100, 0x100); in wm8900_probe()
1199 snd_soc_update_bits(codec, WM8900_REG_ROUT2CTL, 0x100, 0x100); in wm8900_probe()
1200 snd_soc_update_bits(codec, WM8900_REG_LDAC_DV, 0x100, 0x100); in wm8900_probe()
1201 snd_soc_update_bits(codec, WM8900_REG_RDAC_DV, 0x100, 0x100); in wm8900_probe()
1202 snd_soc_update_bits(codec, WM8900_REG_LADC_DV, 0x100, 0x100); in wm8900_probe()
1203 snd_soc_update_bits(codec, WM8900_REG_RADC_DV, 0x100, 0x100); in wm8900_probe()
1206 snd_soc_write(codec, WM8900_REG_OUTBIASCTL, 0x81); in wm8900_probe()