ASoC: audio-graph-card2: add Multi CPU/Codec support
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 12 Oct 2021 04:55:03 +0000 (13:55 +0900)
committerMark Brown <broonie@kernel.org>
Fri, 15 Oct 2021 15:10:39 +0000 (16:10 +0100)
commitc8c74939f791ccbbfff988aec5f929374dbef2a6
tree9de18fce6059d1c2a5281d2ed7024ea9459fc0ad
parent6e5f68fe3f2d35046856572fa037a5149d55a070
ASoC: audio-graph-card2: add Multi CPU/Codec support

This patch adds Multi CPU/Codec support to audio-graph-card2.
Multi CPU/Codec will have connection part (= X) and CPU/Codec list part (= Y).
links indicates connection part of CPU side (= A).

    +-+   (A)      +-+
 CPU1 --(Y) | | <-(X)--(X)-> | | (Y)-- Codec1
 CPU2 --(Y) | |      | | (Y)-- Codec2
    +-+      +-+

sound {
compatible = "audio-graph-card2";

(A) links = <&mcpu>;

multi {
ports@0 {
(X) (A) mcpu: port@0 { mcpu0_ep: endpoint { remote-endpoint = <&mcodec0_ep>; }; };
(Y) port@1 { mcpu1_ep: endpoint { remote-endpoint = <&cpu1_ep>; }; };
(Y) port@1 { mcpu2_ep: endpoint { remote-endpoint = <&cpu2_ep>; }; };
};
ports@1 {
(X) port@0 { mcodec0_ep: endpoint { remote-endpoint = <&mcpu0_ep>; }; };
(Y) port@0 { mcodec1_ep: endpoint { remote-endpoint = <&codec1_ep>; }; };
(Y) port@1 { mcodec2_ep: endpoint { remote-endpoint = <&codec2_ep>; }; };
};
};
};

CPU {
ports {
bitclock-master;
frame-master;
port@0 { cpu1_ep: endpoint { remote-endpoint = <&mcpu1_ep>; }; };
port@1 { cpu2_ep: endpoint { remote-endpoint = <&mcpu2_ep>; }; };
};
};

Codec {
ports {
port@0 { codec1_ep: endpoint { remote-endpoint = <&mcodec1_ep>; }; };
port@1 { codec2_ep: endpoint { remote-endpoint = <&mcodec2_ep>; }; };
};
};

Link: https://lore.kernel.org/r/87k0xszlep.wl-kuninori.morimoto.gx@renesas.com
Link: https://lore.kernel.org/r/20210804171748.GC26252@sirena.org.uk
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Link: https://lore.kernel.org/r/871r4qn8pk.wl-kuninori.morimoto.gx@renesas.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/generic/audio-graph-card2.c