Blame view
sound/soc/samsung/s3c24xx_simtec_hermes.c
3.31 KB
5033f43c6 ASoC: Samsung: Re... |
1 |
/* sound/soc/samsung/s3c24xx_simtec_hermes.c |
b2ec22e26 ASoC: S3C24XX: Su... |
2 3 4 5 6 7 8 |
* * Copyright 2009 Simtec Electronics * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ |
da155d5b4 sound: Add module... |
9 |
#include <linux/module.h> |
b2ec22e26 ASoC: S3C24XX: Su... |
10 |
#include <sound/soc.h> |
b2ec22e26 ASoC: S3C24XX: Su... |
11 |
|
b2ec22e26 ASoC: S3C24XX: Su... |
12 |
#include "s3c24xx_simtec.h" |
b2ec22e26 ASoC: S3C24XX: Su... |
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
static const struct snd_soc_dapm_widget dapm_widgets[] = { SND_SOC_DAPM_LINE("GSM Out", NULL), SND_SOC_DAPM_LINE("GSM In", NULL), SND_SOC_DAPM_LINE("Line In", NULL), SND_SOC_DAPM_LINE("Line Out", NULL), SND_SOC_DAPM_LINE("ZV", NULL), SND_SOC_DAPM_MIC("Mic Jack", NULL), SND_SOC_DAPM_HP("Headphone Jack", NULL), }; static const struct snd_soc_dapm_route base_map[] = { /* Headphone connected to HP{L,R}OUT and HP{L,R}COM */ { "Headphone Jack", NULL, "HPLOUT" }, { "Headphone Jack", NULL, "HPLCOM" }, { "Headphone Jack", NULL, "HPROUT" }, { "Headphone Jack", NULL, "HPRCOM" }, /* ZV connected to Line1 */ { "LINE1L", NULL, "ZV" }, { "LINE1R", NULL, "ZV" }, /* Line In connected to Line2 */ { "LINE2L", NULL, "Line In" }, { "LINE2R", NULL, "Line In" }, /* Microphone connected to MIC3R and MIC_BIAS */ { "MIC3L", NULL, "Mic Jack" }, /* GSM connected to MONO_LOUT and MIC3L (in) */ { "GSM Out", NULL, "MONO_LOUT" }, { "MIC3L", NULL, "GSM In" }, /* Speaker is connected to LINEOUT{LN,LP,RN,RP}, however we are * not using the DAPM to power it up and down as there it makes * a click when powering up. */ }; /** * simtec_hermes_init - initialise and add controls * @codec; The codec instance to attach to. * * Attach our controls and configure the necessary codec * mappings for our sound card instance. */ |
f0fba2ad1 ASoC: multi-compo... |
62 |
static int simtec_hermes_init(struct snd_soc_pcm_runtime *rtd) |
b2ec22e26 ASoC: S3C24XX: Su... |
63 |
{ |
f0fba2ad1 ASoC: multi-compo... |
64 |
struct snd_soc_codec *codec = rtd->codec; |
ce6120cca ASoC: Decouple DA... |
65 |
struct snd_soc_dapm_context *dapm = &codec->dapm; |
f0fba2ad1 ASoC: multi-compo... |
66 |
|
ce6120cca ASoC: Decouple DA... |
67 68 69 70 |
snd_soc_dapm_enable_pin(dapm, "Headphone Jack"); snd_soc_dapm_enable_pin(dapm, "Line In"); snd_soc_dapm_enable_pin(dapm, "Line Out"); snd_soc_dapm_enable_pin(dapm, "Mic Jack"); |
b2ec22e26 ASoC: S3C24XX: Su... |
71 |
|
f0fba2ad1 ASoC: multi-compo... |
72 |
simtec_audio_init(rtd); |
b2ec22e26 ASoC: S3C24XX: Su... |
73 74 75 |
return 0; } |
b2ec22e26 ASoC: S3C24XX: Su... |
76 77 78 |
static struct snd_soc_dai_link simtec_dai_aic33 = { .name = "tlv320aic33", .stream_name = "TLV320AIC33", |
81d7da540 ASoC: Fix codec d... |
79 |
.codec_name = "tlv320aic3x-codec.0-001a", |
518aa59f6 ASoC: Samsung: Fi... |
80 |
.cpu_dai_name = "s3c24xx-iis", |
f0fba2ad1 ASoC: multi-compo... |
81 |
.codec_dai_name = "tlv320aic3x-hifi", |
58bb40721 ASoC: Samsung: Re... |
82 |
.platform_name = "samsung-audio", |
b2ec22e26 ASoC: S3C24XX: Su... |
83 84 85 86 87 88 |
.init = simtec_hermes_init, }; /* simtec audio machine driver */ static struct snd_soc_card snd_soc_machine_simtec_aic33 = { .name = "Simtec-Hermes", |
095d79dc4 ASoC: samsung: Ad... |
89 |
.owner = THIS_MODULE, |
b2ec22e26 ASoC: S3C24XX: Su... |
90 91 |
.dai_link = &simtec_dai_aic33, .num_links = 1, |
4f5448ae4 ASoC: Convert Sim... |
92 93 94 95 96 |
.dapm_widgets = dapm_widgets, .num_dapm_widgets = ARRAY_SIZE(dapm_widgets), .dapm_routes = base_map, .num_dapm_routes = ARRAY_SIZE(base_map), |
b2ec22e26 ASoC: S3C24XX: Su... |
97 |
}; |
b2ec22e26 ASoC: S3C24XX: Su... |
98 99 100 101 |
static int __devinit simtec_audio_hermes_probe(struct platform_device *pd) { dev_info(&pd->dev, "probing.... "); |
f0fba2ad1 ASoC: multi-compo... |
102 |
return simtec_audio_core_probe(pd, &snd_soc_machine_simtec_aic33); |
b2ec22e26 ASoC: S3C24XX: Su... |
103 104 105 106 107 108 109 110 111 112 113 |
} static struct platform_driver simtec_audio_hermes_platdrv = { .driver = { .owner = THIS_MODULE, .name = "s3c24xx-simtec-hermes-snd", .pm = simtec_audio_pm, }, .probe = simtec_audio_hermes_probe, .remove = __devexit_p(simtec_audio_remove), }; |
e00c3f555 ASoC: Convert Sam... |
114 |
module_platform_driver(simtec_audio_hermes_platdrv); |
b2ec22e26 ASoC: S3C24XX: Su... |
115 |
|
e00c3f555 ASoC: Convert Sam... |
116 |
MODULE_ALIAS("platform:s3c24xx-simtec-hermes-snd"); |
b2ec22e26 ASoC: S3C24XX: Su... |
117 118 119 |
MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); MODULE_DESCRIPTION("ALSA SoC Simtec Audio support"); MODULE_LICENSE("GPL"); |