Lines Matching refs:tas2552

148 static void tas2552_sw_shutdown(struct tas2552_data *tas2552, int sw_shutdown)  in tas2552_sw_shutdown()  argument
152 if (!tas2552->codec) in tas2552_sw_shutdown()
158 snd_soc_update_bits(tas2552->codec, TAS2552_CFG_1, TAS2552_SWS, in tas2552_sw_shutdown()
166 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_setup_pll() local
169 unsigned int pll_clkin = tas2552->pll_clkin; in tas2552_setup_pll()
173 if (tas2552->pll_clk_id != TAS2552_PLL_CLKIN_BCLK) in tas2552_setup_pll()
177 pll_clkin += tas2552->tdm_delay; in tas2552_setup_pll()
197 u8 pll_sel = (tas2552->pll_clk_id << 3) & TAS2552_PLL_SRC_MASK; in tas2552_setup_pll()
208 if (tas2552->pll_clk_id == TAS2552_PLL_CLKIN_BCLK) { in tas2552_setup_pll()
214 pll_clkin += tas2552->tdm_delay; in tas2552_setup_pll()
245 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_hw_params() local
252 cpf = 32 + tas2552->tdm_delay; in tas2552_hw_params()
256 cpf = 64 + tas2552->tdm_delay; in tas2552_hw_params()
260 cpf = 64 + tas2552->tdm_delay; in tas2552_hw_params()
264 cpf = 64 + tas2552->tdm_delay; in tas2552_hw_params()
334 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_prepare() local
338 if (tas2552->dai_fmt == SND_SOC_DAIFMT_DSP_A) in tas2552_prepare()
339 delay += (tas2552->tdm_delay + 1); in tas2552_prepare()
340 else if (tas2552->dai_fmt == SND_SOC_DAIFMT_DSP_B) in tas2552_prepare()
341 delay += tas2552->tdm_delay; in tas2552_prepare()
352 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_set_dai_fmt() local
391 tas2552->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK; in tas2552_set_dai_fmt()
402 struct tas2552_data *tas2552 = dev_get_drvdata(codec->dev); in tas2552_set_dai_sysclk() local
421 tas2552->pll_clk_id = clk_id; in tas2552_set_dai_sysclk()
422 tas2552->pll_clkin = freq; in tas2552_set_dai_sysclk()
431 tas2552->pdm_clk_id = clk_id; in tas2552_set_dai_sysclk()
432 tas2552->pdm_clk = freq; in tas2552_set_dai_sysclk()
449 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_set_dai_tdm_slot() local
464 tas2552->tdm_delay = lsb * slot_width; in tas2552_set_dai_tdm_slot()
489 struct tas2552_data *tas2552 = dev_get_drvdata(dev); in tas2552_runtime_suspend() local
491 tas2552_sw_shutdown(tas2552, 1); in tas2552_runtime_suspend()
493 regcache_cache_only(tas2552->regmap, true); in tas2552_runtime_suspend()
494 regcache_mark_dirty(tas2552->regmap); in tas2552_runtime_suspend()
496 gpiod_set_value(tas2552->enable_gpio, 0); in tas2552_runtime_suspend()
503 struct tas2552_data *tas2552 = dev_get_drvdata(dev); in tas2552_runtime_resume() local
505 gpiod_set_value(tas2552->enable_gpio, 1); in tas2552_runtime_resume()
507 tas2552_sw_shutdown(tas2552, 0); in tas2552_runtime_resume()
509 regcache_cache_only(tas2552->regmap, false); in tas2552_runtime_resume()
510 regcache_sync(tas2552->regmap); in tas2552_runtime_resume()
572 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_codec_probe() local
575 tas2552->codec = codec; in tas2552_codec_probe()
577 ret = regulator_bulk_enable(ARRAY_SIZE(tas2552->supplies), in tas2552_codec_probe()
578 tas2552->supplies); in tas2552_codec_probe()
586 gpiod_set_value(tas2552->enable_gpio, 1); in tas2552_codec_probe()
610 gpiod_set_value(tas2552->enable_gpio, 0); in tas2552_codec_probe()
612 regulator_bulk_disable(ARRAY_SIZE(tas2552->supplies), in tas2552_codec_probe()
613 tas2552->supplies); in tas2552_codec_probe()
619 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_codec_remove() local
623 gpiod_set_value(tas2552->enable_gpio, 0); in tas2552_codec_remove()
631 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_suspend() local
634 ret = regulator_bulk_disable(ARRAY_SIZE(tas2552->supplies), in tas2552_suspend()
635 tas2552->supplies); in tas2552_suspend()
645 struct tas2552_data *tas2552 = snd_soc_codec_get_drvdata(codec); in tas2552_resume() local
648 ret = regulator_bulk_enable(ARRAY_SIZE(tas2552->supplies), in tas2552_resume()
649 tas2552->supplies); in tas2552_resume()