arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / arm64 / boot / dts / renesas / ulcb-kf-audio-graph-card-mix+split.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree for ULCB + Kingfisher + Audio Graph Card (MIX + TDM Split)
4  *
5  * Copyright (C) 2022 Renesas Electronics Corp.
6  */
7
8 /*
9  * Note:
10  * The HDMI output is ignored due to the limited number of subdevices
11  *
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
19  *
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)
26  *
27  *      (A) arecord -D plughw:0,0 xxx.wav
28  *      (G) arecord -D plughw:1,4 xxx.wav
29  */
30 / {
31         sound_card_kf: expand-sound {
32                 compatible = "audio-graph-scu-card";
33                 label = "snd-kf-split";
34
35                 routing = "pcm3168a Playback", "DAI2 Playback",
36                           "pcm3168a Playback", "DAI3 Playback",
37                           "pcm3168a Playback", "DAI4 Playback",
38                           "pcm3168a Playback", "DAI5 Playback";
39
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 */
45                 >;
46         };
47 };
48
49 &pcm3168a {
50         ports {
51                 #address-cells = <1>;
52                 #size-cells = <0>;
53                 mclk-fs = <512>;
54
55                 /*
56                  * (Y) PCM3168A-p
57                  */
58                 port@0 {
59                         #address-cells = <1>;
60                         #size-cells = <0>;
61                         reg = <0>;
62                         prefix = "pcm3168a";
63                         convert-channels = <8>; /* to 8ch TDM */
64
65                         /* (C) CPU2 -> (Y) PCM3168A-p */
66                         pcm3168a_endpoint_p1: endpoint@0 {
67                                 reg = <0>;
68                                 remote-endpoint = <&rsnd_for_pcm3168a_play1>;
69                                 clocks = <&clksndsel>;
70                         };
71                         /* (D) CPU3 -> (Y) PCM3168A-p */
72                         pcm3168a_endpoint_p2: endpoint@1 {
73                                 reg = <1>;
74                                 remote-endpoint = <&rsnd_for_pcm3168a_play2>;
75                                 clocks = <&clksndsel>;
76                         };
77                         /* (E) CPU4 -> (Y) PCM3168A-p */
78                         pcm3168a_endpoint_p3: endpoint@2 {
79                                 reg = <2>;
80                                 remote-endpoint = <&rsnd_for_pcm3168a_play3>;
81                                 clocks = <&clksndsel>;
82                         };
83                         /* (F) CPU5 -> (Y) PCM3168A-p */
84                         pcm3168a_endpoint_p4: endpoint@3 {
85                                 reg = <3>;
86                                 remote-endpoint = <&rsnd_for_pcm3168a_play4>;
87                                 clocks = <&clksndsel>;
88                         };
89                 };
90                 /*
91                  * (Z) PCM3168A-c
92                  */
93                 port@1 {
94                         reg = <1>;
95                         /* (G) CPU6 <- PCM3168A-c */
96                         pcm3168a_endpoint_c: endpoint {
97                                 remote-endpoint = <&rsnd_for_pcm3168a_capture>;
98                                 clocks = <&clksndsel>;
99                         };
100                 };
101         };
102 };
103
104 &rcar_sound {
105         ports@1 {
106                 #address-cells = <1>;
107                 #size-cells = <0>;
108                 reg = <1>;
109
110                 /*
111                  * (C) CPU2
112                  */
113                 snd_kf1: port@2 {
114                         reg = <2>;
115                         rsnd_for_pcm3168a_play1: endpoint {
116                                 remote-endpoint = <&pcm3168a_endpoint_p1>;
117                                 bitclock-master;
118                                 frame-master;
119                                 playback = <&ssiu30 &ssi3>;
120                         };
121                 };
122                 /*
123                  * (D) CPU3
124                  */
125                 snd_kf2: port@3 {
126                         reg = <3>;
127                         rsnd_for_pcm3168a_play2: endpoint {
128                                 remote-endpoint = <&pcm3168a_endpoint_p2>;
129                                 bitclock-master;
130                                 frame-master;
131                                 playback = <&ssiu31 &ssi3>;
132                         };
133                 };
134                 /*
135                  * (E) CPU4
136                  */
137                 snd_kf3: port@4 {
138                         reg = <4>;
139                         rsnd_for_pcm3168a_play3: endpoint {
140                                 remote-endpoint = <&pcm3168a_endpoint_p3>;
141                                 bitclock-master;
142                                 frame-master;
143                                 playback = <&ssiu32 &ssi3>;
144                         };
145                 };
146                 /*
147                  * (F) CPU5
148                  */
149                 snd_kf4: port@5 {
150                         reg = <5>;
151                         rsnd_for_pcm3168a_play4: endpoint {
152                                 remote-endpoint = <&pcm3168a_endpoint_p4>;
153                                 bitclock-master;
154                                 frame-master;
155                                 playback = <&ssiu33 &ssi3>;
156                         };
157                 };
158                 /*
159                  * (G) CPU6
160                  */
161                 snd_kf5: port@6 {
162                         reg = <6>;
163                         rsnd_for_pcm3168a_capture: endpoint {
164                                 remote-endpoint = <&pcm3168a_endpoint_c>;
165                                 bitclock-master;
166                                 frame-master;
167                                 dai-tdm-slot-num = <6>;
168                                 capture  = <&ssi4>;
169                         };
170                 };
171         };
172 };