diff options
Diffstat (limited to 'sound/soc/samsung/neo1973_wm8753.c')
-rw-r--r-- | sound/soc/samsung/neo1973_wm8753.c | 73 |
1 files changed, 5 insertions, 68 deletions
diff --git a/sound/soc/samsung/neo1973_wm8753.c b/sound/soc/samsung/neo1973_wm8753.c index 7ac0ba2025c3..321d51134e47 100644 --- a/sound/soc/samsung/neo1973_wm8753.c +++ b/sound/soc/samsung/neo1973_wm8753.c | |||
@@ -230,8 +230,6 @@ static const struct snd_kcontrol_new neo1973_wm8753_controls[] = { | |||
230 | 230 | ||
231 | /* GTA02 specific routes and controls */ | 231 | /* GTA02 specific routes and controls */ |
232 | 232 | ||
233 | #ifdef CONFIG_MACH_NEO1973_GTA02 | ||
234 | |||
235 | static int gta02_speaker_enabled; | 233 | static int gta02_speaker_enabled; |
236 | 234 | ||
237 | static int lm4853_set_spk(struct snd_kcontrol *kcontrol, | 235 | static int lm4853_set_spk(struct snd_kcontrol *kcontrol, |
@@ -298,7 +296,7 @@ static int neo1973_gta02_wm8753_init(struct snd_soc_codec *codec) | |||
298 | if (ret) | 296 | if (ret) |
299 | return ret; | 297 | return ret; |
300 | 298 | ||
301 | ret = snd_soc_add_controls(codec, neo1973_gta02_wm8753_controls, | 299 | ret = snd_soc_add_card_controls(codec->card, neo1973_gta02_wm8753_controls, |
302 | ARRAY_SIZE(neo1973_gta02_wm8753_controls)); | 300 | ARRAY_SIZE(neo1973_gta02_wm8753_controls)); |
303 | if (ret) | 301 | if (ret) |
304 | return ret; | 302 | return ret; |
@@ -311,10 +309,6 @@ static int neo1973_gta02_wm8753_init(struct snd_soc_codec *codec) | |||
311 | return 0; | 309 | return 0; |
312 | } | 310 | } |
313 | 311 | ||
314 | #else | ||
315 | static int neo1973_gta02_wm8753_init(struct snd_soc_code *codec) { return 0; } | ||
316 | #endif | ||
317 | |||
318 | static int neo1973_wm8753_init(struct snd_soc_pcm_runtime *rtd) | 312 | static int neo1973_wm8753_init(struct snd_soc_pcm_runtime *rtd) |
319 | { | 313 | { |
320 | struct snd_soc_codec *codec = rtd->codec; | 314 | struct snd_soc_codec *codec = rtd->codec; |
@@ -322,10 +316,6 @@ static int neo1973_wm8753_init(struct snd_soc_pcm_runtime *rtd) | |||
322 | int ret; | 316 | int ret; |
323 | 317 | ||
324 | /* set up NC codec pins */ | 318 | /* set up NC codec pins */ |
325 | if (machine_is_neo1973_gta01()) { | ||
326 | snd_soc_dapm_nc_pin(dapm, "LOUT2"); | ||
327 | snd_soc_dapm_nc_pin(dapm, "ROUT2"); | ||
328 | } | ||
329 | snd_soc_dapm_nc_pin(dapm, "OUT3"); | 319 | snd_soc_dapm_nc_pin(dapm, "OUT3"); |
330 | snd_soc_dapm_nc_pin(dapm, "OUT4"); | 320 | snd_soc_dapm_nc_pin(dapm, "OUT4"); |
331 | snd_soc_dapm_nc_pin(dapm, "LINE1"); | 321 | snd_soc_dapm_nc_pin(dapm, "LINE1"); |
@@ -338,7 +328,7 @@ static int neo1973_wm8753_init(struct snd_soc_pcm_runtime *rtd) | |||
338 | return ret; | 328 | return ret; |
339 | 329 | ||
340 | /* add neo1973 specific controls */ | 330 | /* add neo1973 specific controls */ |
341 | ret = snd_soc_add_controls(codec, neo1973_wm8753_controls, | 331 | ret = snd_soc_add_card_controls(rtd->card, neo1973_wm8753_controls, |
342 | ARRAY_SIZE(neo1973_wm8753_controls)); | 332 | ARRAY_SIZE(neo1973_wm8753_controls)); |
343 | if (ret) | 333 | if (ret) |
344 | return ret; | 334 | return ret; |
@@ -370,50 +360,6 @@ static int neo1973_wm8753_init(struct snd_soc_pcm_runtime *rtd) | |||
370 | return 0; | 360 | return 0; |
371 | } | 361 | } |
372 | 362 | ||
373 | /* GTA01 specific controls */ | ||
374 | |||
375 | #ifdef CONFIG_MACH_NEO1973_GTA01 | ||
376 | |||
377 | static const struct snd_soc_dapm_route neo1973_lm4857_routes[] = { | ||
378 | {"Amp IN", NULL, "ROUT1"}, | ||
379 | {"Amp IN", NULL, "LOUT1"}, | ||
380 | |||
381 | {"Handset Spk", NULL, "Amp EP"}, | ||
382 | {"Stereo Out", NULL, "Amp LS"}, | ||
383 | {"Headphone", NULL, "Amp HP"}, | ||
384 | }; | ||
385 | |||
386 | static const struct snd_soc_dapm_widget neo1973_lm4857_dapm_widgets[] = { | ||
387 | SND_SOC_DAPM_SPK("Handset Spk", NULL), | ||
388 | SND_SOC_DAPM_SPK("Stereo Out", NULL), | ||
389 | SND_SOC_DAPM_HP("Headphone", NULL), | ||
390 | }; | ||
391 | |||
392 | static int neo1973_lm4857_init(struct snd_soc_dapm_context *dapm) | ||
393 | { | ||
394 | int ret; | ||
395 | |||
396 | ret = snd_soc_dapm_new_controls(dapm, neo1973_lm4857_dapm_widgets, | ||
397 | ARRAY_SIZE(neo1973_lm4857_dapm_widgets)); | ||
398 | if (ret) | ||
399 | return ret; | ||
400 | |||
401 | ret = snd_soc_dapm_add_routes(dapm, neo1973_lm4857_routes, | ||
402 | ARRAY_SIZE(neo1973_lm4857_routes)); | ||
403 | if (ret) | ||
404 | return ret; | ||
405 | |||
406 | snd_soc_dapm_ignore_suspend(dapm, "Stereo Out"); | ||
407 | snd_soc_dapm_ignore_suspend(dapm, "Handset Spk"); | ||
408 | snd_soc_dapm_ignore_suspend(dapm, "Headphone"); | ||
409 | |||
410 | return 0; | ||
411 | } | ||
412 | |||
413 | #else | ||
414 | static int neo1973_lm4857_init(struct snd_soc_dapm_context *dapm) { return 0; }; | ||
415 | #endif | ||
416 | |||
417 | static struct snd_soc_dai_link neo1973_dai[] = { | 363 | static struct snd_soc_dai_link neo1973_dai[] = { |
418 | { /* Hifi Playback - for similatious use with voice below */ | 364 | { /* Hifi Playback - for similatious use with voice below */ |
419 | .name = "WM8753", | 365 | .name = "WM8753", |
@@ -421,7 +367,7 @@ static struct snd_soc_dai_link neo1973_dai[] = { | |||
421 | .platform_name = "samsung-audio", | 367 | .platform_name = "samsung-audio", |
422 | .cpu_dai_name = "s3c24xx-iis", | 368 | .cpu_dai_name = "s3c24xx-iis", |
423 | .codec_dai_name = "wm8753-hifi", | 369 | .codec_dai_name = "wm8753-hifi", |
424 | .codec_name = "wm8753-codec.0-001a", | 370 | .codec_name = "wm8753.0-001a", |
425 | .init = neo1973_wm8753_init, | 371 | .init = neo1973_wm8753_init, |
426 | .ops = &neo1973_hifi_ops, | 372 | .ops = &neo1973_hifi_ops, |
427 | }, | 373 | }, |
@@ -430,7 +376,7 @@ static struct snd_soc_dai_link neo1973_dai[] = { | |||
430 | .stream_name = "Voice", | 376 | .stream_name = "Voice", |
431 | .cpu_dai_name = "dfbmcs320-pcm", | 377 | .cpu_dai_name = "dfbmcs320-pcm", |
432 | .codec_dai_name = "wm8753-voice", | 378 | .codec_dai_name = "wm8753-voice", |
433 | .codec_name = "wm8753-codec.0-001a", | 379 | .codec_name = "wm8753.0-001a", |
434 | .ops = &neo1973_voice_ops, | 380 | .ops = &neo1973_voice_ops, |
435 | }, | 381 | }, |
436 | }; | 382 | }; |
@@ -440,11 +386,6 @@ static struct snd_soc_aux_dev neo1973_aux_devs[] = { | |||
440 | .name = "dfbmcs320", | 386 | .name = "dfbmcs320", |
441 | .codec_name = "dfbmcs320.0", | 387 | .codec_name = "dfbmcs320.0", |
442 | }, | 388 | }, |
443 | { | ||
444 | .name = "lm4857", | ||
445 | .codec_name = "lm4857.0-007c", | ||
446 | .init = neo1973_lm4857_init, | ||
447 | }, | ||
448 | }; | 389 | }; |
449 | 390 | ||
450 | static struct snd_soc_codec_conf neo1973_codec_conf[] = { | 391 | static struct snd_soc_codec_conf neo1973_codec_conf[] = { |
@@ -454,14 +395,10 @@ static struct snd_soc_codec_conf neo1973_codec_conf[] = { | |||
454 | }, | 395 | }, |
455 | }; | 396 | }; |
456 | 397 | ||
457 | #ifdef CONFIG_MACH_NEO1973_GTA02 | ||
458 | static const struct gpio neo1973_gta02_gpios[] = { | 398 | static const struct gpio neo1973_gta02_gpios[] = { |
459 | { GTA02_GPIO_HP_IN, GPIOF_OUT_INIT_HIGH, "GTA02_HP_IN" }, | 399 | { GTA02_GPIO_HP_IN, GPIOF_OUT_INIT_HIGH, "GTA02_HP_IN" }, |
460 | { GTA02_GPIO_AMP_SHUT, GPIOF_OUT_INIT_HIGH, "GTA02_AMP_SHUT" }, | 400 | { GTA02_GPIO_AMP_SHUT, GPIOF_OUT_INIT_HIGH, "GTA02_AMP_SHUT" }, |
461 | }; | 401 | }; |
462 | #else | ||
463 | static const struct gpio neo1973_gta02_gpios[] = {}; | ||
464 | #endif | ||
465 | 402 | ||
466 | static struct snd_soc_card neo1973 = { | 403 | static struct snd_soc_card neo1973 = { |
467 | .name = "neo1973", | 404 | .name = "neo1973", |
@@ -480,7 +417,7 @@ static int __init neo1973_init(void) | |||
480 | { | 417 | { |
481 | int ret; | 418 | int ret; |
482 | 419 | ||
483 | if (!machine_is_neo1973_gta01() && !machine_is_neo1973_gta02()) | 420 | if (!machine_is_neo1973_gta02()) |
484 | return -ENODEV; | 421 | return -ENODEV; |
485 | 422 | ||
486 | if (machine_is_neo1973_gta02()) { | 423 | if (machine_is_neo1973_gta02()) { |