Lines Matching refs:codec
73 struct snd_soc_codec *codec; member
91 struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); in tas2552_post_event() local
95 snd_soc_write(codec, TAS2552_RESERVED_0D, 0xc0); in tas2552_post_event()
96 snd_soc_update_bits(codec, TAS2552_LIMIT_RATE_HYS, (1 << 5), in tas2552_post_event()
98 snd_soc_update_bits(codec, TAS2552_CFG_2, 1, 0); in tas2552_post_event()
99 snd_soc_update_bits(codec, TAS2552_CFG_1, TAS2552_SWS, 0); in tas2552_post_event()
102 snd_soc_update_bits(codec, TAS2552_CFG_1, TAS2552_SWS, in tas2552_post_event()
104 snd_soc_update_bits(codec, TAS2552_CFG_2, 1, 1); in tas2552_post_event()
105 snd_soc_update_bits(codec, TAS2552_LIMIT_RATE_HYS, (1 << 5), 0); in tas2552_post_event()
106 snd_soc_write(codec, TAS2552_RESERVED_0D, 0xbe); in tas2552_post_event()
152 if (!tas2552->codec) in tas2552_sw_shutdown()
158 snd_soc_update_bits(tas2552->codec, TAS2552_CFG_1, TAS2552_SWS, in tas2552_sw_shutdown()
163 static int tas2552_setup_pll(struct snd_soc_codec *codec, in tas2552_setup_pll() argument
166 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_setup_pll()
180 pll_enable = snd_soc_read(codec, TAS2552_CFG_2) & TAS2552_PLL_ENABLE; in tas2552_setup_pll()
181 snd_soc_update_bits(codec, TAS2552_CFG_2, TAS2552_PLL_ENABLE, 0); in tas2552_setup_pll()
188 snd_soc_update_bits(codec, TAS2552_PLL_CTRL_2, in tas2552_setup_pll()
198 u8 p = snd_soc_read(codec, TAS2552_PLL_CTRL_1); in tas2552_setup_pll()
221 snd_soc_update_bits(codec, TAS2552_CFG_1, TAS2552_PLL_SRC_MASK, in tas2552_setup_pll()
224 snd_soc_update_bits(codec, TAS2552_PLL_CTRL_1, in tas2552_setup_pll()
227 snd_soc_write(codec, TAS2552_PLL_CTRL_2, in tas2552_setup_pll()
229 snd_soc_write(codec, TAS2552_PLL_CTRL_3, in tas2552_setup_pll()
234 snd_soc_update_bits(codec, TAS2552_CFG_2, TAS2552_PLL_ENABLE, in tas2552_setup_pll()
244 struct snd_soc_codec *codec = dai->codec; in tas2552_hw_params() local
245 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_hw_params()
267 dev_err(codec->dev, "Not supported sample size: %d\n", in tas2552_hw_params()
281 snd_soc_update_bits(codec, TAS2552_SER_CTRL_1, in tas2552_hw_params()
316 dev_err(codec->dev, "Not supported sample rate: %d\n", in tas2552_hw_params()
321 snd_soc_update_bits(codec, TAS2552_CFG_3, TAS2552_WCLK_FREQ_MASK, in tas2552_hw_params()
324 return tas2552_setup_pll(codec, params); in tas2552_hw_params()
333 struct snd_soc_codec *codec = dai->codec; in tas2552_prepare() local
334 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_prepare()
344 snd_soc_write(codec, TAS2552_SER_CTRL_2, delay); in tas2552_prepare()
351 struct snd_soc_codec *codec = dai->codec; in tas2552_set_dai_fmt() local
352 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_set_dai_fmt()
369 dev_vdbg(codec->dev, "DAI Format master is not found\n"); in tas2552_set_dai_fmt()
388 dev_vdbg(codec->dev, "DAI Format is not found\n"); in tas2552_set_dai_fmt()
393 snd_soc_update_bits(codec, TAS2552_SER_CTRL_1, TAS2552_DAI_FMT_MASK, in tas2552_set_dai_fmt()
401 struct snd_soc_codec *codec = dai->codec; in tas2552_set_dai_sysclk() local
402 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_set_dai_sysclk()
410 dev_warn(codec->dev, "Out of range PLL_CLKIN: %u\n", in tas2552_set_dai_sysclk()
435 dev_err(codec->dev, "Invalid clk id: %d\n", clk_id); in tas2552_set_dai_sysclk()
439 snd_soc_update_bits(codec, reg, mask, val); in tas2552_set_dai_sysclk()
448 struct snd_soc_codec *codec = dai->codec; in tas2552_set_dai_tdm_slot() local
449 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_set_dai_tdm_slot()
453 dev_err(codec->dev, "tx masks need to be non 0\n"); in tas2552_set_dai_tdm_slot()
460 dev_err(codec->dev, "Invalid mask, slots must be adjacent\n"); in tas2552_set_dai_tdm_slot()
467 snd_soc_update_bits(codec, TAS2552_DOUT, in tas2552_set_dai_tdm_slot()
476 struct snd_soc_codec *codec = dai->codec; in tas2552_mute() local
481 snd_soc_update_bits(codec, TAS2552_CFG_1, TAS2552_MUTE, cfg1_reg); in tas2552_mute()
570 static int tas2552_codec_probe(struct snd_soc_codec *codec) in tas2552_codec_probe() argument
572 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_codec_probe()
575 tas2552->codec = codec; in tas2552_codec_probe()
581 dev_err(codec->dev, "Failed to enable supplies: %d\n", in tas2552_codec_probe()
588 ret = pm_runtime_get_sync(codec->dev); in tas2552_codec_probe()
590 dev_err(codec->dev, "Enabling device failed: %d\n", in tas2552_codec_probe()
595 snd_soc_update_bits(codec, TAS2552_CFG_1, TAS2552_MUTE, TAS2552_MUTE); in tas2552_codec_probe()
596 snd_soc_write(codec, TAS2552_CFG_3, TAS2552_I2S_OUT_SEL | in tas2552_codec_probe()
598 snd_soc_write(codec, TAS2552_OUTPUT_DATA, in tas2552_codec_probe()
601 snd_soc_write(codec, TAS2552_BOOST_APT_CTRL, TAS2552_APT_DELAY_200 | in tas2552_codec_probe()
604 snd_soc_write(codec, TAS2552_CFG_2, TAS2552_BOOST_EN | TAS2552_APT_EN | in tas2552_codec_probe()
617 static int tas2552_codec_remove(struct snd_soc_codec *codec) in tas2552_codec_remove() argument
619 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_codec_remove()
621 pm_runtime_put(codec->dev); in tas2552_codec_remove()
629 static int tas2552_suspend(struct snd_soc_codec *codec) in tas2552_suspend() argument
631 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_suspend()
638 dev_err(codec->dev, "Failed to disable supplies: %d\n", in tas2552_suspend()
643 static int tas2552_resume(struct snd_soc_codec *codec) in tas2552_resume() argument
645 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_resume()
652 dev_err(codec->dev, "Failed to enable supplies: %d\n", in tas2552_resume()