ASoC: audio-graph-card2-custom-sample.dtsi: add DPCM sample (Multi)
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 12 Oct 2021 04:56:27 +0000 (13:56 +0900)
committerMark Brown <broonie@kernel.org>
Fri, 15 Oct 2021 15:10:47 +0000 (16:10 +0100)
This patch adds DPCM link Multi-CPU/Codec sample to
audio-graph-card2-custom-sample.dtsi.
This sample is assuming MIXer connection.
One note is that Multi-FE is not supported on ASoC

FE BE
**** +-+
CPU5 -- *  * -- | | -- Codec4
CPU6 -- *  * | | -- Codec5
**** +-+

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/87pmsalu2s.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/audio-graph-card2-custom-sample.dtsi

index b03dbce504cb474c462200171d32627cb43f4760..4bc96e0aa447315fd97e1cfc3a33fe8d45da7f49 100644 (file)
         *      cpu3 <-@--*  *--@-> codec3
         *      cpu4 <-@--*  *
         *                ****
+        *
+        * [DPCM-Multi]
+        *
+        * --NOTE--
+        * Multi-FE is not supported by ASoC.
+        *
+        *      FE              BE
+        *                ****      +-+
+        *      cpu5 <-@--*  *--@-> | | -> codec4
+        *      cpu6 <-@--*  *      | | -> codec5
+        *                ****      +-+
         */
        audio-graph-card2-custom-sample {
                /*
                routing = "TC DAI3 Playback",   "DAI3 Playback",
                          "TC DAI3 Playback",   "DAI4 Playback",
                          "DAI3 Capture",       "TC DAI3 Capture",
-                         "DAI4 Capture",       "TC DAI3 Capture";
+                         "DAI4 Capture",       "TC DAI3 Capture",
+                       /* for [DPCM-Multi]        */
+                       /* BE                   FE */
+                         "TC DAI4 Playback",   "DAI5 Playback",
+                         "TC DAI5 Playback",   "DAI5 Playback",
+                         "TC DAI4 Playback",   "DAI6 Playback",
+                         "TC DAI5 Playback",   "DAI6 Playback",
+                         "DAI5 Capture",       "TC DAI4 Capture",
+                         "DAI5 Capture",       "TC DAI5 Capture",
+                         "DAI6 Capture",       "TC DAI4 Capture",
+                         "DAI6 Capture",       "TC DAI5 Capture";
 
                links = <&cpu0                  /* normal: cpu side only */
                         &mcpu0                 /* multi:  cpu side only */
                         &fe00 &fe01 &be0       /* dpcm:   both FE / BE  */
+                        &fe10 &fe11 &be1       /* dpcm-m: both FE / BE  */
                >;
 
                multi {
                                port@1 { mcodec1_ep: endpoint { remote-endpoint = <&codec1_ep>; }; };
                                port@2 { mcodec2_ep: endpoint { remote-endpoint = <&codec2_ep>; }; };
                        };
+                       ports@2 {
+                               port@0 { mbe_ep:  endpoint { remote-endpoint = <&be10_ep>;  }; };
+                               port@1 { mbe1_ep: endpoint { remote-endpoint = <&codec4_ep>; }; };
+                               port@2 { mbe2_ep: endpoint { remote-endpoint = <&codec5_ep>; }; };
+                       };
                };
 
                dpcm {
                        ports@0 {
                        fe00:   port@0 { fe00_ep: endpoint { remote-endpoint = <&cpu3_ep>; }; };
                        fe01:   port@1 { fe01_ep: endpoint { remote-endpoint = <&cpu4_ep>; }; };
+                       fe10:   port@2 { fe10_ep: endpoint { remote-endpoint = <&cpu5_ep>; }; };
+                       fe11:   port@3 { fe11_ep: endpoint { remote-endpoint = <&cpu6_ep>; }; };
                        };
                        /* BE */
                        ports@1 {
                        be0:    port@0 { be00_ep: endpoint { remote-endpoint = <&codec3_ep>; }; };
+                       be1:    port@1 { be10_ep: endpoint { remote-endpoint = <&mbe_ep>; }; };
                        };
                };
        };
                              port@2 { cpu2_ep: endpoint { remote-endpoint = <&mcpu2_ep>; }; };
                              port@3 { cpu3_ep: endpoint { remote-endpoint = <&fe00_ep>; }; };
                              port@4 { cpu4_ep: endpoint { remote-endpoint = <&fe01_ep>; }; };
+                             port@5 { cpu5_ep: endpoint { remote-endpoint = <&fe10_ep>; }; };
+                             port@6 { cpu6_ep: endpoint { remote-endpoint = <&fe11_ep>; }; };
                };
        };
 
                        port@1  { codec1_ep:  endpoint { remote-endpoint = <&mcodec1_ep>; }; };
                        port@2  { codec2_ep:  endpoint { remote-endpoint = <&mcodec2_ep>; }; };
                        port@3  { codec3_ep:  endpoint { remote-endpoint = <&be00_ep>; }; };
+                       port@4  { codec4_ep:  endpoint { remote-endpoint = <&mbe1_ep>; }; };
+                       port@5  { codec5_ep:  endpoint { remote-endpoint = <&mbe2_ep>; }; };
                };
        };
 };