Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: audio-graph-card2-custom-sample.dtsi: add DPCM sample (Multi)

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>

authored by

Kuninori Morimoto and committed by
Mark Brown
cb2d94aa e781759a

+35 -1
+35 -1
sound/soc/generic/audio-graph-card2-custom-sample.dtsi
··· 37 37 * cpu3 <-@--* *--@-> codec3 38 38 * cpu4 <-@--* * 39 39 * **** 40 + * 41 + * [DPCM-Multi] 42 + * 43 + * --NOTE-- 44 + * Multi-FE is not supported by ASoC. 45 + * 46 + * FE BE 47 + * **** +-+ 48 + * cpu5 <-@--* *--@-> | | -> codec4 49 + * cpu6 <-@--* * | | -> codec5 50 + * **** +-+ 40 51 */ 41 52 audio-graph-card2-custom-sample { 42 53 /* ··· 62 51 routing = "TC DAI3 Playback", "DAI3 Playback", 63 52 "TC DAI3 Playback", "DAI4 Playback", 64 53 "DAI3 Capture", "TC DAI3 Capture", 65 - "DAI4 Capture", "TC DAI3 Capture"; 54 + "DAI4 Capture", "TC DAI3 Capture", 55 + /* for [DPCM-Multi] */ 56 + /* BE FE */ 57 + "TC DAI4 Playback", "DAI5 Playback", 58 + "TC DAI5 Playback", "DAI5 Playback", 59 + "TC DAI4 Playback", "DAI6 Playback", 60 + "TC DAI5 Playback", "DAI6 Playback", 61 + "DAI5 Capture", "TC DAI4 Capture", 62 + "DAI5 Capture", "TC DAI5 Capture", 63 + "DAI6 Capture", "TC DAI4 Capture", 64 + "DAI6 Capture", "TC DAI5 Capture"; 66 65 67 66 links = <&cpu0 /* normal: cpu side only */ 68 67 &mcpu0 /* multi: cpu side only */ 69 68 &fe00 &fe01 &be0 /* dpcm: both FE / BE */ 69 + &fe10 &fe11 &be1 /* dpcm-m: both FE / BE */ 70 70 >; 71 71 72 72 multi { ··· 91 69 port@1 { mcodec1_ep: endpoint { remote-endpoint = <&codec1_ep>; }; }; 92 70 port@2 { mcodec2_ep: endpoint { remote-endpoint = <&codec2_ep>; }; }; 93 71 }; 72 + ports@2 { 73 + port@0 { mbe_ep: endpoint { remote-endpoint = <&be10_ep>; }; }; 74 + port@1 { mbe1_ep: endpoint { remote-endpoint = <&codec4_ep>; }; }; 75 + port@2 { mbe2_ep: endpoint { remote-endpoint = <&codec5_ep>; }; }; 76 + }; 94 77 }; 95 78 96 79 dpcm { ··· 103 76 ports@0 { 104 77 fe00: port@0 { fe00_ep: endpoint { remote-endpoint = <&cpu3_ep>; }; }; 105 78 fe01: port@1 { fe01_ep: endpoint { remote-endpoint = <&cpu4_ep>; }; }; 79 + fe10: port@2 { fe10_ep: endpoint { remote-endpoint = <&cpu5_ep>; }; }; 80 + fe11: port@3 { fe11_ep: endpoint { remote-endpoint = <&cpu6_ep>; }; }; 106 81 }; 107 82 /* BE */ 108 83 ports@1 { 109 84 be0: port@0 { be00_ep: endpoint { remote-endpoint = <&codec3_ep>; }; }; 85 + be1: port@1 { be10_ep: endpoint { remote-endpoint = <&mbe_ep>; }; }; 110 86 }; 111 87 }; 112 88 }; ··· 132 102 port@2 { cpu2_ep: endpoint { remote-endpoint = <&mcpu2_ep>; }; }; 133 103 port@3 { cpu3_ep: endpoint { remote-endpoint = <&fe00_ep>; }; }; 134 104 port@4 { cpu4_ep: endpoint { remote-endpoint = <&fe01_ep>; }; }; 105 + port@5 { cpu5_ep: endpoint { remote-endpoint = <&fe10_ep>; }; }; 106 + port@6 { cpu6_ep: endpoint { remote-endpoint = <&fe11_ep>; }; }; 135 107 }; 136 108 }; 137 109 ··· 158 126 port@1 { codec1_ep: endpoint { remote-endpoint = <&mcodec1_ep>; }; }; 159 127 port@2 { codec2_ep: endpoint { remote-endpoint = <&mcodec2_ep>; }; }; 160 128 port@3 { codec3_ep: endpoint { remote-endpoint = <&be00_ep>; }; }; 129 + port@4 { codec4_ep: endpoint { remote-endpoint = <&mbe1_ep>; }; }; 130 + port@5 { codec5_ep: endpoint { remote-endpoint = <&mbe2_ep>; }; }; 161 131 }; 162 132 }; 163 133 };