• 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:wm8523

2  * wm8523.c  --  WM8523 ALSA SoC Audio driver
31 #include "wm8523.h"
141 struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
146 if (!wm8523->sysclk) {
155 &wm8523->rate_constraint);
167 struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
174 if (wm8523->sysclk / params_rate(params) ==
182 wm8523->sysclk / params_rate(params));
214 struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
218 wm8523->sysclk = freq;
220 wm8523->rate_constraint.count = 0;
242 wm8523->rate_constraint_list[i] = val;
243 wm8523->rate_constraint.count++;
252 if (wm8523->rate_constraint.count == 0)
321 struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
336 ret = regulator_bulk_enable(ARRAY_SIZE(wm8523->supplies),
337 wm8523->supplies);
352 snd_soc_write(codec, i, wm8523->reg_cache[i]);
370 regulator_bulk_disable(ARRAY_SIZE(wm8523->supplies),
371 wm8523->supplies);
476 static int wm8523_register(struct wm8523_priv *wm8523,
480 struct snd_soc_codec *codec = &wm8523->codec;
493 snd_soc_codec_set_drvdata(codec, wm8523);
501 codec->reg_cache = &wm8523->reg_cache;
504 wm8523->rate_constraint.list = &wm8523->rate_constraint_list[0];
505 wm8523->rate_constraint.count =
506 ARRAY_SIZE(wm8523->rate_constraint_list);
516 for (i = 0; i < ARRAY_SIZE(wm8523->supplies); i++)
517 wm8523->supplies[i].supply = wm8523_supply_names[i];
519 ret = regulator_bulk_get(codec->dev, ARRAY_SIZE(wm8523->supplies),
520 wm8523->supplies);
526 ret = regulator_bulk_enable(ARRAY_SIZE(wm8523->supplies),
527 wm8523->supplies);
561 wm8523->reg_cache[WM8523_DAC_GAINR] |= WM8523_DACR_VU;
562 wm8523->reg_cache[WM8523_DAC_CTRL3] |= WM8523_ZC;
567 regulator_bulk_disable(ARRAY_SIZE(wm8523->supplies), wm8523->supplies);
588 regulator_bulk_disable(ARRAY_SIZE(wm8523->supplies), wm8523->supplies);
590 regulator_bulk_free(ARRAY_SIZE(wm8523->supplies), wm8523->supplies);
592 kfree(wm8523);
596 static void wm8523_unregister(struct wm8523_priv *wm8523)
598 wm8523_set_bias_level(&wm8523->codec, SND_SOC_BIAS_OFF);
599 regulator_bulk_free(ARRAY_SIZE(wm8523->supplies), wm8523->supplies);
601 snd_soc_unregister_codec(&wm8523->codec);
602 kfree(wm8523);
610 struct wm8523_priv *wm8523;
613 wm8523 = kzalloc(sizeof(struct wm8523_priv), GFP_KERNEL);
614 if (wm8523 == NULL)
617 codec = &wm8523->codec;
620 i2c_set_clientdata(i2c, wm8523);
625 return wm8523_register(wm8523, SND_SOC_I2C);
630 struct wm8523_priv *wm8523 = i2c_get_clientdata(client);
631 wm8523_unregister(wm8523);
636 { "wm8523", 0 },