xref: /freebsd/sys/contrib/device-tree/Bindings/sound/renesas,rsnd.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
15def4c47SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25def4c47SEmmanuel Vadot%YAML 1.2
35def4c47SEmmanuel Vadot---
45def4c47SEmmanuel Vadot$id: http://devicetree.org/schemas/sound/renesas,rsnd.yaml#
55def4c47SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65def4c47SEmmanuel Vadot
77ef62cebSEmmanuel Vadottitle: Renesas R-Car Sound Driver
85def4c47SEmmanuel Vadot
95def4c47SEmmanuel Vadotmaintainers:
105def4c47SEmmanuel Vadot  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
115def4c47SEmmanuel Vadot
125def4c47SEmmanuel Vadotproperties:
135def4c47SEmmanuel Vadot
145def4c47SEmmanuel Vadot  compatible:
155def4c47SEmmanuel Vadot    oneOf:
165def4c47SEmmanuel Vadot      # for Gen1 SoC
175def4c47SEmmanuel Vadot      - items:
185def4c47SEmmanuel Vadot          - enum:
195def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7778   # R-Car M1A
205def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7779   # R-Car H1
21cb7aa33aSEmmanuel Vadot          - const: renesas,rcar_sound-gen1
225def4c47SEmmanuel Vadot      # for Gen2 SoC
235def4c47SEmmanuel Vadot      - items:
245def4c47SEmmanuel Vadot          - enum:
255def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7742   # RZ/G1H
265def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7743   # RZ/G1M
275def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7744   # RZ/G1N
285def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7745   # RZ/G1E
295def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a77470  # RZ/G1C
305def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7790   # R-Car H2
315def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7791   # R-Car M2-W
325def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7793   # R-Car M2-N
335def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7794   # R-Car E2
34cb7aa33aSEmmanuel Vadot          - const: renesas,rcar_sound-gen2
355def4c47SEmmanuel Vadot      # for Gen3 SoC
365def4c47SEmmanuel Vadot      - items:
375def4c47SEmmanuel Vadot          - enum:
385def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a774a1  # RZ/G2M
395def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a774b1  # RZ/G2N
405def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a774c0  # RZ/G2E
415def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a774e1  # RZ/G2H
425def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7795   # R-Car H3
435def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a7796   # R-Car M3-W
445def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a77961  # R-Car M3-W+
455def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a77965  # R-Car M3-N
465def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a77990  # R-Car E3
475def4c47SEmmanuel Vadot              - renesas,rcar_sound-r8a77995  # R-Car D3
48cb7aa33aSEmmanuel Vadot          - const: renesas,rcar_sound-gen3
49cb7aa33aSEmmanuel Vadot      # for Gen4 SoC
505def4c47SEmmanuel Vadot      - items:
517d0873ebSEmmanuel Vadot          - enum:
527d0873ebSEmmanuel Vadot              - renesas,rcar_sound-r8a779g0  # R-Car V4H
537d0873ebSEmmanuel Vadot              - renesas,rcar_sound-r8a779h0  # R-Car V4M
54cb7aa33aSEmmanuel Vadot          - const: renesas,rcar_sound-gen4
55cb7aa33aSEmmanuel Vadot      # for Generic
565def4c47SEmmanuel Vadot      - enum:
575def4c47SEmmanuel Vadot          - renesas,rcar_sound-gen1
585def4c47SEmmanuel Vadot          - renesas,rcar_sound-gen2
595def4c47SEmmanuel Vadot          - renesas,rcar_sound-gen3
607d0873ebSEmmanuel Vadot          - renesas,rcar_sound-gen4
615def4c47SEmmanuel Vadot
625def4c47SEmmanuel Vadot  reg:
635def4c47SEmmanuel Vadot    minItems: 1
645def4c47SEmmanuel Vadot    maxItems: 5
655def4c47SEmmanuel Vadot
665def4c47SEmmanuel Vadot  reg-names:
675def4c47SEmmanuel Vadot    minItems: 1
685def4c47SEmmanuel Vadot    maxItems: 5
695def4c47SEmmanuel Vadot
705def4c47SEmmanuel Vadot  "#sound-dai-cells":
715def4c47SEmmanuel Vadot    description: |
725def4c47SEmmanuel Vadot      it must be 0 if your system is using single DAI
735def4c47SEmmanuel Vadot      it must be 1 if your system is using multi  DAIs
74cb7aa33aSEmmanuel Vadot      This is used on simple-audio-card
755def4c47SEmmanuel Vadot    enum: [0, 1]
765def4c47SEmmanuel Vadot
775def4c47SEmmanuel Vadot  "#clock-cells":
785def4c47SEmmanuel Vadot    description: |
795def4c47SEmmanuel Vadot      it must be 0 if your system has audio_clkout
805def4c47SEmmanuel Vadot      it must be 1 if your system has audio_clkout0/1/2/3
815def4c47SEmmanuel Vadot    enum: [0, 1]
825def4c47SEmmanuel Vadot
83aa1a8ff2SEmmanuel Vadot  "#address-cells":
84aa1a8ff2SEmmanuel Vadot    const: 1
85aa1a8ff2SEmmanuel Vadot
86aa1a8ff2SEmmanuel Vadot  "#size-cells":
87aa1a8ff2SEmmanuel Vadot    const: 0
88aa1a8ff2SEmmanuel Vadot
895def4c47SEmmanuel Vadot  clock-frequency:
905def4c47SEmmanuel Vadot    description: for audio_clkout0/1/2/3
915def4c47SEmmanuel Vadot
925def4c47SEmmanuel Vadot  clkout-lr-asynchronous:
935def4c47SEmmanuel Vadot    description: audio_clkoutn is asynchronizes with lr-clock.
945def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
955def4c47SEmmanuel Vadot
965def4c47SEmmanuel Vadot  power-domains: true
975def4c47SEmmanuel Vadot
985def4c47SEmmanuel Vadot  resets:
995956d97fSEmmanuel Vadot    minItems: 1
1005def4c47SEmmanuel Vadot    maxItems: 11
1015def4c47SEmmanuel Vadot
1025def4c47SEmmanuel Vadot  reset-names:
1035956d97fSEmmanuel Vadot    minItems: 1
1045def4c47SEmmanuel Vadot    maxItems: 11
1055def4c47SEmmanuel Vadot
1065def4c47SEmmanuel Vadot  clocks:
1075def4c47SEmmanuel Vadot    description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
1085def4c47SEmmanuel Vadot    minItems: 1
1095def4c47SEmmanuel Vadot    maxItems: 31
1105def4c47SEmmanuel Vadot
1115def4c47SEmmanuel Vadot  clock-names:
1125def4c47SEmmanuel Vadot    description: List of necessary clock names.
113fac71e4eSEmmanuel Vadot    # details are defined below
1145def4c47SEmmanuel Vadot
115*b2d2a78aSEmmanuel Vadot  post-init-providers:
116*b2d2a78aSEmmanuel Vadot    description: At least if rsnd is using DPCM connection on Audio-Graph-Card2,
117*b2d2a78aSEmmanuel Vadot      fw_devlink might doesn't have enough information to break the cycle. rsnd
118*b2d2a78aSEmmanuel Vadot      driver will not be probed in such case. Same problem might occur with
119*b2d2a78aSEmmanuel Vadot      Multi-CPU/Codec or Codec2Codec.
120*b2d2a78aSEmmanuel Vadot
121aa1a8ff2SEmmanuel Vadot  # ports is below
1222eb4d8dcSEmmanuel Vadot  port:
1238d13bc63SEmmanuel Vadot    $ref: audio-graph-port.yaml#/definitions/port-base
1248d13bc63SEmmanuel Vadot    unevaluatedProperties: false
1258d13bc63SEmmanuel Vadot    patternProperties:
1268d13bc63SEmmanuel Vadot      "^endpoint(@[0-9a-f]+)?":
1278d13bc63SEmmanuel Vadot        $ref: audio-graph-port.yaml#/definitions/endpoint-base
1288d13bc63SEmmanuel Vadot        properties:
1298d13bc63SEmmanuel Vadot          playback:
1308d13bc63SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
1318d13bc63SEmmanuel Vadot          capture:
1328d13bc63SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
1338d13bc63SEmmanuel Vadot        unevaluatedProperties: false
1345def4c47SEmmanuel Vadot
135c9ccf3a3SEmmanuel Vadot  rcar_sound,dvc:
1365def4c47SEmmanuel Vadot    description: DVC subnode.
1375def4c47SEmmanuel Vadot    type: object
1385def4c47SEmmanuel Vadot    patternProperties:
1395def4c47SEmmanuel Vadot      "^dvc-[0-1]$":
1405def4c47SEmmanuel Vadot        type: object
1417ef62cebSEmmanuel Vadot        additionalProperties: false
1427ef62cebSEmmanuel Vadot
1435def4c47SEmmanuel Vadot        properties:
1445def4c47SEmmanuel Vadot          dmas:
1455def4c47SEmmanuel Vadot            maxItems: 1
1465def4c47SEmmanuel Vadot          dma-names:
147fac71e4eSEmmanuel Vadot            const: tx
1485def4c47SEmmanuel Vadot        required:
1495def4c47SEmmanuel Vadot          - dmas
1505def4c47SEmmanuel Vadot          - dma-names
1515def4c47SEmmanuel Vadot    additionalProperties: false
1525def4c47SEmmanuel Vadot
153c9ccf3a3SEmmanuel Vadot  rcar_sound,mix:
1545def4c47SEmmanuel Vadot    description: MIX subnode.
1555def4c47SEmmanuel Vadot    type: object
1565def4c47SEmmanuel Vadot    patternProperties:
1575def4c47SEmmanuel Vadot      "^mix-[0-1]$":
1585def4c47SEmmanuel Vadot        type: object
1597ef62cebSEmmanuel Vadot        additionalProperties: false
1605def4c47SEmmanuel Vadot    additionalProperties: false
1615def4c47SEmmanuel Vadot
162c9ccf3a3SEmmanuel Vadot  rcar_sound,ctu:
1635def4c47SEmmanuel Vadot    description: CTU subnode.
1645def4c47SEmmanuel Vadot    type: object
1655def4c47SEmmanuel Vadot    patternProperties:
1665def4c47SEmmanuel Vadot      "^ctu-[0-7]$":
1675def4c47SEmmanuel Vadot        type: object
1687ef62cebSEmmanuel Vadot        additionalProperties: false
1695def4c47SEmmanuel Vadot    additionalProperties: false
1705def4c47SEmmanuel Vadot
171c9ccf3a3SEmmanuel Vadot  rcar_sound,src:
1725def4c47SEmmanuel Vadot    description: SRC subnode.
1735def4c47SEmmanuel Vadot    type: object
1745def4c47SEmmanuel Vadot    patternProperties:
1755def4c47SEmmanuel Vadot      "^src-[0-9]$":
1765def4c47SEmmanuel Vadot        type: object
1777ef62cebSEmmanuel Vadot        additionalProperties: false
1787ef62cebSEmmanuel Vadot
1795def4c47SEmmanuel Vadot        properties:
1805def4c47SEmmanuel Vadot          interrupts:
1815def4c47SEmmanuel Vadot            maxItems: 1
1825def4c47SEmmanuel Vadot          dmas:
1835def4c47SEmmanuel Vadot            maxItems: 2
1845def4c47SEmmanuel Vadot          dma-names:
1855def4c47SEmmanuel Vadot            allOf:
1865def4c47SEmmanuel Vadot              - items:
1875def4c47SEmmanuel Vadot                  enum:
1885def4c47SEmmanuel Vadot                    - tx
1895def4c47SEmmanuel Vadot                    - rx
1905def4c47SEmmanuel Vadot    additionalProperties: false
1915def4c47SEmmanuel Vadot
192c9ccf3a3SEmmanuel Vadot  rcar_sound,ssiu:
1935def4c47SEmmanuel Vadot    description: SSIU subnode.
1945def4c47SEmmanuel Vadot    type: object
1955def4c47SEmmanuel Vadot    patternProperties:
1965def4c47SEmmanuel Vadot      "^ssiu-[0-9]+$":
1975def4c47SEmmanuel Vadot        type: object
1987ef62cebSEmmanuel Vadot        additionalProperties: false
1997ef62cebSEmmanuel Vadot
2005def4c47SEmmanuel Vadot        properties:
2015def4c47SEmmanuel Vadot          dmas:
2025def4c47SEmmanuel Vadot            maxItems: 2
2035def4c47SEmmanuel Vadot          dma-names:
2045def4c47SEmmanuel Vadot            allOf:
2055def4c47SEmmanuel Vadot              - items:
2065def4c47SEmmanuel Vadot                  enum:
2075def4c47SEmmanuel Vadot                    - tx
2085def4c47SEmmanuel Vadot                    - rx
2095def4c47SEmmanuel Vadot        required:
2105def4c47SEmmanuel Vadot          - dmas
2115def4c47SEmmanuel Vadot          - dma-names
2125def4c47SEmmanuel Vadot    additionalProperties: false
2135def4c47SEmmanuel Vadot
214c9ccf3a3SEmmanuel Vadot  rcar_sound,ssi:
2155def4c47SEmmanuel Vadot    description: SSI subnode.
2165def4c47SEmmanuel Vadot    type: object
2175def4c47SEmmanuel Vadot    patternProperties:
2185def4c47SEmmanuel Vadot      "^ssi-[0-9]$":
2195def4c47SEmmanuel Vadot        type: object
2207ef62cebSEmmanuel Vadot        additionalProperties: false
2217ef62cebSEmmanuel Vadot
2225def4c47SEmmanuel Vadot        properties:
2235def4c47SEmmanuel Vadot          interrupts:
2245def4c47SEmmanuel Vadot            maxItems: 1
2255def4c47SEmmanuel Vadot          dmas:
2265def4c47SEmmanuel Vadot            minItems: 2
2275def4c47SEmmanuel Vadot            maxItems: 4
2285def4c47SEmmanuel Vadot          dma-names:
2295def4c47SEmmanuel Vadot            allOf:
2305def4c47SEmmanuel Vadot              - items:
2315def4c47SEmmanuel Vadot                  enum:
2325def4c47SEmmanuel Vadot                    - tx
2335def4c47SEmmanuel Vadot                    - rx
2345def4c47SEmmanuel Vadot                    - txu # if no ssiu node
2355def4c47SEmmanuel Vadot                    - rxu # if no ssiu node
2365def4c47SEmmanuel Vadot
2375def4c47SEmmanuel Vadot          shared-pin:
2385def4c47SEmmanuel Vadot            description: shared clock pin
2395def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2405def4c47SEmmanuel Vadot          pio-transfer:
2415def4c47SEmmanuel Vadot            description: PIO transfer mode
2425def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2435def4c47SEmmanuel Vadot          no-busif:
2445def4c47SEmmanuel Vadot            description: BUSIF is not used when [mem -> SSI] via DMA case
2455def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2465def4c47SEmmanuel Vadot        required:
2475def4c47SEmmanuel Vadot          - interrupts
2485def4c47SEmmanuel Vadot    additionalProperties: false
2495def4c47SEmmanuel Vadot
250aa1a8ff2SEmmanuel VadotpatternProperties:
2515def4c47SEmmanuel Vadot  # For DAI base
252aa1a8ff2SEmmanuel Vadot  'rcar_sound,dai(@[0-9a-f]+)?$':
2535def4c47SEmmanuel Vadot    description: DAI subnode.
2545def4c47SEmmanuel Vadot    type: object
2555def4c47SEmmanuel Vadot    patternProperties:
2565def4c47SEmmanuel Vadot      "^dai([0-9]+)?$":
2575def4c47SEmmanuel Vadot        type: object
2587ef62cebSEmmanuel Vadot        additionalProperties: false
2597ef62cebSEmmanuel Vadot
2605def4c47SEmmanuel Vadot        properties:
2615def4c47SEmmanuel Vadot          playback:
2625def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
2635def4c47SEmmanuel Vadot          capture:
2645def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
2655def4c47SEmmanuel Vadot        anyOf:
2665def4c47SEmmanuel Vadot          - required:
2675def4c47SEmmanuel Vadot              - playback
2685def4c47SEmmanuel Vadot          - required:
2695def4c47SEmmanuel Vadot              - capture
2705def4c47SEmmanuel Vadot    additionalProperties: false
2715def4c47SEmmanuel Vadot
272aa1a8ff2SEmmanuel Vadot  'ports(@[0-9a-f]+)?$':
273aa1a8ff2SEmmanuel Vadot    $ref: audio-graph-port.yaml#/definitions/port-base
274aa1a8ff2SEmmanuel Vadot    unevaluatedProperties: false
275aa1a8ff2SEmmanuel Vadot    patternProperties:
276aa1a8ff2SEmmanuel Vadot      '^port(@[0-9a-f]+)?$':
2778d13bc63SEmmanuel Vadot        $ref: "#/properties/port"
278aa1a8ff2SEmmanuel Vadot
2795def4c47SEmmanuel Vadotrequired:
2805def4c47SEmmanuel Vadot  - compatible
2815def4c47SEmmanuel Vadot  - reg
2825def4c47SEmmanuel Vadot  - reg-names
2835def4c47SEmmanuel Vadot  - clocks
2845def4c47SEmmanuel Vadot  - clock-names
2855def4c47SEmmanuel Vadot
2865def4c47SEmmanuel VadotallOf:
2878bab661aSEmmanuel Vadot  - $ref: dai-common.yaml#
288fac71e4eSEmmanuel Vadot
289fac71e4eSEmmanuel Vadot  # --------------------
290fac71e4eSEmmanuel Vadot  # reg/reg-names
291fac71e4eSEmmanuel Vadot  # --------------------
292fac71e4eSEmmanuel Vadot  # for Gen1
2935def4c47SEmmanuel Vadot  - if:
2945def4c47SEmmanuel Vadot      properties:
2955def4c47SEmmanuel Vadot        compatible:
2965def4c47SEmmanuel Vadot          contains:
2975def4c47SEmmanuel Vadot            const: renesas,rcar_sound-gen1
2985def4c47SEmmanuel Vadot    then:
2995def4c47SEmmanuel Vadot      properties:
3005def4c47SEmmanuel Vadot        reg:
3015def4c47SEmmanuel Vadot          maxItems: 3
3025def4c47SEmmanuel Vadot        reg-names:
3035def4c47SEmmanuel Vadot          items:
3045def4c47SEmmanuel Vadot            enum:
305*b2d2a78aSEmmanuel Vadot              - sru
3065def4c47SEmmanuel Vadot              - ssi
3075def4c47SEmmanuel Vadot              - adg
308fac71e4eSEmmanuel Vadot  # for Gen2/Gen3
309fac71e4eSEmmanuel Vadot  - if:
310fac71e4eSEmmanuel Vadot      properties:
311fac71e4eSEmmanuel Vadot        compatible:
312fac71e4eSEmmanuel Vadot          contains:
313fac71e4eSEmmanuel Vadot            enum:
314fac71e4eSEmmanuel Vadot              - renesas,rcar_sound-gen2
315fac71e4eSEmmanuel Vadot              - renesas,rcar_sound-gen3
316fac71e4eSEmmanuel Vadot    then:
3175def4c47SEmmanuel Vadot      properties:
3185def4c47SEmmanuel Vadot        reg:
319cb7aa33aSEmmanuel Vadot          minItems: 5
3205def4c47SEmmanuel Vadot        reg-names:
3215def4c47SEmmanuel Vadot          items:
3225def4c47SEmmanuel Vadot            enum:
3235def4c47SEmmanuel Vadot              - scu
3245def4c47SEmmanuel Vadot              - adg
3255def4c47SEmmanuel Vadot              - ssiu
3265def4c47SEmmanuel Vadot              - ssi
3275def4c47SEmmanuel Vadot              - audmapp
328fac71e4eSEmmanuel Vadot  # for Gen4
329fac71e4eSEmmanuel Vadot  - if:
330fac71e4eSEmmanuel Vadot      properties:
331fac71e4eSEmmanuel Vadot        compatible:
332fac71e4eSEmmanuel Vadot          contains:
333fac71e4eSEmmanuel Vadot            const: renesas,rcar_sound-gen4
334fac71e4eSEmmanuel Vadot    then:
335fac71e4eSEmmanuel Vadot      properties:
336fac71e4eSEmmanuel Vadot        reg:
337fac71e4eSEmmanuel Vadot          maxItems: 4
338fac71e4eSEmmanuel Vadot        reg-names:
339fac71e4eSEmmanuel Vadot          items:
340fac71e4eSEmmanuel Vadot            enum:
341fac71e4eSEmmanuel Vadot              - adg
342fac71e4eSEmmanuel Vadot              - ssiu
343fac71e4eSEmmanuel Vadot              - ssi
344fac71e4eSEmmanuel Vadot              - sdmc
345fac71e4eSEmmanuel Vadot
346fac71e4eSEmmanuel Vadot  # --------------------
347fac71e4eSEmmanuel Vadot  # clock-names
348fac71e4eSEmmanuel Vadot  # --------------------
349fac71e4eSEmmanuel Vadot  - if:
350fac71e4eSEmmanuel Vadot      properties:
351fac71e4eSEmmanuel Vadot        compatible:
352fac71e4eSEmmanuel Vadot          contains:
353fac71e4eSEmmanuel Vadot            const: renesas,rcar_sound-gen4
354fac71e4eSEmmanuel Vadot    then:
355fac71e4eSEmmanuel Vadot      properties:
356fac71e4eSEmmanuel Vadot        clock-names:
357fac71e4eSEmmanuel Vadot          maxItems: 3
358fac71e4eSEmmanuel Vadot          items:
359fac71e4eSEmmanuel Vadot            enum:
360fac71e4eSEmmanuel Vadot              - ssi.0
361fac71e4eSEmmanuel Vadot              - ssiu.0
362fac71e4eSEmmanuel Vadot              - clkin
363fac71e4eSEmmanuel Vadot    else:
364fac71e4eSEmmanuel Vadot      properties:
365fac71e4eSEmmanuel Vadot        clock-names:
366fac71e4eSEmmanuel Vadot          minItems: 1
367fac71e4eSEmmanuel Vadot          maxItems: 31
368fac71e4eSEmmanuel Vadot          items:
369fac71e4eSEmmanuel Vadot            oneOf:
370fac71e4eSEmmanuel Vadot              - const: ssi-all
371fac71e4eSEmmanuel Vadot              - pattern: '^ssi\.[0-9]$'
372fac71e4eSEmmanuel Vadot              - pattern: '^src\.[0-9]$'
373fac71e4eSEmmanuel Vadot              - pattern: '^mix\.[0-1]$'
374fac71e4eSEmmanuel Vadot              - pattern: '^ctu\.[0-1]$'
375fac71e4eSEmmanuel Vadot              - pattern: '^dvc\.[0-1]$'
376fac71e4eSEmmanuel Vadot              - pattern: '^clk_(a|b|c|i)$'
3775def4c47SEmmanuel Vadot
3788bab661aSEmmanuel VadotunevaluatedProperties: false
3795def4c47SEmmanuel Vadot
3805def4c47SEmmanuel Vadotexamples:
3815def4c47SEmmanuel Vadot  - |
382fac71e4eSEmmanuel Vadot    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
383fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
384fac71e4eSEmmanuel Vadot    #include <dt-bindings/power/r8a7790-sysc.h>
3855def4c47SEmmanuel Vadot    rcar_sound: sound@ec500000 {
3865def4c47SEmmanuel Vadot        #sound-dai-cells = <1>;
3875def4c47SEmmanuel Vadot        compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
3885def4c47SEmmanuel Vadot        reg = <0xec500000 0x1000>, /* SCU  */
3895def4c47SEmmanuel Vadot              <0xec5a0000 0x100>,  /* ADG  */
3905def4c47SEmmanuel Vadot              <0xec540000 0x1000>, /* SSIU */
391fac71e4eSEmmanuel Vadot              <0xec541000 0x280>,  /* SSI  */
3925def4c47SEmmanuel Vadot              <0xec740000 0x200>;  /* Audio DMAC peri peri*/
3935def4c47SEmmanuel Vadot        reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
3945def4c47SEmmanuel Vadot
395fac71e4eSEmmanuel Vadot        clocks = <&cpg CPG_MOD 1005>,                      /* SSI-ALL    */
396fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, /* SSI9, SSI8 */
397fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, /* SSI7, SSI6 */
398fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, /* SSI5, SSI4 */
399fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, /* SSI3, SSI2 */
400fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, /* SSI1, SSI0 */
401fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, /* SRC9, SRC8 */
402fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, /* SRC7, SRC6 */
403fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, /* SRC5, SRC4 */
404fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, /* SRC3, SRC2 */
405fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, /* SRC1, SRC0 */
406fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* MIX1, MIX0 */
407fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* CTU1, CTU0 */
408fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, /* DVC0, DVC1 */
4095def4c47SEmmanuel Vadot                 <&audio_clk_a>, <&audio_clk_b>,           /* CLKA, CLKB */
4105def4c47SEmmanuel Vadot                 <&audio_clk_c>, <&audio_clk_i>;           /* CLKC, CLKI */
4115def4c47SEmmanuel Vadot
4125def4c47SEmmanuel Vadot        clock-names = "ssi-all",
4135def4c47SEmmanuel Vadot                      "ssi.9", "ssi.8",
4145def4c47SEmmanuel Vadot                      "ssi.7", "ssi.6",
4155def4c47SEmmanuel Vadot                      "ssi.5", "ssi.4",
4165def4c47SEmmanuel Vadot                      "ssi.3", "ssi.2",
4175def4c47SEmmanuel Vadot                      "ssi.1", "ssi.0",
4185def4c47SEmmanuel Vadot                      "src.9", "src.8",
4195def4c47SEmmanuel Vadot                      "src.7", "src.6",
4205def4c47SEmmanuel Vadot                      "src.5", "src.4",
4215def4c47SEmmanuel Vadot                      "src.3", "src.2",
4225def4c47SEmmanuel Vadot                      "src.1", "src.0",
4235def4c47SEmmanuel Vadot                      "mix.1", "mix.0",
4245def4c47SEmmanuel Vadot                      "ctu.1", "ctu.0",
4255def4c47SEmmanuel Vadot                      "dvc.0", "dvc.1",
4265def4c47SEmmanuel Vadot                      "clk_a", "clk_b",
4275def4c47SEmmanuel Vadot                      "clk_c", "clk_i";
4285def4c47SEmmanuel Vadot
429fac71e4eSEmmanuel Vadot        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
430fac71e4eSEmmanuel Vadot
431fac71e4eSEmmanuel Vadot        resets = <&cpg 1005>,
432fac71e4eSEmmanuel Vadot                 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
433fac71e4eSEmmanuel Vadot                 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
434fac71e4eSEmmanuel Vadot                 <&cpg 1014>, <&cpg 1015>;
435fac71e4eSEmmanuel Vadot        reset-names = "ssi-all",
436fac71e4eSEmmanuel Vadot                      "ssi.9", "ssi.8", "ssi.7", "ssi.6",
437fac71e4eSEmmanuel Vadot                      "ssi.5", "ssi.4", "ssi.3", "ssi.2",
438fac71e4eSEmmanuel Vadot                      "ssi.1", "ssi.0";
439fac71e4eSEmmanuel Vadot
4405def4c47SEmmanuel Vadot        rcar_sound,dvc {
4415def4c47SEmmanuel Vadot               dvc0: dvc-0 {
4425def4c47SEmmanuel Vadot                    dmas = <&audma0 0xbc>;
4435def4c47SEmmanuel Vadot                    dma-names = "tx";
4445def4c47SEmmanuel Vadot               };
4455def4c47SEmmanuel Vadot               dvc1: dvc-1 {
4465def4c47SEmmanuel Vadot                    dmas = <&audma0 0xbe>;
4475def4c47SEmmanuel Vadot                    dma-names = "tx";
4485def4c47SEmmanuel Vadot               };
4495def4c47SEmmanuel Vadot        };
4505def4c47SEmmanuel Vadot
4515def4c47SEmmanuel Vadot        rcar_sound,mix {
4525def4c47SEmmanuel Vadot            mix0: mix-0 { };
4535def4c47SEmmanuel Vadot            mix1: mix-1 { };
4545def4c47SEmmanuel Vadot        };
4555def4c47SEmmanuel Vadot
4565def4c47SEmmanuel Vadot        rcar_sound,ctu {
4575def4c47SEmmanuel Vadot            ctu00: ctu-0 { };
4585def4c47SEmmanuel Vadot            ctu01: ctu-1 { };
4595def4c47SEmmanuel Vadot            ctu02: ctu-2 { };
4605def4c47SEmmanuel Vadot            ctu03: ctu-3 { };
4615def4c47SEmmanuel Vadot            ctu10: ctu-4 { };
4625def4c47SEmmanuel Vadot            ctu11: ctu-5 { };
4635def4c47SEmmanuel Vadot            ctu12: ctu-6 { };
4645def4c47SEmmanuel Vadot            ctu13: ctu-7 { };
4655def4c47SEmmanuel Vadot        };
4665def4c47SEmmanuel Vadot
4675def4c47SEmmanuel Vadot        rcar_sound,src {
4685def4c47SEmmanuel Vadot            src0: src-0 {
4695def4c47SEmmanuel Vadot                status = "disabled";
4705def4c47SEmmanuel Vadot            };
4715def4c47SEmmanuel Vadot            src1: src-1 {
472fac71e4eSEmmanuel Vadot                interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
4735def4c47SEmmanuel Vadot                dmas = <&audma0 0x87>, <&audma1 0x9c>;
4745def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4755def4c47SEmmanuel Vadot            };
4765def4c47SEmmanuel Vadot            /* skip after src-2 */
4775def4c47SEmmanuel Vadot        };
4785def4c47SEmmanuel Vadot
4795def4c47SEmmanuel Vadot        rcar_sound,ssiu {
4805def4c47SEmmanuel Vadot            ssiu00: ssiu-0 {
4815def4c47SEmmanuel Vadot                dmas = <&audma0 0x15>, <&audma1 0x16>;
4825def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4835def4c47SEmmanuel Vadot            };
4845def4c47SEmmanuel Vadot            ssiu01: ssiu-1 {
4855def4c47SEmmanuel Vadot                dmas = <&audma0 0x35>, <&audma1 0x36>;
4865def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4875def4c47SEmmanuel Vadot            };
4885def4c47SEmmanuel Vadot            /* skip after ssiu-2 */
4895def4c47SEmmanuel Vadot        };
4905def4c47SEmmanuel Vadot
4915def4c47SEmmanuel Vadot        rcar_sound,ssi {
4925def4c47SEmmanuel Vadot            ssi0: ssi-0 {
493fac71e4eSEmmanuel Vadot                interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
4945def4c47SEmmanuel Vadot                dmas = <&audma0 0x01>, <&audma1 0x02>;
4955def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4965def4c47SEmmanuel Vadot            };
4975def4c47SEmmanuel Vadot            ssi1: ssi-1 {
498fac71e4eSEmmanuel Vadot                interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
4995def4c47SEmmanuel Vadot                dmas = <&audma0 0x03>, <&audma1 0x04>;
5005def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
5015def4c47SEmmanuel Vadot            };
5025def4c47SEmmanuel Vadot            /* skip other ssi-2 */
5035def4c47SEmmanuel Vadot        };
5045def4c47SEmmanuel Vadot
5055def4c47SEmmanuel Vadot        /* DAI base */
5065def4c47SEmmanuel Vadot        rcar_sound,dai {
5075def4c47SEmmanuel Vadot            dai0 {
5085def4c47SEmmanuel Vadot                playback = <&ssi5>, <&src5>;
5095def4c47SEmmanuel Vadot                capture = <&ssi6>;
5105def4c47SEmmanuel Vadot            };
5115def4c47SEmmanuel Vadot            dai1 {
5125def4c47SEmmanuel Vadot                playback = <&ssi3>;
5135def4c47SEmmanuel Vadot            };
5145def4c47SEmmanuel Vadot            dai2 {
5155def4c47SEmmanuel Vadot                capture = <&ssi4>;
5165def4c47SEmmanuel Vadot            };
5175def4c47SEmmanuel Vadot            dai3 {
5185def4c47SEmmanuel Vadot                playback = <&ssi7>;
5195def4c47SEmmanuel Vadot            };
5205def4c47SEmmanuel Vadot            dai4 {
5215def4c47SEmmanuel Vadot                capture = <&ssi8>;
5225def4c47SEmmanuel Vadot            };
5235def4c47SEmmanuel Vadot        };
5245def4c47SEmmanuel Vadot
5255def4c47SEmmanuel Vadot        /* assume audio-graph */
5265def4c47SEmmanuel Vadot        port {
5275def4c47SEmmanuel Vadot            rsnd_endpoint: endpoint {
5285def4c47SEmmanuel Vadot                remote-endpoint = <&codec_endpoint>;
5295def4c47SEmmanuel Vadot
5305def4c47SEmmanuel Vadot                dai-format = "left_j";
5315def4c47SEmmanuel Vadot                bitclock-master = <&rsnd_endpoint0>;
5325def4c47SEmmanuel Vadot                frame-master = <&rsnd_endpoint0>;
5335def4c47SEmmanuel Vadot
5345def4c47SEmmanuel Vadot                playback = <&ssi0>, <&src0>, <&dvc0>;
5355def4c47SEmmanuel Vadot                capture = <&ssi1>, <&src1>, <&dvc1>;
5365def4c47SEmmanuel Vadot            };
5375def4c47SEmmanuel Vadot        };
5385def4c47SEmmanuel Vadot    };
5395def4c47SEmmanuel Vadot
5405def4c47SEmmanuel Vadot    /* assume audio-graph */
5415def4c47SEmmanuel Vadot    codec {
5425def4c47SEmmanuel Vadot        port {
5435def4c47SEmmanuel Vadot            codec_endpoint: endpoint {
5445def4c47SEmmanuel Vadot                remote-endpoint = <&rsnd_endpoint>;
5455def4c47SEmmanuel Vadot            };
5465def4c47SEmmanuel Vadot        };
5475def4c47SEmmanuel Vadot    };
548