ASoC: rsnd: add TDM Split mode support for Document
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 6 Nov 2018 05:21:22 +0000 (05:21 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 6 Nov 2018 17:40:29 +0000 (17:40 +0000)
This patch adds TDM Split mode support. rsnd driver is assuming
audio-graph-scu-card is used for Sound Card.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/sound/renesas,rsnd.txt

index 6ed1a36..453e8ec 100644 (file)
@@ -188,6 +188,25 @@ In DMA mode, you can select not to use SSIU by using "no-busif" via SSI.
 SSIU handles BUSIF which will be used for TDM Split mode.
 This driver is assuming that audio-graph card will be used.
 
+TDM Split mode merges 4 sounds. You can see 4 sound interface on system,
+and these sounds will be merged SSIU/SSI.
+
+       aplay -D plughw:0,0 xxxx.wav &
+       aplay -D plughw:0,1 xxxx.wav &
+       aplay -D plughw:0,2 xxxx.wav &
+       aplay -D plughw:0,3 xxxx.wav
+
+                 2ch                     8ch
+       [MEM] -> [SSIU 30] -+-> [SSIU 3] --> [Codec]
+                 2ch       |
+       [MEM] -> [SSIU 31] -+
+                 2ch       |
+       [MEM] -> [SSIU 32] -+
+                 2ch       |
+       [MEM] -> [SSIU 33] -+
+
+see "Example: simple sound card for TDM Split"
+
 =============================================
 * SSI (Serial Sound Interface)
 =============================================
@@ -648,6 +667,78 @@ rsnd_tdm: sound {
        };
 };
 
+=============================================
+Example: simple sound card for TDM Split
+=============================================
+
+sound_card: sound {
+       compatible = "audio-graph-scu-card";
+       prefix = "xxxx";
+       routing = "xxxx Playback", "DAI0 Playback",
+                 "xxxx Playback", "DAI1 Playback",
+                 "xxxx Playback", "DAI2 Playback",
+                 "xxxx Playback", "DAI3 Playback";
+       convert-channels = <8>; /* TDM Split */
+
+       dais = <&rsnd_port0     /* playback ch1/ch2 */
+               &rsnd_port1     /* playback ch3/ch4 */
+               &rsnd_port2     /* playback ch5/ch6 */
+               &rsnd_port3     /* playback ch7/ch8 */
+               >;
+};
+
+audio-codec {
+       ...
+       port {
+               codec_0: endpoint@1 {
+                       remote-endpoint = <&rsnd_ep0>;
+               };
+               codec_1: endpoint@2 {
+                       remote-endpoint = <&rsnd_ep1>;
+               };
+               codec_2: endpoint@3 {
+                       remote-endpoint = <&rsnd_ep2>;
+               };
+               codec_3: endpoint@4 {
+                       remote-endpoint = <&rsnd_ep3>;
+               };
+       };
+};
+
+&rcar_sound {
+       ...
+       ports {
+               rsnd_port0: port@0 {
+                       rsnd_ep0: endpoint {
+                               remote-endpoint = <&codec_0>;
+                               ...
+                               playback = <&ssiu30 &ssi3>;
+                       };
+               };
+               rsnd_port1: port@1 {
+                       rsnd_ep1: endpoint {
+                               remote-endpoint = <&codec_1>;
+                               ...
+                               playback = <&ssiu31 &ssi3>;
+                       };
+               };
+               rsnd_port2: port@2 {
+                       rsnd_ep2: endpoint {
+                               remote-endpoint = <&codec_2>;
+                               ...
+                               playback = <&ssiu32 &ssi3>;
+                       };
+               };
+               rsnd_port3: port@3 {
+                       rsnd_ep3: endpoint {
+                               remote-endpoint = <&codec_3>;
+                               ...
+                               playback = <&ssiu33 &ssi3>;
+                       };
+               };
+       };
+};
+
 =============================================
 Example: simple sound card for Multi channel
 =============================================