Lines Matching defs:wm8978

3  * wm8978.c  --  WM8978 ALSA SoC Audio Codec driver
28 #include "wm8978.h"
473 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
475 unsigned int f_opclk = wm8978->f_opclk, f_mclk = wm8978->f_mclk,
476 f_256fs = wm8978->f_256fs;
485 wm8978->mclk_idx = -1;
510 wm8978->f_pllout = f_opclk * opclk_div;
522 int idx = wm8978_enum_mclk(f_256fs, f_mclk, &wm8978->f_pllout);
526 wm8978->mclk_idx = idx;
531 f2 = wm8978->f_pllout * 4;
534 wm8978->f_mclk, wm8978->f_pllout);
536 pll_factors(component, &pll_div, f2, wm8978->f_mclk);
566 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
571 wm8978->f_opclk = div;
573 if (wm8978->f_mclk)
611 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
617 wm8978->f_mclk = freq;
620 if (wm8978->f_opclk)
626 wm8978->sysclk = clk_id;
629 if (wm8978->sysclk == WM8978_PLL && (!freq || clk_id == WM8978_MCLK)) {
638 wm8978->sysclk = WM8978_MCLK;
639 wm8978->f_pllout = 0;
640 wm8978->f_opclk = 0;
721 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
732 if (!wm8978->f_mclk)
773 wm8978->f_256fs = params_rate(params) * 256;
775 if (wm8978->sysclk == WM8978_MCLK) {
776 wm8978->mclk_idx = -1;
777 f_sel = wm8978->f_mclk;
779 if (!wm8978->f_opclk) {
785 f_sel = wm8978->f_pllout;
788 if (wm8978->mclk_idx < 0) {
790 if (f_sel < wm8978->f_256fs || f_sel > 12 * wm8978->f_256fs)
794 diff = abs(wm8978->f_256fs * 3 -
807 best = wm8978->mclk_idx;
814 wm8978->sysclk == WM8978_MCLK ?
826 if (wm8978->sysclk != current_clk_id) {
827 if (wm8978->sysclk == WM8978_PLL)
905 .name = "wm8978-hifi",
926 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
932 regcache_mark_dirty(wm8978->regmap);
939 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
942 regcache_sync(wm8978->regmap);
946 if (wm8978->f_pllout)
974 struct wm8978_priv *wm8978 = snd_soc_component_get_drvdata(component);
981 wm8978->sysclk = WM8978_PLL;
1024 struct wm8978_priv *wm8978;
1027 wm8978 = devm_kzalloc(&i2c->dev, sizeof(struct wm8978_priv),
1029 if (wm8978 == NULL)
1032 wm8978->regmap = devm_regmap_init_i2c(i2c, &wm8978_regmap_config);
1033 if (IS_ERR(wm8978->regmap)) {
1034 ret = PTR_ERR(wm8978->regmap);
1039 i2c_set_clientdata(i2c, wm8978);
1042 ret = regmap_write(wm8978->regmap, WM8978_RESET, 0);
1059 { "wm8978" },
1065 { .compatible = "wlf,wm8978", },
1072 .name = "wm8978",