• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/sound/soc/codecs/

Lines Matching defs:wm9081

2  * wm9081.c  --  WM9081 ALSA SoC Audio driver
30 #include <sound/wm9081.h>
31 #include "wm9081.h"
524 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
531 if (Fref == wm9081->fll_fref && Fout == wm9081->fll_fout)
537 wm9081->fll_fref = 0;
538 wm9081->fll_fout = 0;
602 wm9081->fll_fref = Fref;
603 wm9081->fll_fout = Fout;
610 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
617 switch (wm9081->sysclk_source) {
619 if (wm9081->mclk_rate > 12225000) {
621 wm9081->sysclk_rate = wm9081->mclk_rate / 2;
623 wm9081->sysclk_rate = wm9081->mclk_rate;
636 if (wm9081->master && wm9081->bclk) {
641 target = wm9081->fs * clk_sys_rates[i].ratio;
643 if (target >= wm9081->bclk &&
651 } else if (wm9081->fs) {
654 * wm9081->fs;
667 wm9081->mclk_rate, new_sysclk);
669 wm9081->sysclk_rate = new_sysclk;
674 wm9081->sysclk_rate = wm9081->mclk_rate;
696 dev_dbg(codec->dev, "CLK_SYS is %dHz\n", wm9081->sysclk_rate);
705 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
708 switch (wm9081->sysclk_source) {
710 dev_dbg(codec->dev, "Using %dHz MCLK\n", wm9081->mclk_rate);
714 wm9081->mclk_rate);
876 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
884 wm9081->master = 0;
888 wm9081->master = 1;
892 wm9081->master = 1;
896 wm9081->master = 1;
968 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
986 wm9081->fs = params_rate(params);
988 if (wm9081->tdm_width) {
993 wm9081->bclk = wm9081->fs * wm9081->tdm_width * slots;
996 wm9081->bclk = 2 * wm9081->fs;
1000 wm9081->bclk *= 16;
1003 wm9081->bclk *= 20;
1007 wm9081->bclk *= 24;
1011 wm9081->bclk *= 32;
1019 dev_dbg(codec->dev, "Target BCLK is %dHz\n", wm9081->bclk);
1027 best_val = abs((wm9081->sysclk_rate / clk_sys_rates[0].ratio)
1028 - wm9081->fs);
1030 cur_val = abs((wm9081->sysclk_rate /
1031 clk_sys_rates[i].ratio) - wm9081->fs);
1044 best_val = abs(wm9081->fs - sample_rates[0].rate);
1047 cur_val = abs(wm9081->fs - sample_rates[i].rate);
1062 cur_val = ((wm9081->sysclk_rate * 10) / bclk_divs[i].div)
1063 - wm9081->bclk;
1071 wm9081->bclk = (wm9081->sysclk_rate * 10) / bclk_divs[best].div;
1073 bclk_divs[best].div, wm9081->bclk);
1077 dev_dbg(codec->dev, "LRCLK_RATE is %d\n", wm9081->bclk / wm9081->fs);
1078 aif4 |= wm9081->bclk / wm9081->fs;
1081 if (wm9081->retune) {
1082 struct wm9081_retune_mobile_config *retune = wm9081->retune;
1087 best_val = abs(retune->configs[0].rate - wm9081->fs);
1089 cur_val = abs(retune->configs[i].rate - wm9081->fs);
1142 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
1147 wm9081->sysclk_source = clk_id;
1148 wm9081->mclk_rate = freq;
1162 struct wm9081_priv *wm9081 = snd_soc_codec_get_drvdata(codec);
1170 wm9081->tdm_width = slot_width;
1235 struct wm9081_priv *wm9081;
1245 wm9081 = snd_soc_codec_get_drvdata(codec);
1256 if (!wm9081->retune) {
1325 static int wm9081_register(struct wm9081_priv *wm9081,
1328 struct snd_soc_codec *codec = &wm9081->codec;
1342 snd_soc_codec_set_drvdata(codec, wm9081);
1347 codec->reg_cache_size = ARRAY_SIZE(wm9081->reg_cache);
1348 codec->reg_cache = &wm9081->reg_cache;
1405 kfree(wm9081);
1409 static void wm9081_unregister(struct wm9081_priv *wm9081)
1411 wm9081_set_bias_level(&wm9081->codec, SND_SOC_BIAS_OFF);
1413 snd_soc_unregister_codec(&wm9081->codec);
1414 kfree(wm9081);
1421 struct wm9081_priv *wm9081;
1424 wm9081 = kzalloc(sizeof(struct wm9081_priv), GFP_KERNEL);
1425 if (wm9081 == NULL)
1428 codec = &wm9081->codec;
1430 wm9081->retune = i2c->dev.platform_data;
1432 i2c_set_clientdata(i2c, wm9081);
1437 return wm9081_register(wm9081, SND_SOC_I2C);
1442 struct wm9081_priv *wm9081 = i2c_get_clientdata(client);
1443 wm9081_unregister(wm9081);
1448 { "wm9081", 0 },
1455 .name = "wm9081",