1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/sound/renesas,rsnd.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Renesas R-Car Sound Driver
10 - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
19 - renesas,rcar_sound-r8a7778 # R-Car M1A
20 - renesas,rcar_sound-r8a7779 # R-Car H1
22 - renesas,rcar_sound-gen1
26 - renesas,rcar_sound-r8a7742 # RZ/G1H
27 - renesas,rcar_sound-r8a7743 # RZ/G1M
28 - renesas,rcar_sound-r8a7744 # RZ/G1N
29 - renesas,rcar_sound-r8a7745 # RZ/G1E
30 - renesas,rcar_sound-r8a77470 # RZ/G1C
31 - renesas,rcar_sound-r8a7790 # R-Car H2
32 - renesas,rcar_sound-r8a7791 # R-Car M2-W
33 - renesas,rcar_sound-r8a7793 # R-Car M2-N
34 - renesas,rcar_sound-r8a7794 # R-Car E2
36 - renesas,rcar_sound-gen2
40 - renesas,rcar_sound-r8a774a1 # RZ/G2M
41 - renesas,rcar_sound-r8a774b1 # RZ/G2N
42 - renesas,rcar_sound-r8a774c0 # RZ/G2E
43 - renesas,rcar_sound-r8a774e1 # RZ/G2H
44 - renesas,rcar_sound-r8a7795 # R-Car H3
45 - renesas,rcar_sound-r8a7796 # R-Car M3-W
46 - renesas,rcar_sound-r8a77961 # R-Car M3-W+
47 - renesas,rcar_sound-r8a77965 # R-Car M3-N
48 - renesas,rcar_sound-r8a77990 # R-Car E3
49 - renesas,rcar_sound-r8a77995 # R-Car D3
51 - renesas,rcar_sound-gen3
55 - renesas,rcar_sound-gen1
56 - renesas,rcar_sound-gen2
57 - renesas,rcar_sound-gen3
69 it must be 0 if your system is using single DAI
70 it must be 1 if your system is using multi DAIs
75 it must be 0 if your system has audio_clkout
76 it must be 1 if your system has audio_clkout0/1/2/3
80 description: for audio_clkout0/1/2/3
82 clkout-lr-asynchronous:
83 description: audio_clkoutn is asynchronizes with lr-clock.
84 $ref: /schemas/types.yaml#/definitions/flag
97 description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
102 description: List of necessary clock names.
108 - pattern: '^ssi\.[0-9]$'
109 - pattern: '^src\.[0-9]$'
110 - pattern: '^mix\.[0-1]$'
111 - pattern: '^ctu\.[0-1]$'
112 - pattern: '^dvc\.[0-1]$'
113 - pattern: '^clk_(a|b|c|i)$'
116 $ref: /schemas/graph.yaml#/properties/ports
119 $ref: audio-graph-port.yaml#
120 unevaluatedProperties: false
123 $ref: audio-graph-port.yaml#
124 unevaluatedProperties: false
127 description: DVC subnode.
132 additionalProperties: false
142 additionalProperties: false
145 description: MIX subnode.
150 additionalProperties: false
151 additionalProperties: false
154 description: CTU subnode.
159 additionalProperties: false
160 additionalProperties: false
163 description: SRC subnode.
168 additionalProperties: false
185 additionalProperties: false
188 description: SSIU subnode.
193 additionalProperties: false
207 additionalProperties: false
210 description: SSI subnode.
215 additionalProperties: false
229 - txu # if no ssiu node
230 - rxu # if no ssiu node
233 description: shared clock pin
234 $ref: /schemas/types.yaml#/definitions/flag
236 description: PIO transfer mode
237 $ref: /schemas/types.yaml#/definitions/flag
239 description: BUSIF is not used when [mem -> SSI] via DMA case
240 $ref: /schemas/types.yaml#/definitions/flag
245 additionalProperties: false
249 description: DAI subnode.
254 additionalProperties: false
258 $ref: /schemas/types.yaml#/definitions/phandle-array
260 $ref: /schemas/types.yaml#/definitions/phandle-array
266 additionalProperties: false
281 const: renesas,rcar_sound-gen1
307 additionalProperties: false
311 rcar_sound: sound@ec500000 {
312 #sound-dai-cells = <1>;
313 compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
314 reg = <0xec500000 0x1000>, /* SCU */
315 <0xec5a0000 0x100>, /* ADG */
316 <0xec540000 0x1000>, /* SSIU */
317 <0xec541000 0x1280>, /* SSI */
318 <0xec740000 0x200>; /* Audio DMAC peri peri*/
319 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
321 clocks = <&mstp10_clks 1005>, /* SSI-ALL */
322 <&mstp10_clks 1006>, <&mstp10_clks 1007>, /* SSI9, SSI8 */
323 <&mstp10_clks 1008>, <&mstp10_clks 1009>, /* SSI7, SSI6 */
324 <&mstp10_clks 1010>, <&mstp10_clks 1011>, /* SSI5, SSI4 */
325 <&mstp10_clks 1012>, <&mstp10_clks 1013>, /* SSI3, SSI2 */
326 <&mstp10_clks 1014>, <&mstp10_clks 1015>, /* SSI1, SSI0 */
327 <&mstp10_clks 1022>, <&mstp10_clks 1023>, /* SRC9, SRC8 */
328 <&mstp10_clks 1024>, <&mstp10_clks 1025>, /* SRC7, SRC6 */
329 <&mstp10_clks 1026>, <&mstp10_clks 1027>, /* SRC5, SRC4 */
330 <&mstp10_clks 1028>, <&mstp10_clks 1029>, /* SRC3, SRC2 */
331 <&mstp10_clks 1030>, <&mstp10_clks 1031>, /* SRC1, SRC0 */
332 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* MIX1, MIX0 */
333 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* CTU1, CTU0 */
334 <&mstp10_clks 1019>, <&mstp10_clks 1018>, /* DVC0, DVC1 */
335 <&audio_clk_a>, <&audio_clk_b>, /* CLKA, CLKB */
336 <&audio_clk_c>, <&audio_clk_i>; /* CLKC, CLKI */
338 clock-names = "ssi-all",
357 dmas = <&audma0 0xbc>;
361 dmas = <&audma0 0xbe>;
387 interrupts = <0 353 0>;
388 dmas = <&audma0 0x87>, <&audma1 0x9c>;
389 dma-names = "rx", "tx";
391 /* skip after src-2 */
396 dmas = <&audma0 0x15>, <&audma1 0x16>;
397 dma-names = "rx", "tx";
400 dmas = <&audma0 0x35>, <&audma1 0x36>;
401 dma-names = "rx", "tx";
403 /* skip after ssiu-2 */
408 interrupts = <0 370 1>;
409 dmas = <&audma0 0x01>, <&audma1 0x02>;
410 dma-names = "rx", "tx";
413 interrupts = <0 371 1>;
414 dmas = <&audma0 0x03>, <&audma1 0x04>;
415 dma-names = "rx", "tx";
417 /* skip other ssi-2 */
423 playback = <&ssi5>, <&src5>;
440 /* assume audio-graph */
442 rsnd_endpoint: endpoint {
443 remote-endpoint = <&codec_endpoint>;
445 dai-format = "left_j";
446 bitclock-master = <&rsnd_endpoint0>;
447 frame-master = <&rsnd_endpoint0>;
449 playback = <&ssi0>, <&src0>, <&dvc0>;
450 capture = <&ssi1>, <&src1>, <&dvc1>;
456 /* assume audio-graph */
459 codec_endpoint: endpoint {
460 remote-endpoint = <&rsnd_endpoint>;