Lines Matching refs:pcm3168a

276 static int pcm3168a_reset(struct pcm3168a_priv *pcm3168a)  in pcm3168a_reset()  argument
280 ret = regmap_write(pcm3168a->regmap, PCM3168A_RST_SMODE, 0); in pcm3168a_reset()
285 msleep(DIV_ROUND_UP(3846 * 1000, pcm3168a->sysclk)); in pcm3168a_reset()
287 return regmap_write(pcm3168a->regmap, PCM3168A_RST_SMODE, in pcm3168a_reset()
294 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component); in pcm3168a_mute() local
296 regmap_write(pcm3168a->regmap, PCM3168A_DAC_MUTE, mute ? 0xff : 0); in pcm3168a_mute()
304 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(dai->component); in pcm3168a_set_dai_sysclk() local
317 ret = clk_set_rate(pcm3168a->scki, freq); in pcm3168a_set_dai_sysclk()
321 pcm3168a->sysclk = freq; in pcm3168a_set_dai_sysclk()
329 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component); in pcm3168a_update_fixup_pcm_stream() local
330 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id]; in pcm3168a_update_fixup_pcm_stream()
358 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component); in pcm3168a_set_dai_fmt() local
359 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id]; in pcm3168a_set_dai_fmt()
406 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component); in pcm3168a_set_tdm_slot() local
407 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id]; in pcm3168a_set_tdm_slot()
441 struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component); in pcm3168a_hw_params() local
442 struct pcm3168a_io_params *io_params = &pcm3168a->io_params[dai->id]; in pcm3168a_hw_params()
465 ratio = pcm3168a->sysclk / params_rate(params); in pcm3168a_hw_params()
560 regmap_update_bits(pcm3168a->regmap, reg, mask, in pcm3168a_hw_params()
723 struct pcm3168a_priv *pcm3168a; in pcm3168a_probe() local
726 pcm3168a = devm_kzalloc(dev, sizeof(*pcm3168a), GFP_KERNEL); in pcm3168a_probe()
727 if (pcm3168a == NULL) in pcm3168a_probe()
730 dev_set_drvdata(dev, pcm3168a); in pcm3168a_probe()
740 pcm3168a->gpio_rst = devm_gpiod_get_optional(dev, "reset", in pcm3168a_probe()
743 if (IS_ERR(pcm3168a->gpio_rst)) in pcm3168a_probe()
744 return dev_err_probe(dev, PTR_ERR(pcm3168a->gpio_rst), in pcm3168a_probe()
747 pcm3168a->scki = devm_clk_get(dev, "scki"); in pcm3168a_probe()
748 if (IS_ERR(pcm3168a->scki)) in pcm3168a_probe()
749 return dev_err_probe(dev, PTR_ERR(pcm3168a->scki), in pcm3168a_probe()
752 ret = clk_prepare_enable(pcm3168a->scki); in pcm3168a_probe()
758 pcm3168a->sysclk = clk_get_rate(pcm3168a->scki); in pcm3168a_probe()
760 for (i = 0; i < ARRAY_SIZE(pcm3168a->supplies); i++) in pcm3168a_probe()
761 pcm3168a->supplies[i].supply = pcm3168a_supply_names[i]; in pcm3168a_probe()
764 ARRAY_SIZE(pcm3168a->supplies), pcm3168a->supplies); in pcm3168a_probe()
770 ret = regulator_bulk_enable(ARRAY_SIZE(pcm3168a->supplies), in pcm3168a_probe()
771 pcm3168a->supplies); in pcm3168a_probe()
777 pcm3168a->regmap = regmap; in pcm3168a_probe()
778 if (IS_ERR(pcm3168a->regmap)) { in pcm3168a_probe()
779 ret = PTR_ERR(pcm3168a->regmap); in pcm3168a_probe()
784 if (pcm3168a->gpio_rst) { in pcm3168a_probe()
789 msleep(DIV_ROUND_UP(3846 * 1000, pcm3168a->sysclk)); in pcm3168a_probe()
791 ret = pcm3168a_reset(pcm3168a); in pcm3168a_probe()
802 memcpy(pcm3168a->dai_drv, pcm3168a_dais, sizeof(pcm3168a->dai_drv)); in pcm3168a_probe()
804 pcm3168a->dai_drv, in pcm3168a_probe()
805 ARRAY_SIZE(pcm3168a->dai_drv)); in pcm3168a_probe()
814 regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies), in pcm3168a_probe()
815 pcm3168a->supplies); in pcm3168a_probe()
817 clk_disable_unprepare(pcm3168a->scki); in pcm3168a_probe()
825 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev); in pcm3168a_disable() local
827 regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies), in pcm3168a_disable()
828 pcm3168a->supplies); in pcm3168a_disable()
829 clk_disable_unprepare(pcm3168a->scki); in pcm3168a_disable()
834 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev); in pcm3168a_remove() local
842 gpiod_set_value_cansleep(pcm3168a->gpio_rst, 1); in pcm3168a_remove()
853 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev); in pcm3168a_rt_resume() local
856 ret = clk_prepare_enable(pcm3168a->scki); in pcm3168a_rt_resume()
862 ret = regulator_bulk_enable(ARRAY_SIZE(pcm3168a->supplies), in pcm3168a_rt_resume()
863 pcm3168a->supplies); in pcm3168a_rt_resume()
869 ret = pcm3168a_reset(pcm3168a); in pcm3168a_rt_resume()
875 regcache_cache_only(pcm3168a->regmap, false); in pcm3168a_rt_resume()
877 regcache_mark_dirty(pcm3168a->regmap); in pcm3168a_rt_resume()
879 ret = regcache_sync(pcm3168a->regmap); in pcm3168a_rt_resume()
888 regulator_bulk_disable(ARRAY_SIZE(pcm3168a->supplies), in pcm3168a_rt_resume()
889 pcm3168a->supplies); in pcm3168a_rt_resume()
891 clk_disable_unprepare(pcm3168a->scki); in pcm3168a_rt_resume()
898 struct pcm3168a_priv *pcm3168a = dev_get_drvdata(dev); in pcm3168a_rt_suspend() local
900 regcache_cache_only(pcm3168a->regmap, true); in pcm3168a_rt_suspend()