diff options
Diffstat (limited to 'sound/soc/kirkwood/kirkwood-openrd.c')
-rw-r--r-- | sound/soc/kirkwood/kirkwood-openrd.c | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/sound/soc/kirkwood/kirkwood-openrd.c b/sound/soc/kirkwood/kirkwood-openrd.c deleted file mode 100644 index 65f2a5b9ec3b..000000000000 --- a/sound/soc/kirkwood/kirkwood-openrd.c +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
1 | /* | ||
2 | * kirkwood-openrd.c | ||
3 | * | ||
4 | * (c) 2010 Arnaud Patard <apatard@mandriva.com> | ||
5 | * (c) 2010 Arnaud Patard <arnaud.patard@rtp-net.org> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License as published by the | ||
9 | * Free Software Foundation; either version 2 of the License, or (at your | ||
10 | * option) any later version. | ||
11 | */ | ||
12 | |||
13 | #include <linux/module.h> | ||
14 | #include <linux/moduleparam.h> | ||
15 | #include <linux/interrupt.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | #include <linux/slab.h> | ||
18 | #include <sound/soc.h> | ||
19 | #include <linux/platform_data/asoc-kirkwood.h> | ||
20 | #include "../codecs/cs42l51.h" | ||
21 | |||
22 | static int openrd_client_hw_params(struct snd_pcm_substream *substream, | ||
23 | struct snd_pcm_hw_params *params) | ||
24 | { | ||
25 | struct snd_soc_pcm_runtime *rtd = substream->private_data; | ||
26 | struct snd_soc_dai *codec_dai = rtd->codec_dai; | ||
27 | unsigned int freq; | ||
28 | |||
29 | switch (params_rate(params)) { | ||
30 | default: | ||
31 | case 44100: | ||
32 | freq = 11289600; | ||
33 | break; | ||
34 | case 48000: | ||
35 | freq = 12288000; | ||
36 | break; | ||
37 | case 96000: | ||
38 | freq = 24576000; | ||
39 | break; | ||
40 | } | ||
41 | |||
42 | return snd_soc_dai_set_sysclk(codec_dai, 0, freq, SND_SOC_CLOCK_IN); | ||
43 | |||
44 | } | ||
45 | |||
46 | static struct snd_soc_ops openrd_client_ops = { | ||
47 | .hw_params = openrd_client_hw_params, | ||
48 | }; | ||
49 | |||
50 | |||
51 | static struct snd_soc_dai_link openrd_client_dai[] = { | ||
52 | { | ||
53 | .name = "CS42L51", | ||
54 | .stream_name = "CS42L51 HiFi", | ||
55 | .cpu_dai_name = "i2s", | ||
56 | .platform_name = "mvebu-audio", | ||
57 | .codec_dai_name = "cs42l51-hifi", | ||
58 | .codec_name = "cs42l51-codec.0-004a", | ||
59 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, | ||
60 | .ops = &openrd_client_ops, | ||
61 | }, | ||
62 | }; | ||
63 | |||
64 | |||
65 | static struct snd_soc_card openrd_client = { | ||
66 | .name = "OpenRD Client", | ||
67 | .owner = THIS_MODULE, | ||
68 | .dai_link = openrd_client_dai, | ||
69 | .num_links = ARRAY_SIZE(openrd_client_dai), | ||
70 | }; | ||
71 | |||
72 | static int openrd_probe(struct platform_device *pdev) | ||
73 | { | ||
74 | struct snd_soc_card *card = &openrd_client; | ||
75 | int ret; | ||
76 | |||
77 | card->dev = &pdev->dev; | ||
78 | |||
79 | ret = snd_soc_register_card(card); | ||
80 | if (ret) | ||
81 | dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n", | ||
82 | ret); | ||
83 | return ret; | ||
84 | } | ||
85 | |||
86 | static int openrd_remove(struct platform_device *pdev) | ||
87 | { | ||
88 | struct snd_soc_card *card = platform_get_drvdata(pdev); | ||
89 | |||
90 | snd_soc_unregister_card(card); | ||
91 | return 0; | ||
92 | } | ||
93 | |||
94 | static struct platform_driver openrd_driver = { | ||
95 | .driver = { | ||
96 | .name = "openrd-client-audio", | ||
97 | .owner = THIS_MODULE, | ||
98 | }, | ||
99 | .probe = openrd_probe, | ||
100 | .remove = openrd_remove, | ||
101 | }; | ||
102 | |||
103 | module_platform_driver(openrd_driver); | ||
104 | |||
105 | /* Module information */ | ||
106 | MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); | ||
107 | MODULE_DESCRIPTION("ALSA SoC OpenRD Client"); | ||
108 | MODULE_LICENSE("GPL"); | ||
109 | MODULE_ALIAS("platform:openrd-client-audio"); | ||