2011-07-25 15:44:46 +04:00
/*
* DB1000 / DB1500 / DB1100 ASoC audio fabric support code .
*
* ( c ) 2011 Manuel Lauss < manuel . lauss @ googlemail . com >
*
*/
# include <linux/module.h>
# include <linux/moduleparam.h>
# include <linux/timer.h>
# include <linux/interrupt.h>
# include <linux/platform_device.h>
# include <sound/core.h>
# include <sound/pcm.h>
# include <sound/soc.h>
# include <asm/mach-au1x00/au1000.h>
# include <asm/mach-db1x00/bcsr.h>
# include "psc.h"
static struct snd_soc_dai_link db1000_ac97_dai = {
. name = " AC97 " ,
. stream_name = " AC97 HiFi " ,
. codec_dai_name = " ac97-hifi " ,
. cpu_dai_name = " alchemy-ac97c " ,
. platform_name = " alchemy-pcm-dma.0 " ,
. codec_name = " ac97-codec " ,
} ;
static struct snd_soc_card db1000_ac97 = {
. name = " DB1000_AC97 " ,
2011-12-23 05:53:55 +04:00
. owner = THIS_MODULE ,
2011-07-25 15:44:46 +04:00
. dai_link = & db1000_ac97_dai ,
. num_links = 1 ,
} ;
2012-12-07 18:26:22 +04:00
static int db1000_audio_probe ( struct platform_device * pdev )
2011-07-25 15:44:46 +04:00
{
struct snd_soc_card * card = & db1000_ac97 ;
card - > dev = & pdev - > dev ;
return snd_soc_register_card ( card ) ;
}
2012-12-07 18:26:22 +04:00
static int db1000_audio_remove ( struct platform_device * pdev )
2011-07-25 15:44:46 +04:00
{
struct snd_soc_card * card = platform_get_drvdata ( pdev ) ;
snd_soc_unregister_card ( card ) ;
return 0 ;
}
static struct platform_driver db1000_audio_driver = {
. driver = {
. name = " db1000-audio " ,
. pm = & snd_soc_pm_ops ,
} ,
. probe = db1000_audio_probe ,
2012-12-07 18:26:22 +04:00
. remove = db1000_audio_remove ,
2011-07-25 15:44:46 +04:00
} ;
2011-11-25 06:06:59 +04:00
module_platform_driver ( db1000_audio_driver ) ;
2011-07-25 15:44:46 +04:00
MODULE_LICENSE ( " GPL " ) ;
MODULE_DESCRIPTION ( " DB1000/DB1500/DB1100 ASoC audio " ) ;
MODULE_AUTHOR ( " Manuel Lauss " ) ;