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 Device Tree Bindings
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.
140 additionalProperties: false
143 description: MIX subnode.
149 additionalProperties: false
152 description: CTU subnode.
158 additionalProperties: false
161 description: SRC subnode.
181 additionalProperties: false
184 description: SSIU subnode.
201 additionalProperties: false
204 description: SSI subnode.
221 - txu # if no ssiu node
222 - rxu # if no ssiu node
225 description: shared clock pin
226 $ref: /schemas/types.yaml#/definitions/flag
228 description: PIO transfer mode
229 $ref: /schemas/types.yaml#/definitions/flag
231 description: BUSIF is not used when [mem -> SSI] via DMA case
232 $ref: /schemas/types.yaml#/definitions/flag
237 additionalProperties: false
241 description: DAI subnode.
248 $ref: /schemas/types.yaml#/definitions/phandle-array
250 $ref: /schemas/types.yaml#/definitions/phandle-array
256 additionalProperties: false
271 const: renesas,rcar_sound-gen1
297 additionalProperties: false
301 rcar_sound: sound@ec500000 {
302 #sound-dai-cells = <1>;
303 compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
304 reg = <0xec500000 0x1000>, /* SCU */
305 <0xec5a0000 0x100>, /* ADG */
306 <0xec540000 0x1000>, /* SSIU */
307 <0xec541000 0x1280>, /* SSI */
308 <0xec740000 0x200>; /* Audio DMAC peri peri*/
309 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
311 clocks = <&mstp10_clks 1005>, /* SSI-ALL */
312 <&mstp10_clks 1006>, <&mstp10_clks 1007>, /* SSI9, SSI8 */
313 <&mstp10_clks 1008>, <&mstp10_clks 1009>, /* SSI7, SSI6 */
314 <&mstp10_clks 1010>, <&mstp10_clks 1011>, /* SSI5, SSI4 */
315 <&mstp10_clks 1012>, <&mstp10_clks 1013>, /* SSI3, SSI2 */
316 <&mstp10_clks 1014>, <&mstp10_clks 1015>, /* SSI1, SSI0 */
317 <&mstp10_clks 1022>, <&mstp10_clks 1023>, /* SRC9, SRC8 */
318 <&mstp10_clks 1024>, <&mstp10_clks 1025>, /* SRC7, SRC6 */
319 <&mstp10_clks 1026>, <&mstp10_clks 1027>, /* SRC5, SRC4 */
320 <&mstp10_clks 1028>, <&mstp10_clks 1029>, /* SRC3, SRC2 */
321 <&mstp10_clks 1030>, <&mstp10_clks 1031>, /* SRC1, SRC0 */
322 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* MIX1, MIX0 */
323 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* CTU1, CTU0 */
324 <&mstp10_clks 1019>, <&mstp10_clks 1018>, /* DVC0, DVC1 */
325 <&audio_clk_a>, <&audio_clk_b>, /* CLKA, CLKB */
326 <&audio_clk_c>, <&audio_clk_i>; /* CLKC, CLKI */
328 clock-names = "ssi-all",
347 dmas = <&audma0 0xbc>;
351 dmas = <&audma0 0xbe>;
377 interrupts = <0 353 0>;
378 dmas = <&audma0 0x87>, <&audma1 0x9c>;
379 dma-names = "rx", "tx";
381 /* skip after src-2 */
386 dmas = <&audma0 0x15>, <&audma1 0x16>;
387 dma-names = "rx", "tx";
390 dmas = <&audma0 0x35>, <&audma1 0x36>;
391 dma-names = "rx", "tx";
393 /* skip after ssiu-2 */
398 interrupts = <0 370 1>;
399 dmas = <&audma0 0x01>, <&audma1 0x02>;
400 dma-names = "rx", "tx";
403 interrupts = <0 371 1>;
404 dmas = <&audma0 0x03>, <&audma1 0x04>;
405 dma-names = "rx", "tx";
407 /* skip other ssi-2 */
413 playback = <&ssi5>, <&src5>;
430 /* assume audio-graph */
432 rsnd_endpoint: endpoint {
433 remote-endpoint = <&codec_endpoint>;
435 dai-format = "left_j";
436 bitclock-master = <&rsnd_endpoint0>;
437 frame-master = <&rsnd_endpoint0>;
439 playback = <&ssi0>, <&src0>, <&dvc0>;
440 capture = <&ssi1>, <&src1>, <&dvc1>;
446 /* assume audio-graph */
449 codec_endpoint: endpoint {
450 remote-endpoint = <&rsnd_endpoint>;