Commit | Line | Data |
---|---|---|
b2ce305d ML |
1 | /* |
2 | * DB1000/DB1500/DB1100 ASoC audio fabric support code. | |
3 | * | |
4 | * (c) 2011 Manuel Lauss <manuel.lauss@googlemail.com> | |
5 | * | |
6 | */ | |
7 | ||
8 | #include <linux/module.h> | |
9 | #include <linux/moduleparam.h> | |
10 | #include <linux/timer.h> | |
11 | #include <linux/interrupt.h> | |
12 | #include <linux/platform_device.h> | |
13 | #include <sound/core.h> | |
14 | #include <sound/pcm.h> | |
15 | #include <sound/soc.h> | |
16 | #include <asm/mach-au1x00/au1000.h> | |
17 | #include <asm/mach-db1x00/bcsr.h> | |
18 | ||
19 | #include "psc.h" | |
20 | ||
21 | static struct snd_soc_dai_link db1000_ac97_dai = { | |
22 | .name = "AC97", | |
23 | .stream_name = "AC97 HiFi", | |
24 | .codec_dai_name = "ac97-hifi", | |
25 | .cpu_dai_name = "alchemy-ac97c", | |
26 | .platform_name = "alchemy-pcm-dma.0", | |
27 | .codec_name = "ac97-codec", | |
28 | }; | |
29 | ||
30 | static struct snd_soc_card db1000_ac97 = { | |
31 | .name = "DB1000_AC97", | |
32 | .dai_link = &db1000_ac97_dai, | |
33 | .num_links = 1, | |
34 | }; | |
35 | ||
36 | static int __devinit db1000_audio_probe(struct platform_device *pdev) | |
37 | { | |
38 | struct snd_soc_card *card = &db1000_ac97; | |
39 | card->dev = &pdev->dev; | |
40 | return snd_soc_register_card(card); | |
41 | } | |
42 | ||
43 | static int __devexit db1000_audio_remove(struct platform_device *pdev) | |
44 | { | |
45 | struct snd_soc_card *card = platform_get_drvdata(pdev); | |
46 | snd_soc_unregister_card(card); | |
47 | return 0; | |
48 | } | |
49 | ||
50 | static struct platform_driver db1000_audio_driver = { | |
51 | .driver = { | |
52 | .name = "db1000-audio", | |
53 | .owner = THIS_MODULE, | |
54 | .pm = &snd_soc_pm_ops, | |
55 | }, | |
56 | .probe = db1000_audio_probe, | |
57 | .remove = __devexit_p(db1000_audio_remove), | |
58 | }; | |
59 | ||
60 | static int __init db1000_audio_load(void) | |
61 | { | |
62 | return platform_driver_register(&db1000_audio_driver); | |
63 | } | |
64 | ||
65 | static void __exit db1000_audio_unload(void) | |
66 | { | |
67 | platform_driver_unregister(&db1000_audio_driver); | |
68 | } | |
69 | ||
70 | module_init(db1000_audio_load); | |
71 | module_exit(db1000_audio_unload); | |
72 | ||
73 | MODULE_LICENSE("GPL"); | |
74 | MODULE_DESCRIPTION("DB1000/DB1500/DB1100 ASoC audio"); | |
75 | MODULE_AUTHOR("Manuel Lauss"); |