[alsa-devel] [PATCH 4/4] ASoC: simple-card: probe both sound-dai and remote-endpoint
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Thu Apr 14 07:48:57 CEST 2016
From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
Current simple-card can probe "sound-dai" base connection on DT.
OTOH, V4L2 soc is using graph base connection. Because of this
different style, DT will be confusable if it support both
video/sound in same time.
This patch enables both "sound-dai" (= current simple-card style)
and "remote-endpoint" (= current V4L2 style) on simple-card.
sound {
compatible = "simple-audio-card";
...
sndcpu: simple-audio-card,cpu {
sound-dai = <&xxxx>;
};
sndcodec: simple-audio-card,codec {
remote-endpoint = <&yyyy>;
};
};
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
---
.../devicetree/bindings/sound/simple-card.txt | 19 +++++++++++++++++++
sound/soc/generic/simple-card.c | 9 ++++++---
2 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/simple-card.txt b/Documentation/devicetree/bindings/sound/simple-card.txt
index cf3979e..030edca 100644
--- a/Documentation/devicetree/bindings/sound/simple-card.txt
+++ b/Documentation/devicetree/bindings/sound/simple-card.txt
@@ -70,6 +70,7 @@ properties should also be placed in the codec node if needed.
Required CPU/CODEC subnodes properties:
- sound-dai : phandle and port of CPU/CODEC
+- remote-endpoint : graph endpoint of CPU/CODEC
Optional CPU/CODEC subnodes properties:
@@ -162,3 +163,21 @@ sound {
};
};
};
+
+Example 3 - sound-dai and remote-endpoint
+
+rsnd_ak4613: sound {
+ compatible = "simple-audio-card";
+
+ simple-audio-card,name = "R-Sound";
+ simple-audio-card,format = "left_j";
+ simple-audio-card,bitclock-master = <&sndcpu>;
+ simple-audio-card,frame-master = <&sndcpu>;
+
+ sndcpu: simple-audio-card,cpu {
+ sound-dai = <&rcar_sound 1>;
+ };
+ sndcodec: simple-audio-card,codec {
+ remote-endpoint = <&du_out_hdmi0>;
+ };
+};
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 2389ab4..a1d6001 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -14,6 +14,7 @@
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
+#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/string.h>
#include <sound/jack.h>
@@ -224,11 +225,13 @@ asoc_simple_card_sub_parse_of(struct device_node *np,
int ret;
/*
- * Get node via "sound-dai = <&phandle port>"
+ * Get node via
+ * sound-dai = <&phandle port>
+ * or
+ * remote-endpoint = <&phandle>
* it will be used as xxx_of_node on soc_bind_dai_link()
*/
- ret = of_parse_phandle_with_args(np, "sound-dai",
- "#sound-dai-cells", 0, &args);
+ ret = of_parse_snd_soc_connection_with_args(np, &args);
if (ret)
return ret;
--
1.9.1
More information about the Alsa-devel
mailing list