14 #include <linux/module.h>
16 #include <linux/device.h>
18 #include <linux/i2c.h>
24 #include "../codecs/wm9713.h"
37 static struct clk *pout;
53 {
"Headphone",
NULL,
"HPL" },
54 {
"Headphone",
NULL,
"HPR" },
57 {
"Headset Earpiece",
NULL,
"OUT3" },
60 {
"MIC2A",
NULL,
"Mic Bias" },
61 {
"Mic Bias",
NULL,
"Headset Microphone" },
64 {
"MIC1",
NULL,
"Mic Bias" },
65 {
"Mic Bias",
NULL,
"Handset Microphone" },
68 {
"Multiactor",
NULL,
"SPKL" },
69 {
"Multiactor",
NULL,
"SPKR" },
99 unsigned int pll_out = 0;
100 unsigned int wm9713_div = 0;
126 pll_out = rate * (width + 1) * 8;
159 .hw_params = zylonite_voice_hw_params,
165 .stream_name =
"AC97 HiFi",
166 .codec_name =
"wm9713-codec",
167 .platform_name =
"pxa-pcm-audio",
168 .cpu_dai_name =
"pxa2xx-ac97",
169 .codec_dai_name =
"wm9713-hifi",
170 .init = zylonite_wm9713_init,
174 .stream_name =
"AC97 Aux",
175 .codec_name =
"wm9713-codec",
176 .platform_name =
"pxa-pcm-audio",
177 .cpu_dai_name =
"pxa2xx-ac97-aux",
178 .codec_dai_name =
"wm9713-aux",
181 .name =
"WM9713 Voice",
182 .stream_name =
"WM9713 Voice",
183 .codec_name =
"wm9713-codec",
184 .platform_name =
"pxa-pcm-audio",
185 .cpu_dai_name =
"pxa-ssp-dai.2",
186 .codec_dai_name =
"wm9713-voice",
187 .ops = &zylonite_voice_ops,
198 dev_err(card->
dev,
"Unable to obtain CLK_POUT: %ld\n",
200 return PTR_ERR(pout);
205 dev_err(card->
dev,
"Unable to enable CLK_POUT: %d\n",
228 static int zylonite_suspend_post(
struct snd_soc_card *card)
236 static int zylonite_resume_pre(
struct snd_soc_card *card)
243 dev_err(card->
dev,
"Unable to enable CLK_POUT: %d\n",
253 .probe = &zylonite_probe,
254 .remove = &zylonite_remove,
255 .suspend_post = &zylonite_suspend_post,
256 .resume_pre = &zylonite_resume_pre,
257 .dai_link = zylonite_dai,
264 static int __init zylonite_init(
void)
269 if (!zylonite_snd_ac97_device)
272 platform_set_drvdata(zylonite_snd_ac97_device, &zylonite);
281 static void __exit zylonite_exit(
void)