diff options
Diffstat (limited to 'dts/upstream/src/arm64/renesas/ulcb-audio-graph-card-mix+split.dtsi')
-rw-r--r-- | dts/upstream/src/arm64/renesas/ulcb-audio-graph-card-mix+split.dtsi | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/dts/upstream/src/arm64/renesas/ulcb-audio-graph-card-mix+split.dtsi b/dts/upstream/src/arm64/renesas/ulcb-audio-graph-card-mix+split.dtsi new file mode 100644 index 00000000000..be6d7a03573 --- /dev/null +++ b/dts/upstream/src/arm64/renesas/ulcb-audio-graph-card-mix+split.dtsi @@ -0,0 +1,95 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Device Tree for ULCB + Audio Graph Card (MIX) + * + * Copyright (C) 2022 Renesas Electronics Corp. + */ + +/* + * Note: + * The HDMI output is ignored due to the limited number of subdevices + * + * (A) CPU0 (2ch) <-----> (2ch) (X) ak4613 (MIX-0) + * (B) CPU1 (2ch) --/ (MIX-1) + * + * (A) aplay -D plughw:0,0 xxx.wav + * (B) aplay -D plughw:0,1 xxx.wav + * + * (A) arecord -D plughw:0,0 xxx.wav + */ + +/ { + sound_card: sound { + compatible = "audio-graph-scu-card"; + label = "snd-ulcb-mix"; + + routing = "ak4613 Playback", "DAI0 Playback", + "ak4613 Playback", "DAI1 Playback", + "DAI0 Capture", "ak4613 Capture"; + + dais = <&snd_ulcb1 /* (A) CPU0 */ + &snd_ulcb2 /* (B) CPU1 */ + >; + }; +}; + +&ak4613 { + port { + #address-cells = <1>; + #size-cells = <0>; + + /* + * (X) ak4613 + */ + prefix = "ak4613"; + convert-rate = <48000>; + + /* (A) CPU0 <-> (X) ak4613 */ + ak4613_ep1: endpoint@0 { + reg = <0>; + remote-endpoint = <&rsnd_for_ak4613_1>; + }; + /* (B) CPU1 -> (X) ak4613 */ + ak4613_ep2: endpoint@1 { + reg = <1>; + remote-endpoint = <&rsnd_for_ak4613_2>; + }; + }; +}; + +&rcar_sound { + #address-cells = <1>; + #size-cells = <0>; + + ports@0 { + #address-cells = <1>; + #size-cells = <0>; + reg = <0>; + + /* + * (A) CPU0 + */ + snd_ulcb1: port@0 { + reg = <0>; + rsnd_for_ak4613_1: endpoint { + remote-endpoint = <&ak4613_ep1>; + bitclock-master; + frame-master; + playback = <&src1 &ctu02 &mix0 &dvc0 &ssi0>; + capture = <&ssi1 &src0 &dvc1>; + }; + }; + /* + * (B) CPU1 + */ + snd_ulcb2: port@1 { + reg = <1>; + rsnd_for_ak4613_2: endpoint { + remote-endpoint = <&ak4613_ep2>; + bitclock-master; + frame-master; + playback = <&src2 &ctu03 &mix0 &dvc0 &ssi0>; + }; + }; + }; +}; |