Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / renesas / ulcb-kf-simple-audio-card-mix+split.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree for ULCB + Kingfisher + Simple Audio 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) CPU3 (2ch)  ----> (8ch) (Y) PCM3168A-p (TDM-0 : 0,1ch)
15  *      (D) CPU2 (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 / {
32         sound_card_kf: expand-sound {
33                 #address-cells = <1>;
34                 #size-cells = <0>;
35
36                 compatible = "simple-scu-audio-card";
37                 label = "snd-kf-split";
38
39                 simple-audio-card,routing = "pcm3168a Playback", "DAI2 Playback",
40                                             "pcm3168a Playback", "DAI3 Playback",
41                                             "pcm3168a Playback", "DAI4 Playback",
42                                             "pcm3168a Playback", "DAI5 Playback";
43
44                 simple-audio-card,dai-link@0 {
45                         #address-cells = <1>;
46                         #size-cells = <0>;
47                         reg = <0>;
48                         convert-channels = <8>; /* to 8ch TDM */
49
50                         /*
51                          * (C) CPU2
52                          */
53                         cpu@0 {
54                                 reg = <0>;
55                                 bitclock-master;
56                                 frame-master;
57                                 sound-dai = <&rcar_sound 2>;
58                         };
59                         /*
60                          * (D) CPU3
61                          */
62                         cpu@1 {
63                                 reg = <1>;
64                                 sound-dai = <&rcar_sound 3>;
65                         };
66                         /*
67                          * (E) CPU4
68                          */
69                         cpu@2 {
70                                 reg = <2>;
71                                 sound-dai = <&rcar_sound 4>;
72                         };
73                         /*
74                          * (F) CPU5
75                          */
76                         cpu@3 {
77                                 reg = <3>;
78                                 sound-dai = <&rcar_sound 5>;
79                         };
80                         /*
81                          * (Y) PCM3168A-p
82                          */
83                         codec {
84                                 prefix = "pcm3168a";
85                                 mclk-fs = <512>;
86                                 sound-dai = <&pcm3168a 0>;
87                         };
88                 };
89
90                 simple-audio-card,dai-link@1 {
91                         reg = <1>;
92                         /*
93                          * (G) CPU6
94                          */
95                         cpu {
96                                 bitclock-master;
97                                 frame-master;
98                                 sound-dai = <&rcar_sound 6>;
99                         };
100                         /*
101                          * (Z) PCM3168A-c
102                          */
103                         codec {
104                                 prefix = "pcm3168a";
105                                 mclk-fs = <512>;
106                                 sound-dai = <&pcm3168a 1>;
107                         };
108                 };
109         };
110 };
111
112 &pcm3168a {
113         /*
114          * (Y) PCM3168A-p
115          * (Z) PCM3168A-c
116          */
117         #sound-dai-cells = <1>;
118 };
119
120 &rcar_sound {
121         rcar_sound,dai@1 {
122                 reg = <1>;
123
124                 /* dai0-1 are defined in ulcb.dtsi */
125
126                 /*
127                  * (C) CPU2
128                  */
129                 dai2 {
130                         playback = <&ssiu30 &ssi3>;
131                 };
132                 /*
133                  * (D) CPU3
134                  */
135                 dai3 {
136                         playback = <&ssiu31 &ssi3>;
137                 };
138                 /*
139                  * (E) CPU4
140                  */
141                 dai4 {
142                         playback = <&ssiu32 &ssi3>;
143                 };
144                 /*
145                  * (F) CPU5
146                  */
147                 dai5 {
148                         playback = <&ssiu33 &ssi3>;
149                 };
150                 /*
151                  * (G) CPU6
152                  */
153                 dai6 {
154                         capture = <&ssi4>;
155                 };
156         };
157 };