1*2d8fc973SKuninori Morimoto# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2d8fc973SKuninori Morimoto%YAML 1.2
3*2d8fc973SKuninori Morimoto---
4*2d8fc973SKuninori Morimoto$id: http://devicetree.org/schemas/sound/renesas,rsnd.yaml#
5*2d8fc973SKuninori Morimoto$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2d8fc973SKuninori Morimoto
7*2d8fc973SKuninori Morimototitle: Renesas R-Car Sound Driver Device Tree Bindings
8*2d8fc973SKuninori Morimoto
9*2d8fc973SKuninori Morimotomaintainers:
10*2d8fc973SKuninori Morimoto  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
11*2d8fc973SKuninori Morimoto
12*2d8fc973SKuninori Morimotoproperties:
13*2d8fc973SKuninori Morimoto
14*2d8fc973SKuninori Morimoto  compatible:
15*2d8fc973SKuninori Morimoto    oneOf:
16*2d8fc973SKuninori Morimoto      # for Gen1 SoC
17*2d8fc973SKuninori Morimoto      - items:
18*2d8fc973SKuninori Morimoto          - enum:
19*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7778   # R-Car M1A
20*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7779   # R-Car H1
21*2d8fc973SKuninori Morimoto          - enum:
22*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-gen1
23*2d8fc973SKuninori Morimoto      # for Gen2 SoC
24*2d8fc973SKuninori Morimoto      - items:
25*2d8fc973SKuninori Morimoto          - enum:
26*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7742   # RZ/G1H
27*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7743   # RZ/G1M
28*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7744   # RZ/G1N
29*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7745   # RZ/G1E
30*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77470  # RZ/G1C
31*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7790   # R-Car H2
32*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7791   # R-Car M2-W
33*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7793   # R-Car M2-N
34*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7794   # R-Car E2
35*2d8fc973SKuninori Morimoto          - enum:
36*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-gen2
37*2d8fc973SKuninori Morimoto      # for Gen3 SoC
38*2d8fc973SKuninori Morimoto      - items:
39*2d8fc973SKuninori Morimoto          - enum:
40*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774a1  # RZ/G2M
41*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774b1  # RZ/G2N
42*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774c0  # RZ/G2E
43*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774e1  # RZ/G2H
44*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7795   # R-Car H3
45*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7796   # R-Car M3-W
46*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77965  # R-Car M3-N
47*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77990  # R-Car E3
48*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77995  # R-Car D3
49*2d8fc973SKuninori Morimoto          - enum:
50*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-gen3
51*2d8fc973SKuninori Morimoto      # for Generic
52*2d8fc973SKuninori Morimoto      - items:
53*2d8fc973SKuninori Morimoto          - enum:
54*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-gen1
55*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-gen2
56*2d8fc973SKuninori Morimoto              - renesas,rcar_sound-gen3
57*2d8fc973SKuninori Morimoto
58*2d8fc973SKuninori Morimoto  reg:
59*2d8fc973SKuninori Morimoto    minItems: 1
60*2d8fc973SKuninori Morimoto    maxItems: 5
61*2d8fc973SKuninori Morimoto
62*2d8fc973SKuninori Morimoto  reg-names:
63*2d8fc973SKuninori Morimoto    minItems: 1
64*2d8fc973SKuninori Morimoto    maxItems: 5
65*2d8fc973SKuninori Morimoto
66*2d8fc973SKuninori Morimoto  "#sound-dai-cells":
67*2d8fc973SKuninori Morimoto    description: |
68*2d8fc973SKuninori Morimoto      it must be 0 if your system is using single DAI
69*2d8fc973SKuninori Morimoto      it must be 1 if your system is using multi  DAIs
70*2d8fc973SKuninori Morimoto    enum: [0, 1]
71*2d8fc973SKuninori Morimoto
72*2d8fc973SKuninori Morimoto  "#clock-cells":
73*2d8fc973SKuninori Morimoto    description: |
74*2d8fc973SKuninori Morimoto      it must be 0 if your system has audio_clkout
75*2d8fc973SKuninori Morimoto      it must be 1 if your system has audio_clkout0/1/2/3
76*2d8fc973SKuninori Morimoto    enum: [0, 1]
77*2d8fc973SKuninori Morimoto
78*2d8fc973SKuninori Morimoto  clock-frequency:
79*2d8fc973SKuninori Morimoto    description: for audio_clkout0/1/2/3
80*2d8fc973SKuninori Morimoto    $ref: /schemas/types.yaml#/definitions/uint32-array
81*2d8fc973SKuninori Morimoto
82*2d8fc973SKuninori Morimoto  clkout-lr-asynchronous:
83*2d8fc973SKuninori Morimoto    description: audio_clkoutn is asynchronizes with lr-clock.
84*2d8fc973SKuninori Morimoto    $ref: /schemas/types.yaml#/definitions/flag
85*2d8fc973SKuninori Morimoto
86*2d8fc973SKuninori Morimoto  power-domains: true
87*2d8fc973SKuninori Morimoto
88*2d8fc973SKuninori Morimoto  resets:
89*2d8fc973SKuninori Morimoto    maxItems: 11
90*2d8fc973SKuninori Morimoto
91*2d8fc973SKuninori Morimoto  reset-names:
92*2d8fc973SKuninori Morimoto    maxItems: 11
93*2d8fc973SKuninori Morimoto
94*2d8fc973SKuninori Morimoto  clocks:
95*2d8fc973SKuninori Morimoto    description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
96*2d8fc973SKuninori Morimoto    minItems: 1
97*2d8fc973SKuninori Morimoto    maxItems: 31
98*2d8fc973SKuninori Morimoto
99*2d8fc973SKuninori Morimoto  clock-names:
100*2d8fc973SKuninori Morimoto    description: List of necessary clock names.
101*2d8fc973SKuninori Morimoto    minItems: 1
102*2d8fc973SKuninori Morimoto    maxItems: 31
103*2d8fc973SKuninori Morimoto    items:
104*2d8fc973SKuninori Morimoto      oneOf:
105*2d8fc973SKuninori Morimoto        - const: ssi-all
106*2d8fc973SKuninori Morimoto        - pattern: '^ssi\.[0-9]$'
107*2d8fc973SKuninori Morimoto        - pattern: '^src\.[0-9]$'
108*2d8fc973SKuninori Morimoto        - pattern: '^mix\.[0-1]$'
109*2d8fc973SKuninori Morimoto        - pattern: '^ctu\.[0-1]$'
110*2d8fc973SKuninori Morimoto        - pattern: '^dvc\.[0-1]$'
111*2d8fc973SKuninori Morimoto        - pattern: '^clk_(a|b|c|i)$'
112*2d8fc973SKuninori Morimoto
113*2d8fc973SKuninori Morimoto  port:
114*2d8fc973SKuninori Morimoto    description: OF-Graph subnode
115*2d8fc973SKuninori Morimoto    $ref: "audio-graph-card.yaml#/properties/port"
116*2d8fc973SKuninori Morimoto
117*2d8fc973SKuninori Morimoto  ports:
118*2d8fc973SKuninori Morimoto    description: multi OF-Graph subnode
119*2d8fc973SKuninori Morimoto    $ref: "audio-graph-card.yaml#/properties/ports"
120*2d8fc973SKuninori Morimoto
121*2d8fc973SKuninori Morimoto# use patternProperties to avoid naming "xxx,yyy" issue
122*2d8fc973SKuninori MorimotopatternProperties:
123*2d8fc973SKuninori Morimoto  "^rcar_sound,dvc$":
124*2d8fc973SKuninori Morimoto    description: DVC subnode.
125*2d8fc973SKuninori Morimoto    type: object
126*2d8fc973SKuninori Morimoto    patternProperties:
127*2d8fc973SKuninori Morimoto      "^dvc-[0-1]$":
128*2d8fc973SKuninori Morimoto        type: object
129*2d8fc973SKuninori Morimoto        properties:
130*2d8fc973SKuninori Morimoto          dmas:
131*2d8fc973SKuninori Morimoto            maxItems: 1
132*2d8fc973SKuninori Morimoto          dma-names:
133*2d8fc973SKuninori Morimoto            const: "tx"
134*2d8fc973SKuninori Morimoto        required:
135*2d8fc973SKuninori Morimoto          - dmas
136*2d8fc973SKuninori Morimoto          - dma-names
137*2d8fc973SKuninori Morimoto    additionalProperties: false
138*2d8fc973SKuninori Morimoto
139*2d8fc973SKuninori Morimoto  "^rcar_sound,mix$":
140*2d8fc973SKuninori Morimoto    description: MIX subnode.
141*2d8fc973SKuninori Morimoto    type: object
142*2d8fc973SKuninori Morimoto    patternProperties:
143*2d8fc973SKuninori Morimoto      "^mix-[0-1]$":
144*2d8fc973SKuninori Morimoto        type: object
145*2d8fc973SKuninori Morimoto        # no properties
146*2d8fc973SKuninori Morimoto    additionalProperties: false
147*2d8fc973SKuninori Morimoto
148*2d8fc973SKuninori Morimoto  "^rcar_sound,ctu$":
149*2d8fc973SKuninori Morimoto    description: CTU subnode.
150*2d8fc973SKuninori Morimoto    type: object
151*2d8fc973SKuninori Morimoto    patternProperties:
152*2d8fc973SKuninori Morimoto      "^ctu-[0-7]$":
153*2d8fc973SKuninori Morimoto        type: object
154*2d8fc973SKuninori Morimoto        # no properties
155*2d8fc973SKuninori Morimoto    additionalProperties: false
156*2d8fc973SKuninori Morimoto
157*2d8fc973SKuninori Morimoto  "^rcar_sound,src$":
158*2d8fc973SKuninori Morimoto    description: SRC subnode.
159*2d8fc973SKuninori Morimoto    type: object
160*2d8fc973SKuninori Morimoto    patternProperties:
161*2d8fc973SKuninori Morimoto      "^src-[0-9]$":
162*2d8fc973SKuninori Morimoto        type: object
163*2d8fc973SKuninori Morimoto        properties:
164*2d8fc973SKuninori Morimoto          interrupts:
165*2d8fc973SKuninori Morimoto            maxItems: 1
166*2d8fc973SKuninori Morimoto          dmas:
167*2d8fc973SKuninori Morimoto            maxItems: 2
168*2d8fc973SKuninori Morimoto          dma-names:
169*2d8fc973SKuninori Morimoto            allOf:
170*2d8fc973SKuninori Morimoto              - items:
171*2d8fc973SKuninori Morimoto                  enum:
172*2d8fc973SKuninori Morimoto                    - tx
173*2d8fc973SKuninori Morimoto                    - rx
174*2d8fc973SKuninori Morimoto        required:
175*2d8fc973SKuninori Morimoto          - interrupts
176*2d8fc973SKuninori Morimoto          - dmas
177*2d8fc973SKuninori Morimoto          - dma-names
178*2d8fc973SKuninori Morimoto    additionalProperties: false
179*2d8fc973SKuninori Morimoto
180*2d8fc973SKuninori Morimoto  "^rcar_sound,ssiu$":
181*2d8fc973SKuninori Morimoto    description: SSIU subnode.
182*2d8fc973SKuninori Morimoto    type: object
183*2d8fc973SKuninori Morimoto    patternProperties:
184*2d8fc973SKuninori Morimoto      "^ssiu-[0-9]+$":
185*2d8fc973SKuninori Morimoto        type: object
186*2d8fc973SKuninori Morimoto        properties:
187*2d8fc973SKuninori Morimoto          dmas:
188*2d8fc973SKuninori Morimoto            maxItems: 2
189*2d8fc973SKuninori Morimoto          dma-names:
190*2d8fc973SKuninori Morimoto            allOf:
191*2d8fc973SKuninori Morimoto              - items:
192*2d8fc973SKuninori Morimoto                  enum:
193*2d8fc973SKuninori Morimoto                    - tx
194*2d8fc973SKuninori Morimoto                    - rx
195*2d8fc973SKuninori Morimoto        required:
196*2d8fc973SKuninori Morimoto          - dmas
197*2d8fc973SKuninori Morimoto          - dma-names
198*2d8fc973SKuninori Morimoto    additionalProperties: false
199*2d8fc973SKuninori Morimoto
200*2d8fc973SKuninori Morimoto  "^rcar_sound,ssi$":
201*2d8fc973SKuninori Morimoto    description: SSI subnode.
202*2d8fc973SKuninori Morimoto    type: object
203*2d8fc973SKuninori Morimoto    patternProperties:
204*2d8fc973SKuninori Morimoto      "^ssi-[0-9]$":
205*2d8fc973SKuninori Morimoto        type: object
206*2d8fc973SKuninori Morimoto        properties:
207*2d8fc973SKuninori Morimoto          interrupts:
208*2d8fc973SKuninori Morimoto            maxItems: 1
209*2d8fc973SKuninori Morimoto          dmas:
210*2d8fc973SKuninori Morimoto            minItems: 2
211*2d8fc973SKuninori Morimoto            maxItems: 4
212*2d8fc973SKuninori Morimoto          dma-names:
213*2d8fc973SKuninori Morimoto            allOf:
214*2d8fc973SKuninori Morimoto              - items:
215*2d8fc973SKuninori Morimoto                  enum:
216*2d8fc973SKuninori Morimoto                    - tx
217*2d8fc973SKuninori Morimoto                    - rx
218*2d8fc973SKuninori Morimoto                    - txu # if no ssiu node
219*2d8fc973SKuninori Morimoto                    - rxu # if no ssiu node
220*2d8fc973SKuninori Morimoto
221*2d8fc973SKuninori Morimoto          shared-pin:
222*2d8fc973SKuninori Morimoto            description: shared clock pin
223*2d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
224*2d8fc973SKuninori Morimoto          pio-transfer:
225*2d8fc973SKuninori Morimoto            description: PIO transfer mode
226*2d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
227*2d8fc973SKuninori Morimoto          no-busif:
228*2d8fc973SKuninori Morimoto            description: BUSIF is not used when [mem -> SSI] via DMA case
229*2d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
230*2d8fc973SKuninori Morimoto        required:
231*2d8fc973SKuninori Morimoto          - interrupts
232*2d8fc973SKuninori Morimoto          - dmas
233*2d8fc973SKuninori Morimoto          - dma-names
234*2d8fc973SKuninori Morimoto    additionalProperties: false
235*2d8fc973SKuninori Morimoto
236*2d8fc973SKuninori Morimoto  # For DAI base
237*2d8fc973SKuninori Morimoto  "^rcar_sound,dai$":
238*2d8fc973SKuninori Morimoto    description: DAI subnode.
239*2d8fc973SKuninori Morimoto    type: object
240*2d8fc973SKuninori Morimoto    patternProperties:
241*2d8fc973SKuninori Morimoto      "^dai([0-9]+)?$":
242*2d8fc973SKuninori Morimoto        type: object
243*2d8fc973SKuninori Morimoto        properties:
244*2d8fc973SKuninori Morimoto          playback:
245*2d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
246*2d8fc973SKuninori Morimoto          capture:
247*2d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
248*2d8fc973SKuninori Morimoto        anyOf:
249*2d8fc973SKuninori Morimoto          - required:
250*2d8fc973SKuninori Morimoto              - playback
251*2d8fc973SKuninori Morimoto          - required:
252*2d8fc973SKuninori Morimoto              - capture
253*2d8fc973SKuninori Morimoto    additionalProperties: false
254*2d8fc973SKuninori Morimoto
255*2d8fc973SKuninori Morimotorequired:
256*2d8fc973SKuninori Morimoto  - compatible
257*2d8fc973SKuninori Morimoto  - reg
258*2d8fc973SKuninori Morimoto  - reg-names
259*2d8fc973SKuninori Morimoto  - clocks
260*2d8fc973SKuninori Morimoto  - clock-names
261*2d8fc973SKuninori Morimoto  - "#sound-dai-cells"
262*2d8fc973SKuninori Morimoto
263*2d8fc973SKuninori MorimotoallOf:
264*2d8fc973SKuninori Morimoto  - if:
265*2d8fc973SKuninori Morimoto      properties:
266*2d8fc973SKuninori Morimoto        compatible:
267*2d8fc973SKuninori Morimoto          contains:
268*2d8fc973SKuninori Morimoto            const: renesas,rcar_sound-gen1
269*2d8fc973SKuninori Morimoto    then:
270*2d8fc973SKuninori Morimoto      properties:
271*2d8fc973SKuninori Morimoto        reg:
272*2d8fc973SKuninori Morimoto          maxItems: 3
273*2d8fc973SKuninori Morimoto        reg-names:
274*2d8fc973SKuninori Morimoto          maxItems: 3
275*2d8fc973SKuninori Morimoto          items:
276*2d8fc973SKuninori Morimoto            enum:
277*2d8fc973SKuninori Morimoto              - scu
278*2d8fc973SKuninori Morimoto              - ssi
279*2d8fc973SKuninori Morimoto              - adg
280*2d8fc973SKuninori Morimoto    else:
281*2d8fc973SKuninori Morimoto      properties:
282*2d8fc973SKuninori Morimoto        reg:
283*2d8fc973SKuninori Morimoto          maxItems: 5
284*2d8fc973SKuninori Morimoto        reg-names:
285*2d8fc973SKuninori Morimoto          maxItems: 5
286*2d8fc973SKuninori Morimoto          items:
287*2d8fc973SKuninori Morimoto            enum:
288*2d8fc973SKuninori Morimoto              - scu
289*2d8fc973SKuninori Morimoto              - adg
290*2d8fc973SKuninori Morimoto              - ssiu
291*2d8fc973SKuninori Morimoto              - ssi
292*2d8fc973SKuninori Morimoto              - audmapp
293*2d8fc973SKuninori Morimoto
294*2d8fc973SKuninori MorimotoadditionalProperties: false
295*2d8fc973SKuninori Morimoto
296*2d8fc973SKuninori Morimotoexamples:
297*2d8fc973SKuninori Morimoto  - |
298*2d8fc973SKuninori Morimoto    rcar_sound: sound@ec500000 {
299*2d8fc973SKuninori Morimoto        #sound-dai-cells = <1>;
300*2d8fc973SKuninori Morimoto        compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
301*2d8fc973SKuninori Morimoto        reg = <0xec500000 0x1000>, /* SCU  */
302*2d8fc973SKuninori Morimoto              <0xec5a0000 0x100>,  /* ADG  */
303*2d8fc973SKuninori Morimoto              <0xec540000 0x1000>, /* SSIU */
304*2d8fc973SKuninori Morimoto              <0xec541000 0x1280>, /* SSI  */
305*2d8fc973SKuninori Morimoto              <0xec740000 0x200>;  /* Audio DMAC peri peri*/
306*2d8fc973SKuninori Morimoto        reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
307*2d8fc973SKuninori Morimoto
308*2d8fc973SKuninori Morimoto        clocks = <&mstp10_clks 1005>,                      /* SSI-ALL    */
309*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1006>, <&mstp10_clks 1007>, /* SSI9, SSI8 */
310*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1008>, <&mstp10_clks 1009>, /* SSI7, SSI6 */
311*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1010>, <&mstp10_clks 1011>, /* SSI5, SSI4 */
312*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1012>, <&mstp10_clks 1013>, /* SSI3, SSI2 */
313*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1014>, <&mstp10_clks 1015>, /* SSI1, SSI0 */
314*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1022>, <&mstp10_clks 1023>, /* SRC9, SRC8 */
315*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1024>, <&mstp10_clks 1025>, /* SRC7, SRC6 */
316*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1026>, <&mstp10_clks 1027>, /* SRC5, SRC4 */
317*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1028>, <&mstp10_clks 1029>, /* SRC3, SRC2 */
318*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1030>, <&mstp10_clks 1031>, /* SRC1, SRC0 */
319*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* MIX1, MIX0 */
320*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1020>, <&mstp10_clks 1021>, /* CTU1, CTU0 */
321*2d8fc973SKuninori Morimoto                 <&mstp10_clks 1019>, <&mstp10_clks 1018>, /* DVC0, DVC1 */
322*2d8fc973SKuninori Morimoto                 <&audio_clk_a>, <&audio_clk_b>,           /* CLKA, CLKB */
323*2d8fc973SKuninori Morimoto                 <&audio_clk_c>, <&audio_clk_i>;           /* CLKC, CLKI */
324*2d8fc973SKuninori Morimoto
325*2d8fc973SKuninori Morimoto        clock-names = "ssi-all",
326*2d8fc973SKuninori Morimoto                      "ssi.9", "ssi.8",
327*2d8fc973SKuninori Morimoto                      "ssi.7", "ssi.6",
328*2d8fc973SKuninori Morimoto                      "ssi.5", "ssi.4",
329*2d8fc973SKuninori Morimoto                      "ssi.3", "ssi.2",
330*2d8fc973SKuninori Morimoto                      "ssi.1", "ssi.0",
331*2d8fc973SKuninori Morimoto                      "src.9", "src.8",
332*2d8fc973SKuninori Morimoto                      "src.7", "src.6",
333*2d8fc973SKuninori Morimoto                      "src.5", "src.4",
334*2d8fc973SKuninori Morimoto                      "src.3", "src.2",
335*2d8fc973SKuninori Morimoto                      "src.1", "src.0",
336*2d8fc973SKuninori Morimoto                      "mix.1", "mix.0",
337*2d8fc973SKuninori Morimoto                      "ctu.1", "ctu.0",
338*2d8fc973SKuninori Morimoto                      "dvc.0", "dvc.1",
339*2d8fc973SKuninori Morimoto                      "clk_a", "clk_b",
340*2d8fc973SKuninori Morimoto                      "clk_c", "clk_i";
341*2d8fc973SKuninori Morimoto
342*2d8fc973SKuninori Morimoto        rcar_sound,dvc {
343*2d8fc973SKuninori Morimoto               dvc0: dvc-0 {
344*2d8fc973SKuninori Morimoto                    dmas = <&audma0 0xbc>;
345*2d8fc973SKuninori Morimoto                    dma-names = "tx";
346*2d8fc973SKuninori Morimoto               };
347*2d8fc973SKuninori Morimoto               dvc1: dvc-1 {
348*2d8fc973SKuninori Morimoto                    dmas = <&audma0 0xbe>;
349*2d8fc973SKuninori Morimoto                    dma-names = "tx";
350*2d8fc973SKuninori Morimoto               };
351*2d8fc973SKuninori Morimoto        };
352*2d8fc973SKuninori Morimoto
353*2d8fc973SKuninori Morimoto        rcar_sound,mix {
354*2d8fc973SKuninori Morimoto            mix0: mix-0 { };
355*2d8fc973SKuninori Morimoto            mix1: mix-1 { };
356*2d8fc973SKuninori Morimoto        };
357*2d8fc973SKuninori Morimoto
358*2d8fc973SKuninori Morimoto        rcar_sound,ctu {
359*2d8fc973SKuninori Morimoto            ctu00: ctu-0 { };
360*2d8fc973SKuninori Morimoto            ctu01: ctu-1 { };
361*2d8fc973SKuninori Morimoto            ctu02: ctu-2 { };
362*2d8fc973SKuninori Morimoto            ctu03: ctu-3 { };
363*2d8fc973SKuninori Morimoto            ctu10: ctu-4 { };
364*2d8fc973SKuninori Morimoto            ctu11: ctu-5 { };
365*2d8fc973SKuninori Morimoto            ctu12: ctu-6 { };
366*2d8fc973SKuninori Morimoto            ctu13: ctu-7 { };
367*2d8fc973SKuninori Morimoto        };
368*2d8fc973SKuninori Morimoto
369*2d8fc973SKuninori Morimoto        rcar_sound,src {
370*2d8fc973SKuninori Morimoto            src0: src-0 {
371*2d8fc973SKuninori Morimoto                status = "disabled";
372*2d8fc973SKuninori Morimoto            };
373*2d8fc973SKuninori Morimoto            src1: src-1 {
374*2d8fc973SKuninori Morimoto                interrupts = <0 353 0>;
375*2d8fc973SKuninori Morimoto                dmas = <&audma0 0x87>, <&audma1 0x9c>;
376*2d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
377*2d8fc973SKuninori Morimoto            };
378*2d8fc973SKuninori Morimoto            /* skip after src-2 */
379*2d8fc973SKuninori Morimoto        };
380*2d8fc973SKuninori Morimoto
381*2d8fc973SKuninori Morimoto        rcar_sound,ssiu {
382*2d8fc973SKuninori Morimoto            ssiu00: ssiu-0 {
383*2d8fc973SKuninori Morimoto                dmas = <&audma0 0x15>, <&audma1 0x16>;
384*2d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
385*2d8fc973SKuninori Morimoto            };
386*2d8fc973SKuninori Morimoto            ssiu01: ssiu-1 {
387*2d8fc973SKuninori Morimoto                dmas = <&audma0 0x35>, <&audma1 0x36>;
388*2d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
389*2d8fc973SKuninori Morimoto            };
390*2d8fc973SKuninori Morimoto            /* skip after ssiu-2 */
391*2d8fc973SKuninori Morimoto        };
392*2d8fc973SKuninori Morimoto
393*2d8fc973SKuninori Morimoto        rcar_sound,ssi {
394*2d8fc973SKuninori Morimoto            ssi0: ssi-0 {
395*2d8fc973SKuninori Morimoto                interrupts = <0 370 1>;
396*2d8fc973SKuninori Morimoto                dmas = <&audma0 0x01>, <&audma1 0x02>;
397*2d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
398*2d8fc973SKuninori Morimoto            };
399*2d8fc973SKuninori Morimoto            ssi1: ssi-1 {
400*2d8fc973SKuninori Morimoto                interrupts = <0 371 1>;
401*2d8fc973SKuninori Morimoto                dmas = <&audma0 0x03>, <&audma1 0x04>;
402*2d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
403*2d8fc973SKuninori Morimoto            };
404*2d8fc973SKuninori Morimoto            /* skip other ssi-2 */
405*2d8fc973SKuninori Morimoto        };
406*2d8fc973SKuninori Morimoto
407*2d8fc973SKuninori Morimoto        /* DAI base */
408*2d8fc973SKuninori Morimoto        rcar_sound,dai {
409*2d8fc973SKuninori Morimoto            dai0 {
410*2d8fc973SKuninori Morimoto                playback = <&ssi5 &src5>;
411*2d8fc973SKuninori Morimoto                capture  = <&ssi6>;
412*2d8fc973SKuninori Morimoto            };
413*2d8fc973SKuninori Morimoto            dai1 {
414*2d8fc973SKuninori Morimoto                playback = <&ssi3>;
415*2d8fc973SKuninori Morimoto            };
416*2d8fc973SKuninori Morimoto            dai2 {
417*2d8fc973SKuninori Morimoto                capture  = <&ssi4>;
418*2d8fc973SKuninori Morimoto            };
419*2d8fc973SKuninori Morimoto            dai3 {
420*2d8fc973SKuninori Morimoto                playback = <&ssi7>;
421*2d8fc973SKuninori Morimoto            };
422*2d8fc973SKuninori Morimoto            dai4 {
423*2d8fc973SKuninori Morimoto                capture  = <&ssi8>;
424*2d8fc973SKuninori Morimoto            };
425*2d8fc973SKuninori Morimoto        };
426*2d8fc973SKuninori Morimoto
427*2d8fc973SKuninori Morimoto        /* assume audio-graph */
428*2d8fc973SKuninori Morimoto        port {
429*2d8fc973SKuninori Morimoto            rsnd_endpoint: endpoint {
430*2d8fc973SKuninori Morimoto                remote-endpoint = <&codec_endpoint>;
431*2d8fc973SKuninori Morimoto
432*2d8fc973SKuninori Morimoto                dai-format = "left_j";
433*2d8fc973SKuninori Morimoto                bitclock-master = <&rsnd_endpoint0>;
434*2d8fc973SKuninori Morimoto                frame-master = <&rsnd_endpoint0>;
435*2d8fc973SKuninori Morimoto
436*2d8fc973SKuninori Morimoto                playback = <&ssi0 &src0 &dvc0>;
437*2d8fc973SKuninori Morimoto                capture  = <&ssi1 &src1 &dvc1>;
438*2d8fc973SKuninori Morimoto            };
439*2d8fc973SKuninori Morimoto        };
440*2d8fc973SKuninori Morimoto    };
441*2d8fc973SKuninori Morimoto
442*2d8fc973SKuninori Morimoto
443*2d8fc973SKuninori Morimoto    /* assume audio-graph */
444*2d8fc973SKuninori Morimoto    codec {
445*2d8fc973SKuninori Morimoto        port {
446*2d8fc973SKuninori Morimoto            codec_endpoint: endpoint {
447*2d8fc973SKuninori Morimoto                remote-endpoint = <&rsnd_endpoint>;
448*2d8fc973SKuninori Morimoto            };
449*2d8fc973SKuninori Morimoto        };
450*2d8fc973SKuninori Morimoto    };
451