Lines Matching defs:tas2552

3  * tas2552.c - ALSA SoC Texas Instruments TAS2552 Mono Audio Amplifier
28 #include <sound/tas2552-plat.h>
29 #include <dt-bindings/sound/tas2552.h>
31 #include "tas2552.h"
140 static void tas2552_sw_shutdown(struct tas2552_data *tas2552, int sw_shutdown)
144 if (!tas2552->component)
150 snd_soc_component_update_bits(tas2552->component, TAS2552_CFG_1, TAS2552_SWS,
158 struct tas2552_data *tas2552 = dev_get_drvdata(component->dev);
161 unsigned int pll_clkin = tas2552->pll_clkin;
165 if (tas2552->pll_clk_id != TAS2552_PLL_CLKIN_BCLK)
169 pll_clkin += tas2552->tdm_delay;
189 u8 pll_sel = (tas2552->pll_clk_id << 3) & TAS2552_PLL_SRC_MASK;
203 if (tas2552->pll_clk_id == TAS2552_PLL_CLKIN_BCLK) {
209 pll_clkin += tas2552->tdm_delay;
240 struct tas2552_data *tas2552 = dev_get_drvdata(component->dev);
247 cpf = 32 + tas2552->tdm_delay;
251 cpf = 64 + tas2552->tdm_delay;
255 cpf = 64 + tas2552->tdm_delay;
259 cpf = 64 + tas2552->tdm_delay;
329 struct tas2552_data *tas2552 = snd_soc_component_get_drvdata(component);
333 if (tas2552->dai_fmt == SND_SOC_DAIFMT_DSP_A)
334 delay += (tas2552->tdm_delay + 1);
335 else if (tas2552->dai_fmt == SND_SOC_DAIFMT_DSP_B)
336 delay += tas2552->tdm_delay;
347 struct tas2552_data *tas2552 = dev_get_drvdata(component->dev);
386 tas2552->dai_fmt = fmt & SND_SOC_DAIFMT_FORMAT_MASK;
397 struct tas2552_data *tas2552 = dev_get_drvdata(component->dev);
416 tas2552->pll_clk_id = clk_id;
417 tas2552->pll_clkin = freq;
426 tas2552->pdm_clk_id = clk_id;
427 tas2552->pdm_clk = freq;
444 struct tas2552_data *tas2552 = snd_soc_component_get_drvdata(component);
459 tas2552->tdm_delay = lsb * slot_width;
484 struct tas2552_data *tas2552 = dev_get_drvdata(dev);
486 tas2552_sw_shutdown(tas2552, 1);
488 regcache_cache_only(tas2552->regmap, true);
489 regcache_mark_dirty(tas2552->regmap);
491 gpiod_set_value(tas2552->enable_gpio, 0);
498 struct tas2552_data *tas2552 = dev_get_drvdata(dev);
500 gpiod_set_value(tas2552->enable_gpio, 1);
502 tas2552_sw_shutdown(tas2552, 0);
504 regcache_cache_only(tas2552->regmap, false);
505 regcache_sync(tas2552->regmap);
533 .name = "tas2552-amplifier",
568 struct tas2552_data *tas2552 = snd_soc_component_get_drvdata(component);
571 tas2552->component = component;
573 ret = regulator_bulk_enable(ARRAY_SIZE(tas2552->supplies),
574 tas2552->supplies);
582 gpiod_set_value(tas2552->enable_gpio, 1);
607 gpiod_set_value(tas2552->enable_gpio, 0);
609 regulator_bulk_disable(ARRAY_SIZE(tas2552->supplies),
610 tas2552->supplies);
616 struct tas2552_data *tas2552 = snd_soc_component_get_drvdata(component);
620 gpiod_set_value(tas2552->enable_gpio, 0);
626 struct tas2552_data *tas2552 = snd_soc_component_get_drvdata(component);
629 ret = regulator_bulk_disable(ARRAY_SIZE(tas2552->supplies),
630 tas2552->supplies);
640 struct tas2552_data *tas2552 = snd_soc_component_get_drvdata(component);
643 ret = regulator_bulk_enable(ARRAY_SIZE(tas2552->supplies),
644 tas2552->supplies);
745 { "tas2552" },
752 { .compatible = "ti,tas2552", },
760 .name = "tas2552",