Lines Matching defs:pcm3168a

22 #include "pcm3168a.h"
276 static int pcm3168a_reset(struct pcm3168a_priv *pcm3168a)
280 ret = regmap_write(pcm3168a->regmap, PCM3168A_RST_SMODE, 0);
285 msleep(DIV_ROUND_UP(3846 * 1000, pcm3168a->sysclk));
287 return regmap_write(pcm3168a->regmap, PCM3168A_RST_SMODE,
294 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component);
296 regmap_write(pcm3168a->regmap, PCM3168A_DAC_MUTE, mute ? 0xff : 0);
304 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(dai->component);
317 ret = clk_set_rate(pcm3168a->scki, freq);
321 pcm3168a->sysclk = freq;
329 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component);
330 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id];
358 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component);
359 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id];
406 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component);
407 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id];
441 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component);
442 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id];
465 ratio = pcm3168a->sysclk / params_rate(params);
518 * If pcm3168a->tdm_slots is not set or set to more than 2 (8/6 usually)
520 * If pcm3168a->tdm_slots is set to 2 then DIN1/2/3/4 and DOUT1/2/3 is
560 regmap_update_bits(pcm3168a->regmap, reg, mask,
603 .name = "pcm3168a-dac",
615 .name = "pcm3168a-adc",
723 struct pcm3168a_priv *pcm3168a;
726 pcm3168a = devm_kzalloc(dev, sizeof(*pcm3168a), GFP_KERNEL);
727 if (pcm3168a == NULL)
730 dev_set_drvdata(dev, pcm3168a);
734 * as the same reset line might be connected to multiple pcm3168a codec
740 pcm3168a->gpio_rst = devm_gpiod_get_optional(dev, "reset",
743 if (IS_ERR(pcm3168a->gpio_rst))
744 return dev_err_probe(dev, PTR_ERR(pcm3168a->gpio_rst),
747 pcm3168a->scki = devm_clk_get(dev, "scki");
748 if (IS_ERR(pcm3168a->scki))
749 return dev_err_probe(dev, PTR_ERR(pcm3168a->scki),
752 ret = clk_prepare_enable(pcm3168a->scki);
758 pcm3168a->sysclk = clk_get_rate(pcm3168a->scki);
760 for (i = 0; i < ARRAY_SIZE(pcm3168a->supplies); i++)
761 pcm3168a->supplies[i].supply = pcm3168a_supply_names[i];
764 ARRAY_SIZE(pcm3168a->supplies), pcm3168a->supplies);
770 ret = regulator_bulk_enable(ARRAY_SIZE(pcm3168a->supplies),
771 pcm3168a->supplies);
777 pcm3168a->regmap = regmap;
778 if (IS_ERR(pcm3168a->regmap)) {
779 ret = PTR_ERR(pcm3168a->regmap);
784 if (pcm3168a->gpio_rst) {
789 msleep(DIV_ROUND_UP(3846 * 1000, pcm3168a->sysclk));
791 ret = pcm3168a_reset(pcm3168a);
802 memcpy(pcm3168a->dai_drv, pcm3168a_dais, sizeof(pcm3168a->dai_drv));
804 pcm3168a->dai_drv,
805 ARRAY_SIZE(pcm3168a->dai_drv));
814 regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies),
815 pcm3168a->supplies);
817 clk_disable_unprepare(pcm3168a->scki);
825 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);
827 regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies),
828 pcm3168a->supplies);
829 clk_disable_unprepare(pcm3168a->scki);
834 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);
842 gpiod_set_value_cansleep(pcm3168a->gpio_rst, 1);
853 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);
856 ret = clk_prepare_enable(pcm3168a->scki);
862 ret = regulator_bulk_enable(ARRAY_SIZE(pcm3168a->supplies),
863 pcm3168a->supplies);
869 ret = pcm3168a_reset(pcm3168a);
875 regcache_cache_only(pcm3168a->regmap, false);
877 regcache_mark_dirty(pcm3168a->regmap);
879 ret = regcache_sync(pcm3168a->regmap);
888 regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies),
889 pcm3168a->supplies);
891 clk_disable_unprepare(pcm3168a->scki);
898 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev);
900 regcache_cache_only(pcm3168a->regmap, true);