1 // SPDX-License-Identifier: GPL-2.0
3 * Device Tree for ULCB + Kingfisher + Audio Graph Card (MIX + TDM Split)
5 * Copyright (C) 2022 Renesas Electronics Corp.
10 * The HDMI output is ignored due to the limited number of subdevices
12 * (A) CPU0 (2ch) <----> (2ch) (X) ak4613 (MIX-0)
13 * (B) CPU1 (2ch) --/ (MIX-1)
14 * (C) CPU2 (2ch) ----> (8ch) (Y) PCM3168A-p (TDM-0 : 0,1ch)
15 * (D) CPU3 (2ch) --/ (TDM-1 : 2,3ch)
16 * (E) CPU4 (2ch) --/ (TDM-2 : 4,5ch)
17 * (F) CPU5 (2ch) --/ (TDM-3 : 6,7ch)
18 * (G) CPU6 (6ch) <---- (6ch) (Z) PCM3168A-c
20 * (A) aplay -D plughw:0,0 xxx.wav (MIX-0)
21 * (B) aplay -D plughw:0,1 xxx.wav (MIX-1)
22 * (C) aplay -D plughw:1,0 xxx.wav (TDM-0)
23 * (D) aplay -D plughw:1,1 xxx.wav (TDM-1)
24 * (E) aplay -D plughw:1,2 xxx.wav (TDM-2)
25 * (F) aplay -D plughw:1,3 xxx.wav (TDM-3)
27 * (A) arecord -D plughw:0,0 xxx.wav
28 * (G) arecord -D plughw:1,4 xxx.wav
31 sound_card_kf: expand-sound {
32 compatible = "audio-graph-scu-card";
33 label = "snd-kf-split";
35 routing = "pcm3168a Playback", "DAI2 Playback",
36 "pcm3168a Playback", "DAI3 Playback",
37 "pcm3168a Playback", "DAI4 Playback",
38 "pcm3168a Playback", "DAI5 Playback";
40 dais = <&snd_kf1 /* (C) CPU2 */
41 &snd_kf2 /* (D) CPU3 */
42 &snd_kf3 /* (E) CPU4 */
43 &snd_kf4 /* (F) CPU5 */
44 &snd_kf5 /* (G) GPU6 */
63 convert-channels = <8>; /* to 8ch TDM */
65 /* (C) CPU2 -> (Y) PCM3168A-p */
66 pcm3168a_endpoint_p1: endpoint@0 {
68 remote-endpoint = <&rsnd_for_pcm3168a_play1>;
69 clocks = <&clksndsel>;
71 /* (D) CPU3 -> (Y) PCM3168A-p */
72 pcm3168a_endpoint_p2: endpoint@1 {
74 remote-endpoint = <&rsnd_for_pcm3168a_play2>;
75 clocks = <&clksndsel>;
77 /* (E) CPU4 -> (Y) PCM3168A-p */
78 pcm3168a_endpoint_p3: endpoint@2 {
80 remote-endpoint = <&rsnd_for_pcm3168a_play3>;
81 clocks = <&clksndsel>;
83 /* (F) CPU5 -> (Y) PCM3168A-p */
84 pcm3168a_endpoint_p4: endpoint@3 {
86 remote-endpoint = <&rsnd_for_pcm3168a_play4>;
87 clocks = <&clksndsel>;
95 /* (G) CPU6 <- PCM3168A-c */
96 pcm3168a_endpoint_c: endpoint {
97 remote-endpoint = <&rsnd_for_pcm3168a_capture>;
98 clocks = <&clksndsel>;
106 #address-cells = <1>;
115 rsnd_for_pcm3168a_play1: endpoint {
116 remote-endpoint = <&pcm3168a_endpoint_p1>;
119 playback = <&ssiu30 &ssi3>;
127 rsnd_for_pcm3168a_play2: endpoint {
128 remote-endpoint = <&pcm3168a_endpoint_p2>;
131 playback = <&ssiu31 &ssi3>;
139 rsnd_for_pcm3168a_play3: endpoint {
140 remote-endpoint = <&pcm3168a_endpoint_p3>;
143 playback = <&ssiu32 &ssi3>;
151 rsnd_for_pcm3168a_play4: endpoint {
152 remote-endpoint = <&pcm3168a_endpoint_p4>;
155 playback = <&ssiu33 &ssi3>;
163 rsnd_for_pcm3168a_capture: endpoint {
164 remote-endpoint = <&pcm3168a_endpoint_c>;
167 dai-tdm-slot-num = <6>;