diff options
Diffstat (limited to 'sound/soc/codecs/ad73311.c')
| -rw-r--r-- | sound/soc/codecs/ad73311.c | 40 | 
1 files changed, 25 insertions, 15 deletions
diff --git a/sound/soc/codecs/ad73311.c b/sound/soc/codecs/ad73311.c index de799cd1ba7..5fac8adbc13 100644 --- a/sound/soc/codecs/ad73311.c +++ b/sound/soc/codecs/ad73311.c @@ -23,6 +23,21 @@  #include "ad73311.h" +static const struct snd_soc_dapm_widget ad73311_dapm_widgets[] = { +SND_SOC_DAPM_INPUT("VINP"), +SND_SOC_DAPM_INPUT("VINN"), +SND_SOC_DAPM_OUTPUT("VOUTN"), +SND_SOC_DAPM_OUTPUT("VOUTP"), +}; + +static const struct snd_soc_dapm_route ad73311_dapm_routes[] = { +	{ "Capture", NULL, "VINP" }, +	{ "Capture", NULL, "VINN" }, + +	{ "VOUTN", NULL, "Playback" }, +	{ "VOUTP", NULL, "Playback" }, +}; +  static struct snd_soc_dai_driver ad73311_dai = {  	.name = "ad73311-hifi",  	.playback = { @@ -39,7 +54,12 @@ static struct snd_soc_dai_driver ad73311_dai = {  		.formats = SNDRV_PCM_FMTBIT_S16_LE, },  }; -static struct snd_soc_codec_driver soc_codec_dev_ad73311; +static struct snd_soc_codec_driver soc_codec_dev_ad73311 = { +	.dapm_widgets = ad73311_dapm_widgets, +	.num_dapm_widgets = ARRAY_SIZE(ad73311_dapm_widgets), +	.dapm_routes = ad73311_dapm_routes, +	.num_dapm_routes = ARRAY_SIZE(ad73311_dapm_routes), +};  static int ad73311_probe(struct platform_device *pdev)  { @@ -47,7 +67,7 @@ static int ad73311_probe(struct platform_device *pdev)  			&soc_codec_dev_ad73311, &ad73311_dai, 1);  } -static int __devexit ad73311_remove(struct platform_device *pdev) +static int ad73311_remove(struct platform_device *pdev)  {  	snd_soc_unregister_codec(&pdev->dev);  	return 0; @@ -55,25 +75,15 @@ static int __devexit ad73311_remove(struct platform_device *pdev)  static struct platform_driver ad73311_codec_driver = {  	.driver = { -			.name = "ad73311-codec", +			.name = "ad73311",  			.owner = THIS_MODULE,  	},  	.probe = ad73311_probe, -	.remove = __devexit_p(ad73311_remove), +	.remove = ad73311_remove,  }; -static int __init ad73311_init(void) -{ -	return platform_driver_register(&ad73311_codec_driver); -} -module_init(ad73311_init); - -static void __exit ad73311_exit(void) -{ -	platform_driver_unregister(&ad73311_codec_driver); -} -module_exit(ad73311_exit); +module_platform_driver(ad73311_codec_driver);  MODULE_DESCRIPTION("ASoC ad73311 driver");  MODULE_AUTHOR("Cliff Cai ");  | 
