1
2
3
4
5
6
7
8
9
10
11
12
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
From 8829efb30ecbecde33a266ddaed25a74cebbbaf2 Mon Sep 17 00:00:00 2001
From: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
Date: Tue, 13 Dec 2016 18:07:13 +0300
Subject: [PATCH 103/104] ASoC: add dummy Si468x driver
Signed-off-by: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
---
sound/soc/codecs/Kconfig | 3 +++
sound/soc/codecs/Makefile | 2 ++
sound/soc/codecs/si468x.c | 66 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 71 insertions(+)
create mode 100644 sound/soc/codecs/si468x.c
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 4d82a58..264fe79 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -588,6 +588,9 @@ config SND_SOC_PCM3168A_SPI
select SND_SOC_PCM3168A
select REGMAP_SPI
+config SND_SOC_SI468X
+ tristate "Dummy sound driver for Si468x radio"
+
config SND_SOC_PCM5102A
tristate
diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile
index 0f548fd3..71a6c2f 100644
--- a/sound/soc/codecs/Makefile
+++ b/sound/soc/codecs/Makefile
@@ -116,6 +116,7 @@ snd-soc-sigmadsp-objs := sigmadsp.o
snd-soc-sigmadsp-i2c-objs := sigmadsp-i2c.o
snd-soc-sigmadsp-regmap-objs := sigmadsp-regmap.o
snd-soc-si476x-objs := si476x.o
+snd-soc-si468x-objs := si468x.o
snd-soc-sirf-audio-codec-objs := sirf-audio-codec.o
snd-soc-sn95031-objs := sn95031.o
snd-soc-spdif-tx-objs := spdif_transmitter.o
@@ -328,6 +329,7 @@ obj-$(CONFIG_SND_SOC_SIGMADSP) += snd-soc-sigmadsp.o
obj-$(CONFIG_SND_SOC_SIGMADSP_I2C) += snd-soc-sigmadsp-i2c.o
obj-$(CONFIG_SND_SOC_SIGMADSP_REGMAP) += snd-soc-sigmadsp-regmap.o
obj-$(CONFIG_SND_SOC_SI476X) += snd-soc-si476x.o
+obj-$(CONFIG_SND_SOC_SI468X) += snd-soc-si468x.o
obj-$(CONFIG_SND_SOC_SN95031) +=snd-soc-sn95031.o
obj-$(CONFIG_SND_SOC_SPDIF) += snd-soc-spdif-rx.o snd-soc-spdif-tx.o
obj-$(CONFIG_SND_SOC_SSM2518) += snd-soc-ssm2518.o
diff --git a/sound/soc/codecs/si468x.c b/sound/soc/codecs/si468x.c
new file mode 100644
index 0000000..18b099f
--- /dev/null
+++ b/sound/soc/codecs/si468x.c
@@ -0,0 +1,66 @@
+/*
+ * Dummy sound driver for Si468x DAB/FM/AM chips
+ * Copyright 2016 Andrey Gusakov <andrey.gusakov@cogentembedded.com>
+ *
+ * Based on: Driver for the DFBM-CS320 bluetooth module
+ * Copyright 2011 Lars-Peter Clausen <lars@metafoo.de>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+
+#include <sound/soc.h>
+
+static struct snd_soc_dai_driver si468x_dai = {
+ .name = "si468x-pcm",
+ .capture = {
+ .channels_min = 2,
+ .channels_max = 2,
+ .rates = SNDRV_PCM_RATE_48000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ },
+};
+
+static struct snd_soc_codec_driver soc_codec_dev_si468x;
+
+static int si468x_probe(struct platform_device *pdev)
+{
+ return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_si468x,
+ &si468x_dai, 1);
+}
+
+static int si468x_remove(struct platform_device *pdev)
+{
+ snd_soc_unregister_codec(&pdev->dev);
+
+ return 0;
+}
+
+static const struct of_device_id si468x_of_match[] = {
+ { .compatible = "si,si468x-pcm", },
+ { }
+};
+MODULE_DEVICE_TABLE(of, si468x_of_match);
+
+static struct platform_driver si468x_driver = {
+ .driver = {
+ .name = "si468x",
+ .of_match_table = si468x_of_match,
+ .owner = THIS_MODULE,
+ },
+ .probe = si468x_probe,
+ .remove = si468x_remove,
+};
+
+module_platform_driver(si468x_driver);
+
+MODULE_AUTHOR("Andrey Gusakov <andrey.gusakov@cogentembedded.com>");
+MODULE_DESCRIPTION("ASoC Si468x radio chip driver");
+MODULE_LICENSE("GPL");
--
1.7.10.4
|