Commit | Line | Data |
---|---|---|
90e8e50f KM |
1 | Renesas R-Car sound |
2 | ||
3 | Required properties: | |
56ba98ac GU |
4 | - compatible : "renesas,rcar_sound-<soctype>", fallbacks |
5 | "renesas,rcar_sound-gen1" if generation1, and | |
90e8e50f | 6 | "renesas,rcar_sound-gen2" if generation2 |
ac37a45b | 7 | "renesas,rcar_sound-gen3" if generation3 |
56ba98ac | 8 | Examples with soctypes are: |
7667f716 | 9 | - "renesas,rcar_sound-r8a7778" (R-Car M1A) |
56ba98ac GU |
10 | - "renesas,rcar_sound-r8a7790" (R-Car H2) |
11 | - "renesas,rcar_sound-r8a7791" (R-Car M2-W) | |
ac37a45b | 12 | - "renesas,rcar_sound-r8a7795" (R-Car H3) |
90e8e50f KM |
13 | - reg : Should contain the register physical address. |
14 | required register is | |
15 | SRU/ADG/SSI if generation1 | |
16 | SRU/ADG/SSIU/SSI if generation2 | |
8bab0dd5 KM |
17 | - rcar_sound,ssi : Should contain SSI feature. |
18 | The number of SSI subnode should be same as HW. | |
19 | see below for detail. | |
20 | - rcar_sound,src : Should contain SRC feature. | |
21 | The number of SRC subnode should be same as HW. | |
22 | see below for detail. | |
9269e3c3 KM |
23 | - rcar_sound,ctu : Should contain CTU feature. |
24 | The number of CTU subnode should be same as HW. | |
25 | see below for detail. | |
70fb1052 KM |
26 | - rcar_sound,mix : Should contain MIX feature. |
27 | The number of MIX subnode should be same as HW. | |
28 | see below for detail. | |
34cb6123 KM |
29 | - rcar_sound,dvc : Should contain DVC feature. |
30 | The number of DVC subnode should be same as HW. | |
31 | see below for detail. | |
8bab0dd5 KM |
32 | - rcar_sound,dai : DAI contents. |
33 | The number of DAI subnode should be same as HW. | |
34 | see below for detail. | |
e3d2cec8 KM |
35 | - #sound-dai-cells : it must be 0 if your system is using single DAI |
36 | it must be 1 if your system is using multi DAI | |
90e8e50f KM |
37 | |
38 | SSI subnode properties: | |
39 | - interrupts : Should contain SSI interrupt for PIO transfer | |
40 | - shared-pin : if shared clock pin | |
199e7688 | 41 | - pio-transfer : use PIO transfer mode |
d9288d0b | 42 | - no-busif : BUSIF is not ussed when [mem -> SSI] via DMA case |
e80a2fb1 KM |
43 | - dma : Should contain Audio DMAC entry |
44 | - dma-names : SSI case "rx" (=playback), "tx" (=capture) | |
45 | SSIU case "rxu" (=playback), "txu" (=capture) | |
90e8e50f | 46 | |
8bab0dd5 | 47 | SRC subnode properties: |
e80a2fb1 KM |
48 | - dma : Should contain Audio DMAC entry |
49 | - dma-names : "rx" (=playback), "tx" (=capture) | |
50 | ||
51 | DVC subnode properties: | |
52 | - dma : Should contain Audio DMAC entry | |
53 | - dma-names : "tx" (=playback/capture) | |
8bab0dd5 | 54 | |
90e8e50f KM |
55 | DAI subnode properties: |
56 | - playback : list of playback modules | |
57 | - capture : list of capture modules | |
58 | ||
59 | Example: | |
60 | ||
596f74ec | 61 | rcar_sound: sound@ec500000 { |
90e8e50f | 62 | #sound-dai-cells = <1>; |
56ba98ac | 63 | compatible = "renesas,rcar_sound-r8a7791", "renesas,rcar_sound-gen2"; |
90e8e50f KM |
64 | reg = <0 0xec500000 0 0x1000>, /* SCU */ |
65 | <0 0xec5a0000 0 0x100>, /* ADG */ | |
66 | <0 0xec540000 0 0x1000>, /* SSIU */ | |
d3b1c0ba KM |
67 | <0 0xec541000 0 0x1280>, /* SSI */ |
68 | <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ | |
69 | reg-names = "scu", "adg", "ssiu", "ssi", "audmapp"; | |
90e8e50f | 70 | |
bb02714f KM |
71 | clocks = <&mstp10_clks R8A7790_CLK_SSI_ALL>, |
72 | <&mstp10_clks R8A7790_CLK_SSI9>, <&mstp10_clks R8A7790_CLK_SSI8>, | |
73 | <&mstp10_clks R8A7790_CLK_SSI7>, <&mstp10_clks R8A7790_CLK_SSI6>, | |
74 | <&mstp10_clks R8A7790_CLK_SSI5>, <&mstp10_clks R8A7790_CLK_SSI4>, | |
75 | <&mstp10_clks R8A7790_CLK_SSI3>, <&mstp10_clks R8A7790_CLK_SSI2>, | |
76 | <&mstp10_clks R8A7790_CLK_SSI1>, <&mstp10_clks R8A7790_CLK_SSI0>, | |
77 | <&mstp10_clks R8A7790_CLK_SCU_SRC9>, <&mstp10_clks R8A7790_CLK_SCU_SRC8>, | |
78 | <&mstp10_clks R8A7790_CLK_SCU_SRC7>, <&mstp10_clks R8A7790_CLK_SCU_SRC6>, | |
79 | <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, | |
80 | <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, | |
81 | <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, | |
82 | <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, | |
83 | <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; | |
84 | clock-names = "ssi-all", | |
85 | "ssi.9", "ssi.8", "ssi.7", "ssi.6", "ssi.5", | |
86 | "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", | |
87 | "src.9", "src.8", "src.7", "src.6", "src.5", | |
88 | "src.4", "src.3", "src.2", "src.1", "src.0", | |
89 | "dvc.0", "dvc.1", | |
90 | "clk_a", "clk_b", "clk_c", "clk_i"; | |
91 | ||
34cb6123 | 92 | rcar_sound,dvc { |
e80a2fb1 KM |
93 | dvc0: dvc@0 { |
94 | dmas = <&audma0 0xbc>; | |
95 | dma-names = "tx"; | |
96 | }; | |
97 | dvc1: dvc@1 { | |
98 | dmas = <&audma0 0xbe>; | |
99 | dma-names = "tx"; | |
100 | }; | |
34cb6123 KM |
101 | }; |
102 | ||
70fb1052 KM |
103 | rcar_sound,mix { |
104 | mix0: mix@0 { }; | |
105 | mix1: mix@1 { }; | |
106 | }; | |
107 | ||
9269e3c3 KM |
108 | rcar_sound,ctu { |
109 | ctu00: ctu@0 { }; | |
110 | ctu01: ctu@1 { }; | |
111 | ctu02: ctu@2 { }; | |
112 | ctu03: ctu@3 { }; | |
113 | ctu10: ctu@4 { }; | |
114 | ctu11: ctu@5 { }; | |
115 | ctu12: ctu@6 { }; | |
116 | ctu13: ctu@7 { }; | |
117 | }; | |
118 | ||
90e8e50f | 119 | rcar_sound,src { |
5cf4f686 KM |
120 | src0: src@0 { |
121 | interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
122 | dmas = <&audma0 0x85>, <&audma1 0x9a>; |
123 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
124 | }; |
125 | src1: src@1 { | |
126 | interrupts = <0 353 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
127 | dmas = <&audma0 0x87>, <&audma1 0x9c>; |
128 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
129 | }; |
130 | src2: src@2 { | |
131 | interrupts = <0 354 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
132 | dmas = <&audma0 0x89>, <&audma1 0x9e>; |
133 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
134 | }; |
135 | src3: src@3 { | |
136 | interrupts = <0 355 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
137 | dmas = <&audma0 0x8b>, <&audma1 0xa0>; |
138 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
139 | }; |
140 | src4: src@4 { | |
141 | interrupts = <0 356 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
142 | dmas = <&audma0 0x8d>, <&audma1 0xb0>; |
143 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
144 | }; |
145 | src5: src@5 { | |
146 | interrupts = <0 357 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
147 | dmas = <&audma0 0x8f>, <&audma1 0xb2>; |
148 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
149 | }; |
150 | src6: src@6 { | |
151 | interrupts = <0 358 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
152 | dmas = <&audma0 0x91>, <&audma1 0xb4>; |
153 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
154 | }; |
155 | src7: src@7 { | |
156 | interrupts = <0 359 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
157 | dmas = <&audma0 0x93>, <&audma1 0xb6>; |
158 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
159 | }; |
160 | src8: src@8 { | |
161 | interrupts = <0 360 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
162 | dmas = <&audma0 0x95>, <&audma1 0xb8>; |
163 | dma-names = "rx", "tx"; | |
5cf4f686 KM |
164 | }; |
165 | src9: src@9 { | |
166 | interrupts = <0 361 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
167 | dmas = <&audma0 0x97>, <&audma1 0xba>; |
168 | dma-names = "rx", "tx"; | |
5cf4f686 | 169 | }; |
90e8e50f KM |
170 | }; |
171 | ||
172 | rcar_sound,ssi { | |
173 | ssi0: ssi@0 { | |
174 | interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
175 | dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; |
176 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
177 | }; |
178 | ssi1: ssi@1 { | |
179 | interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
180 | dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; |
181 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
182 | }; |
183 | ssi2: ssi@2 { | |
184 | interrupts = <0 372 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
185 | dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; |
186 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
187 | }; |
188 | ssi3: ssi@3 { | |
189 | interrupts = <0 373 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
190 | dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; |
191 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
192 | }; |
193 | ssi4: ssi@4 { | |
194 | interrupts = <0 374 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
195 | dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; |
196 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
197 | }; |
198 | ssi5: ssi@5 { | |
199 | interrupts = <0 375 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
200 | dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; |
201 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
202 | }; |
203 | ssi6: ssi@6 { | |
204 | interrupts = <0 376 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
205 | dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; |
206 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
207 | }; |
208 | ssi7: ssi@7 { | |
209 | interrupts = <0 377 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
210 | dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; |
211 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
212 | }; |
213 | ssi8: ssi@8 { | |
214 | interrupts = <0 378 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
215 | dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; |
216 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
217 | }; |
218 | ssi9: ssi@9 { | |
219 | interrupts = <0 379 IRQ_TYPE_LEVEL_HIGH>; | |
e80a2fb1 KM |
220 | dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; |
221 | dma-names = "rx", "tx", "rxu", "txu"; | |
90e8e50f KM |
222 | }; |
223 | }; | |
224 | ||
225 | rcar_sound,dai { | |
226 | dai0 { | |
227 | playback = <&ssi5 &src5>; | |
228 | capture = <&ssi6>; | |
229 | }; | |
230 | dai1 { | |
231 | playback = <&ssi3>; | |
232 | }; | |
233 | dai2 { | |
234 | capture = <&ssi4>; | |
235 | }; | |
236 | dai3 { | |
237 | playback = <&ssi7>; | |
238 | }; | |
239 | dai4 { | |
240 | capture = <&ssi8>; | |
241 | }; | |
242 | }; | |
243 | }; |