Lines Matching refs:codec

59 static int wm8753_hifi_write_dai_fmt(struct snd_soc_codec *codec,
61 static int wm8753_voice_write_dai_fmt(struct snd_soc_codec *codec,
238 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in wm8753_get_dai() local
239 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_get_dai()
248 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in wm8753_set_dai() local
249 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_set_dai()
255 if (snd_soc_codec_is_active(codec)) in wm8753_set_dai()
258 ioctl = snd_soc_read(codec, WM8753_IOCTL); in wm8753_set_dai()
266 snd_soc_write(codec, WM8753_IOCTL, ioctl); in wm8753_set_dai()
269 wm8753_hifi_write_dai_fmt(codec, wm8753->hifi_fmt); in wm8753_set_dai()
270 wm8753_voice_write_dai_fmt(codec, wm8753->voice_fmt); in wm8753_set_dai()
754 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_set_dai_pll() local
762 reg = snd_soc_read(codec, WM8753_CLOCK) & 0xffef; in wm8753_set_dai_pll()
766 reg = snd_soc_read(codec, WM8753_CLOCK) & 0xfff7; in wm8753_set_dai_pll()
771 snd_soc_write(codec, WM8753_PLL1CTL1 + offset, 0x0026); in wm8753_set_dai_pll()
772 snd_soc_write(codec, WM8753_CLOCK, reg); in wm8753_set_dai_pll()
783 snd_soc_write(codec, WM8753_PLL1CTL2 + offset, value); in wm8753_set_dai_pll()
787 snd_soc_write(codec, WM8753_PLL1CTL3 + offset, value); in wm8753_set_dai_pll()
791 snd_soc_write(codec, WM8753_PLL1CTL4 + offset, value); in wm8753_set_dai_pll()
794 snd_soc_write(codec, WM8753_PLL1CTL1 + offset, 0x0027 | in wm8753_set_dai_pll()
796 snd_soc_write(codec, WM8753_CLOCK, reg | enable); in wm8753_set_dai_pll()
875 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_set_dai_sysclk() local
876 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_set_dai_sysclk()
899 static int wm8753_vdac_adc_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_vdac_adc_set_dai_fmt() argument
902 u16 voice = snd_soc_read(codec, WM8753_PCM) & 0x01ec; in wm8753_vdac_adc_set_dai_fmt()
924 snd_soc_write(codec, WM8753_PCM, voice); in wm8753_vdac_adc_set_dai_fmt()
935 struct snd_soc_codec *codec = dai->codec; in wm8753_pcm_hw_params() local
936 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_pcm_hw_params()
937 u16 voice = snd_soc_read(codec, WM8753_PCM) & 0x01f3; in wm8753_pcm_hw_params()
938 u16 srate = snd_soc_read(codec, WM8753_SRATE1) & 0x017f; in wm8753_pcm_hw_params()
958 snd_soc_write(codec, WM8753_SRATE1, srate); in wm8753_pcm_hw_params()
960 snd_soc_write(codec, WM8753_PCM, voice); in wm8753_pcm_hw_params()
967 static int wm8753_pcm_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_pcm_set_dai_fmt() argument
972 voice = snd_soc_read(codec, WM8753_PCM) & 0x011f; in wm8753_pcm_set_dai_fmt()
973 ioctl = snd_soc_read(codec, WM8753_IOCTL) & 0x015d; in wm8753_pcm_set_dai_fmt()
1027 snd_soc_write(codec, WM8753_PCM, voice); in wm8753_pcm_set_dai_fmt()
1028 snd_soc_write(codec, WM8753_IOCTL, ioctl); in wm8753_pcm_set_dai_fmt()
1035 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_set_dai_clkdiv() local
1040 reg = snd_soc_read(codec, WM8753_CLOCK) & 0x003f; in wm8753_set_dai_clkdiv()
1041 snd_soc_write(codec, WM8753_CLOCK, reg | div); in wm8753_set_dai_clkdiv()
1044 reg = snd_soc_read(codec, WM8753_SRATE2) & 0x01c7; in wm8753_set_dai_clkdiv()
1045 snd_soc_write(codec, WM8753_SRATE2, reg | div); in wm8753_set_dai_clkdiv()
1048 reg = snd_soc_read(codec, WM8753_SRATE2) & 0x003f; in wm8753_set_dai_clkdiv()
1049 snd_soc_write(codec, WM8753_SRATE2, reg | div); in wm8753_set_dai_clkdiv()
1060 static int wm8753_hdac_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_hdac_set_dai_fmt() argument
1063 u16 hifi = snd_soc_read(codec, WM8753_HIFI) & 0x01e0; in wm8753_hdac_set_dai_fmt()
1085 snd_soc_write(codec, WM8753_HIFI, hifi); in wm8753_hdac_set_dai_fmt()
1092 static int wm8753_i2s_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_i2s_set_dai_fmt() argument
1097 hifi = snd_soc_read(codec, WM8753_HIFI) & 0x011f; in wm8753_i2s_set_dai_fmt()
1098 ioctl = snd_soc_read(codec, WM8753_IOCTL) & 0x00ae; in wm8753_i2s_set_dai_fmt()
1152 snd_soc_write(codec, WM8753_HIFI, hifi); in wm8753_i2s_set_dai_fmt()
1153 snd_soc_write(codec, WM8753_IOCTL, ioctl); in wm8753_i2s_set_dai_fmt()
1164 struct snd_soc_codec *codec = dai->codec; in wm8753_i2s_hw_params() local
1165 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_i2s_hw_params()
1166 u16 srate = snd_soc_read(codec, WM8753_SRATE1) & 0x01c0; in wm8753_i2s_hw_params()
1167 u16 hifi = snd_soc_read(codec, WM8753_HIFI) & 0x01f3; in wm8753_i2s_hw_params()
1176 snd_soc_write(codec, WM8753_SRATE1, srate | (coeff_div[coeff].sr << 1) | in wm8753_i2s_hw_params()
1194 snd_soc_write(codec, WM8753_HIFI, hifi); in wm8753_i2s_hw_params()
1198 static int wm8753_mode1v_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode1v_set_dai_fmt() argument
1204 clock = snd_soc_read(codec, WM8753_CLOCK) & 0xfffb; in wm8753_mode1v_set_dai_fmt()
1205 snd_soc_write(codec, WM8753_CLOCK, clock); in wm8753_mode1v_set_dai_fmt()
1207 return wm8753_vdac_adc_set_dai_fmt(codec, fmt); in wm8753_mode1v_set_dai_fmt()
1210 static int wm8753_mode1h_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode1h_set_dai_fmt() argument
1213 return wm8753_hdac_set_dai_fmt(codec, fmt); in wm8753_mode1h_set_dai_fmt()
1216 static int wm8753_mode2_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode2_set_dai_fmt() argument
1222 clock = snd_soc_read(codec, WM8753_CLOCK) & 0xfffb; in wm8753_mode2_set_dai_fmt()
1223 snd_soc_write(codec, WM8753_CLOCK, clock); in wm8753_mode2_set_dai_fmt()
1225 return wm8753_vdac_adc_set_dai_fmt(codec, fmt); in wm8753_mode2_set_dai_fmt()
1228 static int wm8753_mode3_4_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode3_4_set_dai_fmt() argument
1234 clock = snd_soc_read(codec, WM8753_CLOCK) & 0xfffb; in wm8753_mode3_4_set_dai_fmt()
1235 snd_soc_write(codec, WM8753_CLOCK, clock | 0x4); in wm8753_mode3_4_set_dai_fmt()
1237 if (wm8753_hdac_set_dai_fmt(codec, fmt) < 0) in wm8753_mode3_4_set_dai_fmt()
1239 return wm8753_vdac_adc_set_dai_fmt(codec, fmt); in wm8753_mode3_4_set_dai_fmt()
1242 static int wm8753_hifi_write_dai_fmt(struct snd_soc_codec *codec, in wm8753_hifi_write_dai_fmt() argument
1245 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_hifi_write_dai_fmt()
1250 ret = wm8753_mode1h_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1253 ret = wm8753_mode2_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1257 ret = wm8753_mode3_4_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1265 return wm8753_i2s_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1271 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_hifi_set_dai_fmt() local
1272 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_hifi_set_dai_fmt()
1276 return wm8753_hifi_write_dai_fmt(codec, fmt); in wm8753_hifi_set_dai_fmt()
1279 static int wm8753_voice_write_dai_fmt(struct snd_soc_codec *codec, in wm8753_voice_write_dai_fmt() argument
1282 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_voice_write_dai_fmt()
1288 ret = wm8753_mode1v_set_dai_fmt(codec, fmt); in wm8753_voice_write_dai_fmt()
1291 ret = wm8753_pcm_set_dai_fmt(codec, fmt); in wm8753_voice_write_dai_fmt()
1301 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_voice_set_dai_fmt() local
1302 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_voice_set_dai_fmt()
1306 return wm8753_voice_write_dai_fmt(codec, fmt); in wm8753_voice_set_dai_fmt()
1311 struct snd_soc_codec *codec = dai->codec; in wm8753_mute() local
1312 u16 mute_reg = snd_soc_read(codec, WM8753_DAC) & 0xfff7; in wm8753_mute()
1313 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_mute()
1318 if (!snd_soc_codec_is_active(codec)) in wm8753_mute()
1319 snd_soc_write(codec, WM8753_DAC, mute_reg | 0x8); in wm8753_mute()
1322 snd_soc_write(codec, WM8753_DAC, mute_reg | 0x8); in wm8753_mute()
1324 snd_soc_write(codec, WM8753_DAC, mute_reg); in wm8753_mute()
1339 static int wm8753_set_bias_level(struct snd_soc_codec *codec, in wm8753_set_bias_level() argument
1342 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_set_bias_level()
1343 u16 pwr_reg = snd_soc_read(codec, WM8753_PWR1) & 0xfe3e; in wm8753_set_bias_level()
1348 snd_soc_write(codec, WM8753_PWR1, pwr_reg | 0x00c0); in wm8753_set_bias_level()
1355 if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) { in wm8753_set_bias_level()
1357 snd_soc_write(codec, WM8753_PWR1, pwr_reg | 0x01c1); in wm8753_set_bias_level()
1362 snd_soc_write(codec, WM8753_PWR1, pwr_reg | 0x0141); in wm8753_set_bias_level()
1367 snd_soc_write(codec, WM8753_PWR1, 0x0001); in wm8753_set_bias_level()
1370 codec->dapm.bias_level = level; in wm8753_set_bias_level()
1450 static int wm8753_resume(struct snd_soc_codec *codec) in wm8753_resume() argument
1452 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_resume()
1459 static int wm8753_probe(struct snd_soc_codec *codec) in wm8753_probe() argument
1461 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_probe()
1466 ret = wm8753_reset(codec); in wm8753_probe()
1468 dev_err(codec->dev, "Failed to issue reset: %d\n", ret); in wm8753_probe()
1475 snd_soc_update_bits(codec, WM8753_LDAC, 0x0100, 0x0100); in wm8753_probe()
1476 snd_soc_update_bits(codec, WM8753_RDAC, 0x0100, 0x0100); in wm8753_probe()
1477 snd_soc_update_bits(codec, WM8753_LADC, 0x0100, 0x0100); in wm8753_probe()
1478 snd_soc_update_bits(codec, WM8753_RADC, 0x0100, 0x0100); in wm8753_probe()
1479 snd_soc_update_bits(codec, WM8753_LOUT1V, 0x0100, 0x0100); in wm8753_probe()
1480 snd_soc_update_bits(codec, WM8753_ROUT1V, 0x0100, 0x0100); in wm8753_probe()
1481 snd_soc_update_bits(codec, WM8753_LOUT2V, 0x0100, 0x0100); in wm8753_probe()
1482 snd_soc_update_bits(codec, WM8753_ROUT2V, 0x0100, 0x0100); in wm8753_probe()
1483 snd_soc_update_bits(codec, WM8753_LINVOL, 0x0100, 0x0100); in wm8753_probe()
1484 snd_soc_update_bits(codec, WM8753_RINVOL, 0x0100, 0x0100); in wm8753_probe()