Lines Matching full:wm8580

3  * wm8580.c  --  WM8580 and WM8581 ALSA Soc Audio driver
8 * The WM8580 is a multichannel codec with S/PDIF support, featuring six
38 #include "wm8580.h"
40 /* WM8580 register space */
158 * wm8580 register cache
159 * We can't read the WM8580 register space when we
262 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_out_vu() local
268 regcache_cache_only(wm8580->regmap, true); in wm8580_out_vu()
269 regmap_update_bits(wm8580->regmap, reg, 0x100, 0x000); in wm8580_out_vu()
270 regmap_update_bits(wm8580->regmap, reg2, 0x100, 0x000); in wm8580_out_vu()
271 regcache_cache_only(wm8580->regmap, false); in wm8580_out_vu()
407 pr_debug("wm8580: PLL %uHz->%uHz\n", source, target); in pll_factors()
423 printk(KERN_ERR "wm8580: Unable to scale output frequency " in pll_factors()
439 "WM8580 N=%u outside supported range\n", Ndiv); in pll_factors()
465 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_set_dai_pll() local
479 state = &wm8580->a; in wm8580_set_dai_pll()
484 state = &wm8580->b; in wm8580_set_dai_pll()
539 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_paif_hw_params() local
566 ratio = wm8580->sysclk[dai->driver->id] / params_rate(params); in wm8580_paif_hw_params()
572 wm8580->sysclk[dai->driver->id], params_rate(params)); in wm8580_paif_hw_params()
577 wm8580_sysclk_ratios[i], wm8580->sysclk[dai->driver->id]); in wm8580_paif_hw_params()
754 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_set_sysclk() local
794 wm8580->sysclk[dai->driver->id] = freq; in wm8580_set_sysclk()
853 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_playback_startup() local
856 SNDRV_PCM_HW_PARAM_CHANNELS, 1, wm8580->drvdata->num_dacs * 2); in wm8580_playback_startup()
883 .name = "wm8580-hifi-playback",
894 .name = "wm8580-hifi-capture",
909 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_probe() local
913 switch (wm8580->drvdata->num_dacs) { in wm8580_probe()
926 ret = regulator_bulk_enable(ARRAY_SIZE(wm8580->supplies), in wm8580_probe()
927 wm8580->supplies); in wm8580_probe()
943 regulator_bulk_disable(ARRAY_SIZE(wm8580->supplies), wm8580->supplies); in wm8580_probe()
951 struct wm8580_priv *wm8580 = snd_soc_component_get_drvdata(component); in wm8580_remove() local
953 regulator_bulk_disable(ARRAY_SIZE(wm8580->supplies), wm8580->supplies); in wm8580_remove()
993 struct wm8580_priv *wm8580; in wm8580_i2c_probe() local
996 wm8580 = devm_kzalloc(&i2c->dev, sizeof(struct wm8580_priv), in wm8580_i2c_probe()
998 if (wm8580 == NULL) in wm8580_i2c_probe()
1001 wm8580->regmap = devm_regmap_init_i2c(i2c, &wm8580_regmap); in wm8580_i2c_probe()
1002 if (IS_ERR(wm8580->regmap)) in wm8580_i2c_probe()
1003 return PTR_ERR(wm8580->regmap); in wm8580_i2c_probe()
1005 for (i = 0; i < ARRAY_SIZE(wm8580->supplies); i++) in wm8580_i2c_probe()
1006 wm8580->supplies[i].supply = wm8580_supply_names[i]; in wm8580_i2c_probe()
1008 ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(wm8580->supplies), in wm8580_i2c_probe()
1009 wm8580->supplies); in wm8580_i2c_probe()
1015 i2c_set_clientdata(i2c, wm8580); in wm8580_i2c_probe()
1017 wm8580->drvdata = i2c_get_match_data(i2c); in wm8580_i2c_probe()
1018 if (!wm8580->drvdata) in wm8580_i2c_probe()
1028 { .compatible = "wlf,wm8580", .data = &wm8580_data },
1035 { "wm8580", (kernel_ulong_t)&wm8580_data },
1043 .name = "wm8580",
1052 MODULE_DESCRIPTION("ASoC WM8580 driver");