16 #include <linux/module.h>
18 #include "../codecs/wm8962.h"
29 if (dapm->
dev != codec_dai->
dev)
39 pr_err(
"Failed to start FLL: %d\n", ret);
46 pr_err(
"Failed to set SYSCLK: %d\n", ret);
59 static int tobermory_set_bias_level_post(
struct snd_soc_card *card,
66 if (dapm->
dev != codec_dai->
dev)
74 pr_err(
"Failed to switch away from FLL: %d\n", ret);
81 pr_err(
"Failed to stop FLL: %d\n", ret);
104 .hw_params = tobermory_hw_params,
110 .stream_name =
"CPU",
111 .cpu_dai_name =
"samsung-i2s.0",
112 .codec_dai_name =
"wm8962",
113 .platform_name =
"samsung-audio",
114 .codec_name =
"wm8962.1-001a",
117 .ops = &tobermory_ops,
137 {
"Headphone",
NULL,
"HPOUTL" },
138 {
"Headphone",
NULL,
"HPOUTR" },
140 {
"Main Speaker",
NULL,
"SPKOUTL" },
141 {
"Main Speaker",
NULL,
"SPKOUTR" },
143 {
"Headset Mic",
NULL,
"MICBIAS" },
144 {
"IN4L",
NULL,
"Headset Mic" },
145 {
"IN4R",
NULL,
"Headset Mic" },
147 {
"AMIC",
NULL,
"MICBIAS" },
148 {
"IN1L",
NULL,
"AMIC" },
149 {
"IN1R",
NULL,
"AMIC" },
151 {
"DMIC",
NULL,
"MICBIAS" },
152 {
"DMICDAT",
NULL,
"DMIC" },
160 .pin =
"Headset Mic",
169 static int tobermory_late_probe(
struct snd_soc_card *card)
188 tobermory_headset_pins);
200 .dai_link = tobermory_dai,
203 .set_bias_level = tobermory_set_bias_level,
204 .set_bias_level_post = tobermory_set_bias_level_post,
210 .dapm_routes = audio_paths,
212 .fully_routed =
true,
214 .late_probe = tobermory_late_probe,
226 dev_err(&pdev->
dev,
"snd_soc_register_card() failed: %d\n",
249 .probe = tobermory_probe,