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,
233 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in wm8753_get_dai() local
234 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_get_dai()
243 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol); in wm8753_set_dai() local
244 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_set_dai()
250 if (snd_soc_codec_is_active(codec)) in wm8753_set_dai()
253 ioctl = snd_soc_read(codec, WM8753_IOCTL); in wm8753_set_dai()
261 snd_soc_write(codec, WM8753_IOCTL, ioctl); in wm8753_set_dai()
264 wm8753_hifi_write_dai_fmt(codec, wm8753->hifi_fmt); in wm8753_set_dai()
265 wm8753_voice_write_dai_fmt(codec, wm8753->voice_fmt); in wm8753_set_dai()
748 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_set_dai_pll() local
756 reg = snd_soc_read(codec, WM8753_CLOCK) & 0xffef; in wm8753_set_dai_pll()
760 reg = snd_soc_read(codec, WM8753_CLOCK) & 0xfff7; in wm8753_set_dai_pll()
765 snd_soc_write(codec, WM8753_PLL1CTL1 + offset, 0x0026); in wm8753_set_dai_pll()
766 snd_soc_write(codec, WM8753_CLOCK, reg); in wm8753_set_dai_pll()
777 snd_soc_write(codec, WM8753_PLL1CTL2 + offset, value); in wm8753_set_dai_pll()
781 snd_soc_write(codec, WM8753_PLL1CTL3 + offset, value); in wm8753_set_dai_pll()
785 snd_soc_write(codec, WM8753_PLL1CTL4 + offset, value); in wm8753_set_dai_pll()
788 snd_soc_write(codec, WM8753_PLL1CTL1 + offset, 0x0027 | in wm8753_set_dai_pll()
790 snd_soc_write(codec, WM8753_CLOCK, reg | enable); in wm8753_set_dai_pll()
869 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_set_dai_sysclk() local
870 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_set_dai_sysclk()
893 static int wm8753_vdac_adc_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_vdac_adc_set_dai_fmt() argument
896 u16 voice = snd_soc_read(codec, WM8753_PCM) & 0x01ec; in wm8753_vdac_adc_set_dai_fmt()
918 snd_soc_write(codec, WM8753_PCM, voice); in wm8753_vdac_adc_set_dai_fmt()
929 struct snd_soc_codec *codec = dai->codec; in wm8753_pcm_hw_params() local
930 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_pcm_hw_params()
931 u16 voice = snd_soc_read(codec, WM8753_PCM) & 0x01f3; in wm8753_pcm_hw_params()
932 u16 srate = snd_soc_read(codec, WM8753_SRATE1) & 0x017f; in wm8753_pcm_hw_params()
952 snd_soc_write(codec, WM8753_SRATE1, srate); in wm8753_pcm_hw_params()
954 snd_soc_write(codec, WM8753_PCM, voice); in wm8753_pcm_hw_params()
961 static int wm8753_pcm_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_pcm_set_dai_fmt() argument
966 voice = snd_soc_read(codec, WM8753_PCM) & 0x011f; in wm8753_pcm_set_dai_fmt()
967 ioctl = snd_soc_read(codec, WM8753_IOCTL) & 0x015d; in wm8753_pcm_set_dai_fmt()
1021 snd_soc_write(codec, WM8753_PCM, voice); in wm8753_pcm_set_dai_fmt()
1022 snd_soc_write(codec, WM8753_IOCTL, ioctl); in wm8753_pcm_set_dai_fmt()
1029 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_set_dai_clkdiv() local
1034 reg = snd_soc_read(codec, WM8753_CLOCK) & 0x003f; in wm8753_set_dai_clkdiv()
1035 snd_soc_write(codec, WM8753_CLOCK, reg | div); in wm8753_set_dai_clkdiv()
1038 reg = snd_soc_read(codec, WM8753_SRATE2) & 0x01c7; in wm8753_set_dai_clkdiv()
1039 snd_soc_write(codec, WM8753_SRATE2, reg | div); in wm8753_set_dai_clkdiv()
1042 reg = snd_soc_read(codec, WM8753_SRATE2) & 0x003f; in wm8753_set_dai_clkdiv()
1043 snd_soc_write(codec, WM8753_SRATE2, reg | div); in wm8753_set_dai_clkdiv()
1054 static int wm8753_hdac_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_hdac_set_dai_fmt() argument
1057 u16 hifi = snd_soc_read(codec, WM8753_HIFI) & 0x01e0; in wm8753_hdac_set_dai_fmt()
1079 snd_soc_write(codec, WM8753_HIFI, hifi); in wm8753_hdac_set_dai_fmt()
1086 static int wm8753_i2s_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_i2s_set_dai_fmt() argument
1091 hifi = snd_soc_read(codec, WM8753_HIFI) & 0x011f; in wm8753_i2s_set_dai_fmt()
1092 ioctl = snd_soc_read(codec, WM8753_IOCTL) & 0x00ae; in wm8753_i2s_set_dai_fmt()
1146 snd_soc_write(codec, WM8753_HIFI, hifi); in wm8753_i2s_set_dai_fmt()
1147 snd_soc_write(codec, WM8753_IOCTL, ioctl); in wm8753_i2s_set_dai_fmt()
1158 struct snd_soc_codec *codec = dai->codec; in wm8753_i2s_hw_params() local
1159 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_i2s_hw_params()
1160 u16 srate = snd_soc_read(codec, WM8753_SRATE1) & 0x01c0; in wm8753_i2s_hw_params()
1161 u16 hifi = snd_soc_read(codec, WM8753_HIFI) & 0x01f3; in wm8753_i2s_hw_params()
1170 snd_soc_write(codec, WM8753_SRATE1, srate | (coeff_div[coeff].sr << 1) | in wm8753_i2s_hw_params()
1188 snd_soc_write(codec, WM8753_HIFI, hifi); in wm8753_i2s_hw_params()
1192 static int wm8753_mode1v_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode1v_set_dai_fmt() argument
1198 clock = snd_soc_read(codec, WM8753_CLOCK) & 0xfffb; in wm8753_mode1v_set_dai_fmt()
1199 snd_soc_write(codec, WM8753_CLOCK, clock); in wm8753_mode1v_set_dai_fmt()
1201 return wm8753_vdac_adc_set_dai_fmt(codec, fmt); in wm8753_mode1v_set_dai_fmt()
1204 static int wm8753_mode1h_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode1h_set_dai_fmt() argument
1207 return wm8753_hdac_set_dai_fmt(codec, fmt); in wm8753_mode1h_set_dai_fmt()
1210 static int wm8753_mode2_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode2_set_dai_fmt() argument
1216 clock = snd_soc_read(codec, WM8753_CLOCK) & 0xfffb; in wm8753_mode2_set_dai_fmt()
1217 snd_soc_write(codec, WM8753_CLOCK, clock); in wm8753_mode2_set_dai_fmt()
1219 return wm8753_vdac_adc_set_dai_fmt(codec, fmt); in wm8753_mode2_set_dai_fmt()
1222 static int wm8753_mode3_4_set_dai_fmt(struct snd_soc_codec *codec, in wm8753_mode3_4_set_dai_fmt() argument
1228 clock = snd_soc_read(codec, WM8753_CLOCK) & 0xfffb; in wm8753_mode3_4_set_dai_fmt()
1229 snd_soc_write(codec, WM8753_CLOCK, clock | 0x4); in wm8753_mode3_4_set_dai_fmt()
1231 if (wm8753_hdac_set_dai_fmt(codec, fmt) < 0) in wm8753_mode3_4_set_dai_fmt()
1233 return wm8753_vdac_adc_set_dai_fmt(codec, fmt); in wm8753_mode3_4_set_dai_fmt()
1236 static int wm8753_hifi_write_dai_fmt(struct snd_soc_codec *codec, in wm8753_hifi_write_dai_fmt() argument
1239 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_hifi_write_dai_fmt()
1244 ret = wm8753_mode1h_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1247 ret = wm8753_mode2_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1251 ret = wm8753_mode3_4_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1259 return wm8753_i2s_set_dai_fmt(codec, fmt); in wm8753_hifi_write_dai_fmt()
1265 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_hifi_set_dai_fmt() local
1266 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_hifi_set_dai_fmt()
1270 return wm8753_hifi_write_dai_fmt(codec, fmt); in wm8753_hifi_set_dai_fmt()
1273 static int wm8753_voice_write_dai_fmt(struct snd_soc_codec *codec, in wm8753_voice_write_dai_fmt() argument
1276 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_voice_write_dai_fmt()
1282 ret = wm8753_mode1v_set_dai_fmt(codec, fmt); in wm8753_voice_write_dai_fmt()
1285 ret = wm8753_pcm_set_dai_fmt(codec, fmt); in wm8753_voice_write_dai_fmt()
1295 struct snd_soc_codec *codec = codec_dai->codec; in wm8753_voice_set_dai_fmt() local
1296 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_voice_set_dai_fmt()
1300 return wm8753_voice_write_dai_fmt(codec, fmt); in wm8753_voice_set_dai_fmt()
1305 struct snd_soc_codec *codec = dai->codec; in wm8753_mute() local
1306 u16 mute_reg = snd_soc_read(codec, WM8753_DAC) & 0xfff7; in wm8753_mute()
1307 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_mute()
1312 if (!snd_soc_codec_is_active(codec)) in wm8753_mute()
1313 snd_soc_write(codec, WM8753_DAC, mute_reg | 0x8); in wm8753_mute()
1316 snd_soc_write(codec, WM8753_DAC, mute_reg | 0x8); in wm8753_mute()
1318 snd_soc_write(codec, WM8753_DAC, mute_reg); in wm8753_mute()
1333 static int wm8753_set_bias_level(struct snd_soc_codec *codec, in wm8753_set_bias_level() argument
1336 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_set_bias_level()
1337 u16 pwr_reg = snd_soc_read(codec, WM8753_PWR1) & 0xfe3e; in wm8753_set_bias_level()
1342 snd_soc_write(codec, WM8753_PWR1, pwr_reg | 0x00c0); in wm8753_set_bias_level()
1349 if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) { in wm8753_set_bias_level()
1351 snd_soc_write(codec, WM8753_PWR1, pwr_reg | 0x01c1); in wm8753_set_bias_level()
1356 snd_soc_write(codec, WM8753_PWR1, pwr_reg | 0x0141); in wm8753_set_bias_level()
1361 snd_soc_write(codec, WM8753_PWR1, 0x0001); in wm8753_set_bias_level()
1443 static int wm8753_resume(struct snd_soc_codec *codec) in wm8753_resume() argument
1445 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_resume()
1452 static int wm8753_probe(struct snd_soc_codec *codec) in wm8753_probe() argument
1454 struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); in wm8753_probe()
1459 ret = wm8753_reset(codec); in wm8753_probe()
1461 dev_err(codec->dev, "Failed to issue reset: %d\n", ret); in wm8753_probe()
1468 snd_soc_update_bits(codec, WM8753_LDAC, 0x0100, 0x0100); in wm8753_probe()
1469 snd_soc_update_bits(codec, WM8753_RDAC, 0x0100, 0x0100); in wm8753_probe()
1470 snd_soc_update_bits(codec, WM8753_LADC, 0x0100, 0x0100); in wm8753_probe()
1471 snd_soc_update_bits(codec, WM8753_RADC, 0x0100, 0x0100); in wm8753_probe()
1472 snd_soc_update_bits(codec, WM8753_LOUT1V, 0x0100, 0x0100); in wm8753_probe()
1473 snd_soc_update_bits(codec, WM8753_ROUT1V, 0x0100, 0x0100); in wm8753_probe()
1474 snd_soc_update_bits(codec, WM8753_LOUT2V, 0x0100, 0x0100); in wm8753_probe()
1475 snd_soc_update_bits(codec, WM8753_ROUT2V, 0x0100, 0x0100); in wm8753_probe()
1476 snd_soc_update_bits(codec, WM8753_LINVOL, 0x0100, 0x0100); in wm8753_probe()
1477 snd_soc_update_bits(codec, WM8753_RINVOL, 0x0100, 0x0100); in wm8753_probe()