ASoC: dfbmcs320: make the driver common for other BT modules
authorBarry Song <21cnbao@gmail.com>
Sat, 18 May 2013 12:25:00 +0000 (20:25 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 21 May 2013 18:17:08 +0000 (13:17 -0500)
DFBM-CS320 is only one of bluetooth modules using CSR bluetooth chips,
we don't want everyone to have a seperate codec driver. anyway, the
feature of Bluetooth SCO is same on all platforms, so this patch
makes the DFBM-CS320 driver become a common BT SCO link driver.

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/Kconfig
sound/soc/codecs/Makefile
sound/soc/codecs/bt-sco.c [new file with mode: 0644]
sound/soc/codecs/dfbmcs320.c [deleted file]
sound/soc/samsung/Kconfig
sound/soc/samsung/neo1973_wm8753.c

index 2f45f00..395fda2 100644 (file)
@@ -40,7 +40,7 @@ config SND_SOC_ALL_CODECS
        select SND_SOC_DA7213 if I2C
        select SND_SOC_DA732X if I2C
        select SND_SOC_DA9055 if I2C
-       select SND_SOC_DFBMCS320
+       select SND_SOC_BT_SCO
        select SND_SOC_ISABELLE if I2C
        select SND_SOC_JZ4740_CODEC
        select SND_SOC_LM4857 if I2C
@@ -263,7 +263,7 @@ config SND_SOC_DA732X
 config SND_SOC_DA9055
        tristate
 
-config SND_SOC_DFBMCS320
+config SND_SOC_BT_SCO
        tristate
 
 config SND_SOC_DMIC
index b9e41c9..5ba9be8 100644 (file)
@@ -27,7 +27,7 @@ snd-soc-da7210-objs := da7210.o
 snd-soc-da7213-objs := da7213.o
 snd-soc-da732x-objs := da732x.o
 snd-soc-da9055-objs := da9055.o
-snd-soc-dfbmcs320-objs := dfbmcs320.o
+snd-soc-bt-sco-objs := bt-sco.o
 snd-soc-dmic-objs := dmic.o
 snd-soc-isabelle-objs := isabelle.o
 snd-soc-jz4740-codec-objs := jz4740.o
@@ -154,7 +154,7 @@ obj-$(CONFIG_SND_SOC_DA7210)        += snd-soc-da7210.o
 obj-$(CONFIG_SND_SOC_DA7213)   += snd-soc-da7213.o
 obj-$(CONFIG_SND_SOC_DA732X)   += snd-soc-da732x.o
 obj-$(CONFIG_SND_SOC_DA9055)   += snd-soc-da9055.o
-obj-$(CONFIG_SND_SOC_DFBMCS320)        += snd-soc-dfbmcs320.o
+obj-$(CONFIG_SND_SOC_BT_SCO)   += snd-soc-bt-sco.o
 obj-$(CONFIG_SND_SOC_DMIC)     += snd-soc-dmic.o
 obj-$(CONFIG_SND_SOC_ISABELLE) += snd-soc-isabelle.o
 obj-$(CONFIG_SND_SOC_JZ4740_CODEC)     += snd-soc-jz4740-codec.o
diff --git a/sound/soc/codecs/bt-sco.c b/sound/soc/codecs/bt-sco.c
new file mode 100644 (file)
index 0000000..a081d9f
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * Driver for generic Bluetooth SCO link
+ * 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 bt_sco_dai = {
+       .name = "bt-sco-pcm",
+       .playback = {
+               .channels_min = 1,
+               .channels_max = 1,
+               .rates = SNDRV_PCM_RATE_8000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE,
+       },
+       .capture = {
+               .channels_min = 1,
+               .channels_max = 1,
+               .rates = SNDRV_PCM_RATE_8000,
+               .formats = SNDRV_PCM_FMTBIT_S16_LE,
+       },
+};
+
+static struct snd_soc_codec_driver soc_codec_dev_bt_sco;
+
+static int bt_sco_probe(struct platform_device *pdev)
+{
+       return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_bt_sco,
+                       &bt_sco_dai, 1);
+}
+
+static int bt_sco_remove(struct platform_device *pdev)
+{
+       snd_soc_unregister_codec(&pdev->dev);
+
+       return 0;
+}
+
+static struct platform_device_id bt_sco_driver_ids[] = {
+       {
+               .name           = "dfbmcs320",
+       },
+       {},
+};
+MODULE_DEVICE_TABLE(platform, bt_sco_driver_ids);
+
+static struct platform_driver bt_sco_driver = {
+       .driver = {
+               .name = "bt-sco",
+               .owner = THIS_MODULE,
+       },
+       .probe = bt_sco_probe,
+       .remove = bt_sco_remove,
+       .id_table = bt_sco_driver_ids,
+};
+
+module_platform_driver(bt_sco_driver);
+
+MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
+MODULE_DESCRIPTION("ASoC generic bluethooth sco link driver");
+MODULE_LICENSE("GPL");
diff --git a/sound/soc/codecs/dfbmcs320.c b/sound/soc/codecs/dfbmcs320.c
deleted file mode 100644 (file)
index 4f4f7f4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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 dfbmcs320_dai = {
-       .name = "dfbmcs320-pcm",
-       .playback = {
-               .channels_min = 1,
-               .channels_max = 1,
-               .rates = SNDRV_PCM_RATE_8000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE,
-       },
-       .capture = {
-               .channels_min = 1,
-               .channels_max = 1,
-               .rates = SNDRV_PCM_RATE_8000,
-               .formats = SNDRV_PCM_FMTBIT_S16_LE,
-       },
-};
-
-static struct snd_soc_codec_driver soc_codec_dev_dfbmcs320;
-
-static int dfbmcs320_probe(struct platform_device *pdev)
-{
-       return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_dfbmcs320,
-                       &dfbmcs320_dai, 1);
-}
-
-static int dfbmcs320_remove(struct platform_device *pdev)
-{
-       snd_soc_unregister_codec(&pdev->dev);
-
-       return 0;
-}
-
-static struct platform_driver dfmcs320_driver = {
-       .driver = {
-               .name = "dfbmcs320",
-               .owner = THIS_MODULE,
-       },
-       .probe = dfbmcs320_probe,
-       .remove = dfbmcs320_remove,
-};
-
-module_platform_driver(dfmcs320_driver);
-
-MODULE_AUTHOR("Lars-Peter Clausen <lars@metafoo.de>");
-MODULE_DESCRIPTION("ASoC DFBM-CS320 bluethooth module driver");
-MODULE_LICENSE("GPL");
index 475fb0d..ae0ea87 100644 (file)
@@ -39,7 +39,7 @@ config SND_SOC_SAMSUNG_NEO1973_WM8753
        depends on SND_SOC_SAMSUNG && MACH_NEO1973_GTA02
        select SND_S3C24XX_I2S
        select SND_SOC_WM8753
-       select SND_SOC_DFBMCS320
+       select SND_SOC_SCO
        help
          Say Y here to enable audio support for the Openmoko Neo1973
          Smartphones.
index e591c38..807db41 100644 (file)
@@ -373,7 +373,7 @@ static struct snd_soc_dai_link neo1973_dai[] = {
 { /* Voice via BT */
        .name = "Bluetooth",
        .stream_name = "Voice",
-       .cpu_dai_name = "dfbmcs320-pcm",
+       .cpu_dai_name = "bt-sco-pcm",
        .codec_dai_name = "wm8753-voice",
        .codec_name = "wm8753.0-001a",
        .ops = &neo1973_voice_ops,