12 #include <linux/device.h>
14 #include <linux/module.h>
16 #include <asm/clock.h>
24 #include "../codecs/wm8978.h"
28 static unsigned long codec_freq = 8000 * 512;
30 static unsigned int use_count;
33 static unsigned long siumckb_recalc(
struct clk *
clk)
39 .recalc = siumckb_recalc,
42 static struct clk siumckb_clk = {
43 .ops = &siumckb_clk_ops,
76 codec_freq = rate * 512;
82 dev_dbg(codec_dai->
dev,
"%s: configure %luHz\n", __func__, codec_freq);
105 dev_dbg(codec_dai->
dev,
"Unbalanced hw_free!\n");
112 .hw_params = migor_hw_params,
113 .hw_free = migor_hw_free,
124 {
"Headphone",
NULL,
"OUT4 VMID" },
125 {
"OUT4 VMID",
NULL,
"LHP" },
126 {
"OUT4 VMID",
NULL,
"RHP" },
129 {
"RMICN",
NULL,
"Mic Bias" },
130 {
"RMICP",
NULL,
"Mic Bias" },
131 {
"Mic Bias",
NULL,
"Onboard Microphone" },
134 {
"LMICN",
NULL,
"Mic Bias" },
135 {
"LMICP",
NULL,
"Mic Bias" },
136 {
"Mic Bias",
NULL,
"External Microphone" },
155 .stream_name =
"WM8978",
156 .cpu_dai_name =
"siu-i2s-dai",
157 .codec_dai_name =
"wm8978-hifi",
158 .platform_name =
"siu-pcm-audio",
159 .codec_name =
"wm8978.0-001a",
160 .ops = &migor_dai_ops,
161 .init = migor_dai_init,
168 .dai_link = &migor_dai,
174 static int __init migor_init(
void)
183 if (!siumckb_lookup) {
191 if (!migor_snd_device) {
196 platform_set_drvdata(migor_snd_device, &snd_soc_migor);
213 static void __exit migor_exit(
void)