diff mbox

ASoC: bt-sco: Add devicetree support for bt-sco codec

Message ID 1430856941-3938-1-git-send-email-marek@goldelico.com
State Superseded, archived
Headers show

Commit Message

Marek Belisko May 5, 2015, 8:15 p.m. UTC
Add devicetree support for bt-sco generic bluetooth SCO link codec.

Signed-off-by: Marek Belisko <marek@goldelico.com>
---

 Documentation/devicetree/bindings/sound/bt-sco.txt    | 13 +++++++++++++
 Documentation/devicetree/bindings/vendor-prefixes.txt |  1 +
 sound/soc/codecs/bt-sco.c                             | 10 ++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/bt-sco.txt

Comments

Mark Brown May 6, 2015, 12:13 p.m. UTC | #1
On Tue, May 05, 2015 at 10:15:41PM +0200, Marek Belisko wrote:

> +static const struct of_device_id bt_sco_codec_of_match[] = {
> +	{ .compatible = "delta,dfbmcs320", },
> +	{ .compatible = "linux,bt-sco", },

Is there any burning reason for adding the linux,bt-sco compatible?
Belisko Marek May 6, 2015, 7:38 p.m. UTC | #2
Hi Mark,

On Wed, May 6, 2015 at 2:13 PM, Mark Brown <broonie@kernel.org> wrote:
> On Tue, May 05, 2015 at 10:15:41PM +0200, Marek Belisko wrote:
>
>> +static const struct of_device_id bt_sco_codec_of_match[] = {
>> +     { .compatible = "delta,dfbmcs320", },
>> +     { .compatible = "linux,bt-sco", },
>
> Is there any burning reason for adding the linux,bt-sco compatible?
No no real reason just want to keep that if somebody would like use it from DT
referenced by bt-sco entry (similar as platform data). I'm adding DT
support for it because I want to use
this for W2CBW003 chip and I can use simply "linux,bt-sco" property in
DT or I instead of that add new vendor
prefix + add new compatible entry which is IMO much harder that
reference it by generic name.

Thanks,

marek
Mark Brown May 8, 2015, 6:06 p.m. UTC | #3
On Wed, May 06, 2015 at 09:38:55PM +0200, Belisko Marek wrote:

> > Is there any burning reason for adding the linux,bt-sco compatible?

> No no real reason just want to keep that if somebody would like use it from DT
> referenced by bt-sco entry (similar as platform data). I'm adding DT
> support for it because I want to use
> this for W2CBW003 chip and I can use simply "linux,bt-sco" property in
> DT or I instead of that add new vendor
> prefix + add new compatible entry which is IMO much harder that
> reference it by generic name.

OK, can you change the patch to just have the part specific name please?
If we were to have a generic binding it should really be richer than
this, for example I think I've seen BT devices that take in 16kHz
streams rather than 8kHz and there are often requirements for oversized
data frames as well.
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/sound/bt-sco.txt b/Documentation/devicetree/bindings/sound/bt-sco.txt
new file mode 100644
index 0000000..7e6252f
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/bt-sco.txt
@@ -0,0 +1,13 @@ 
+Bluetooth-SCO audio CODEC
+
+This device support generic Bluetooth SCO link.
+
+Required properties:
+
+  - compatible : "linux,bt-sco" or "delta,dfbmcs320"
+
+Example:
+
+codec: bt_sco {
+	compatible = "linux,bt-sco";
+};
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index ed3bd55..7a3a657 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -55,6 +55,7 @@  crystalfontz	Crystalfontz America, Inc.
 cubietech	Cubietech, Ltd.
 dallas	Maxim Integrated Products (formerly Dallas Semiconductor)
 davicom	DAVICOM Semiconductor, Inc.
+delta	Delta Electronics, Inc.
 denx	Denx Software Engineering
 digi	Digi International Inc.
 digilent	Diglent, Inc.
diff --git a/sound/soc/codecs/bt-sco.c b/sound/soc/codecs/bt-sco.c
index e7238b8..9002f2d 100644
--- a/sound/soc/codecs/bt-sco.c
+++ b/sound/soc/codecs/bt-sco.c
@@ -74,9 +74,19 @@  static struct platform_device_id bt_sco_driver_ids[] = {
 };
 MODULE_DEVICE_TABLE(platform, bt_sco_driver_ids);
 
+#if defined(CONFIG_OF)
+static const struct of_device_id bt_sco_codec_of_match[] = {
+	{ .compatible = "delta,dfbmcs320", },
+	{ .compatible = "linux,bt-sco", },
+	{},
+};
+MODULE_DEVICE_TABLE(of, bt_sco_codec_of_match);
+#endif
+
 static struct platform_driver bt_sco_driver = {
 	.driver = {
 		.name = "bt-sco",
+		.of_match_table = of_match_ptr(bt_sco_codec_of_match),
 	},
 	.probe = bt_sco_probe,
 	.remove = bt_sco_remove,