12d8fc973SKuninori Morimoto# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22d8fc973SKuninori Morimoto%YAML 1.2
32d8fc973SKuninori Morimoto---
42d8fc973SKuninori Morimoto$id: http://devicetree.org/schemas/sound/renesas,rsnd.yaml#
52d8fc973SKuninori Morimoto$schema: http://devicetree.org/meta-schemas/core.yaml#
62d8fc973SKuninori Morimoto
7dd3cb467SAndrew Lunntitle: Renesas R-Car Sound Driver
82d8fc973SKuninori Morimoto
92d8fc973SKuninori Morimotomaintainers:
102d8fc973SKuninori Morimoto  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
112d8fc973SKuninori Morimoto
122d8fc973SKuninori Morimotoproperties:
132d8fc973SKuninori Morimoto
142d8fc973SKuninori Morimoto  compatible:
152d8fc973SKuninori Morimoto    oneOf:
162d8fc973SKuninori Morimoto      # for Gen1 SoC
172d8fc973SKuninori Morimoto      - items:
182d8fc973SKuninori Morimoto          - enum:
192d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7778   # R-Car M1A
202d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7779   # R-Car H1
21167b3a2bSKrzysztof Kozlowski          - const: renesas,rcar_sound-gen1
222d8fc973SKuninori Morimoto      # for Gen2 SoC
232d8fc973SKuninori Morimoto      - items:
242d8fc973SKuninori Morimoto          - enum:
252d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7742   # RZ/G1H
262d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7743   # RZ/G1M
272d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7744   # RZ/G1N
282d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7745   # RZ/G1E
292d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77470  # RZ/G1C
302d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7790   # R-Car H2
312d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7791   # R-Car M2-W
322d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7793   # R-Car M2-N
332d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7794   # R-Car E2
34167b3a2bSKrzysztof Kozlowski          - const: renesas,rcar_sound-gen2
352d8fc973SKuninori Morimoto      # for Gen3 SoC
362d8fc973SKuninori Morimoto      - items:
372d8fc973SKuninori Morimoto          - enum:
382d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774a1  # RZ/G2M
392d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774b1  # RZ/G2N
402d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774c0  # RZ/G2E
412d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774e1  # RZ/G2H
422d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7795   # R-Car H3
432d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7796   # R-Car M3-W
448d96ec9bSKuninori Morimoto              - renesas,rcar_sound-r8a77961  # R-Car M3-W+
452d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77965  # R-Car M3-N
462d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77990  # R-Car E3
472d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77995  # R-Car D3
48167b3a2bSKrzysztof Kozlowski          - const: renesas,rcar_sound-gen3
49f76fec60SKuninori Morimoto      # for Gen4 SoC
50f76fec60SKuninori Morimoto      - items:
51f76fec60SKuninori Morimoto          - const: renesas,rcar_sound-r8a779g0  # R-Car V4H
52f76fec60SKuninori Morimoto          - const: renesas,rcar_sound-gen4
532d8fc973SKuninori Morimoto      # for Generic
542d8fc973SKuninori Morimoto      - enum:
552d8fc973SKuninori Morimoto          - renesas,rcar_sound-gen1
562d8fc973SKuninori Morimoto          - renesas,rcar_sound-gen2
572d8fc973SKuninori Morimoto          - renesas,rcar_sound-gen3
582d8fc973SKuninori Morimoto
592d8fc973SKuninori Morimoto  reg:
602d8fc973SKuninori Morimoto    minItems: 1
612d8fc973SKuninori Morimoto    maxItems: 5
622d8fc973SKuninori Morimoto
632d8fc973SKuninori Morimoto  reg-names:
642d8fc973SKuninori Morimoto    minItems: 1
652d8fc973SKuninori Morimoto    maxItems: 5
662d8fc973SKuninori Morimoto
672d8fc973SKuninori Morimoto  "#sound-dai-cells":
682d8fc973SKuninori Morimoto    description: |
692d8fc973SKuninori Morimoto      it must be 0 if your system is using single DAI
702d8fc973SKuninori Morimoto      it must be 1 if your system is using multi  DAIs
7160cc61a6SKuninori Morimoto      This is used on simple-audio-card
722d8fc973SKuninori Morimoto    enum: [0, 1]
732d8fc973SKuninori Morimoto
742d8fc973SKuninori Morimoto  "#clock-cells":
752d8fc973SKuninori Morimoto    description: |
762d8fc973SKuninori Morimoto      it must be 0 if your system has audio_clkout
772d8fc973SKuninori Morimoto      it must be 1 if your system has audio_clkout0/1/2/3
782d8fc973SKuninori Morimoto    enum: [0, 1]
792d8fc973SKuninori Morimoto
802d8fc973SKuninori Morimoto  clock-frequency:
812d8fc973SKuninori Morimoto    description: for audio_clkout0/1/2/3
822d8fc973SKuninori Morimoto
832d8fc973SKuninori Morimoto  clkout-lr-asynchronous:
842d8fc973SKuninori Morimoto    description: audio_clkoutn is asynchronizes with lr-clock.
852d8fc973SKuninori Morimoto    $ref: /schemas/types.yaml#/definitions/flag
862d8fc973SKuninori Morimoto
872d8fc973SKuninori Morimoto  power-domains: true
882d8fc973SKuninori Morimoto
892d8fc973SKuninori Morimoto  resets:
9017c2d247SKuninori Morimoto    minItems: 1
912d8fc973SKuninori Morimoto    maxItems: 11
922d8fc973SKuninori Morimoto
932d8fc973SKuninori Morimoto  reset-names:
9417c2d247SKuninori Morimoto    minItems: 1
952d8fc973SKuninori Morimoto    maxItems: 11
962d8fc973SKuninori Morimoto
972d8fc973SKuninori Morimoto  clocks:
982d8fc973SKuninori Morimoto    description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
992d8fc973SKuninori Morimoto    minItems: 1
1002d8fc973SKuninori Morimoto    maxItems: 31
1012d8fc973SKuninori Morimoto
1022d8fc973SKuninori Morimoto  clock-names:
1032d8fc973SKuninori Morimoto    description: List of necessary clock names.
1047f8b5b24SKuninori Morimoto    # details are defined below
1052d8fc973SKuninori Morimoto
10617c2d247SKuninori Morimoto  ports:
107fcedf654SKuninori Morimoto    $ref: audio-graph-port.yaml#/definitions/port-base
108fcedf654SKuninori Morimoto    unevaluatedProperties: false
1099a3223b0SRob Herring    patternProperties:
1107621aabdSRob Herring      '^port(@[0-9a-f]+)?$':
111fcedf654SKuninori Morimoto        $ref: audio-graph-port.yaml#/definitions/port-base
112fcedf654SKuninori Morimoto        unevaluatedProperties: false
113fcedf654SKuninori Morimoto        patternProperties:
114fcedf654SKuninori Morimoto          "^endpoint(@[0-9a-f]+)?":
115fcedf654SKuninori Morimoto            $ref: audio-graph-port.yaml#/definitions/endpoint-base
116fcedf654SKuninori Morimoto            properties:
117fcedf654SKuninori Morimoto              playback:
118fcedf654SKuninori Morimoto                $ref: /schemas/types.yaml#/definitions/phandle-array
119fcedf654SKuninori Morimoto              capture:
120fcedf654SKuninori Morimoto                $ref: /schemas/types.yaml#/definitions/phandle-array
12117c2d247SKuninori Morimoto            unevaluatedProperties: false
12217c2d247SKuninori Morimoto
1239c1e0439SRob Herring  port:
124fcedf654SKuninori Morimoto    $ref: audio-graph-port.yaml#/definitions/port-base
125fcedf654SKuninori Morimoto    unevaluatedProperties: false
126fcedf654SKuninori Morimoto    patternProperties:
127fcedf654SKuninori Morimoto      "^endpoint(@[0-9a-f]+)?":
128fcedf654SKuninori Morimoto        $ref: audio-graph-port.yaml#/definitions/endpoint-base
129fcedf654SKuninori Morimoto        properties:
130fcedf654SKuninori Morimoto          playback:
131fcedf654SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
132fcedf654SKuninori Morimoto          capture:
133fcedf654SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
1349c1e0439SRob Herring        unevaluatedProperties: false
1352d8fc973SKuninori Morimoto
136910f42bfSRob Herring  rcar_sound,dvc:
1372d8fc973SKuninori Morimoto    description: DVC subnode.
1382d8fc973SKuninori Morimoto    type: object
1392d8fc973SKuninori Morimoto    patternProperties:
1402d8fc973SKuninori Morimoto      "^dvc-[0-1]$":
1412d8fc973SKuninori Morimoto        type: object
1429e10a1deSRob Herring        additionalProperties: false
1439e10a1deSRob Herring
1442d8fc973SKuninori Morimoto        properties:
1452d8fc973SKuninori Morimoto          dmas:
1462d8fc973SKuninori Morimoto            maxItems: 1
1472d8fc973SKuninori Morimoto          dma-names:
1482d8fc973SKuninori Morimoto            const: "tx"
1492d8fc973SKuninori Morimoto        required:
1502d8fc973SKuninori Morimoto          - dmas
1512d8fc973SKuninori Morimoto          - dma-names
1522d8fc973SKuninori Morimoto    additionalProperties: false
1532d8fc973SKuninori Morimoto
154910f42bfSRob Herring  rcar_sound,mix:
1552d8fc973SKuninori Morimoto    description: MIX subnode.
1562d8fc973SKuninori Morimoto    type: object
1572d8fc973SKuninori Morimoto    patternProperties:
1582d8fc973SKuninori Morimoto      "^mix-[0-1]$":
1592d8fc973SKuninori Morimoto        type: object
1609e10a1deSRob Herring        additionalProperties: false
1612d8fc973SKuninori Morimoto    additionalProperties: false
1622d8fc973SKuninori Morimoto
163910f42bfSRob Herring  rcar_sound,ctu:
1642d8fc973SKuninori Morimoto    description: CTU subnode.
1652d8fc973SKuninori Morimoto    type: object
1662d8fc973SKuninori Morimoto    patternProperties:
1672d8fc973SKuninori Morimoto      "^ctu-[0-7]$":
1682d8fc973SKuninori Morimoto        type: object
1699e10a1deSRob Herring        additionalProperties: false
1702d8fc973SKuninori Morimoto    additionalProperties: false
1712d8fc973SKuninori Morimoto
172910f42bfSRob Herring  rcar_sound,src:
1732d8fc973SKuninori Morimoto    description: SRC subnode.
1742d8fc973SKuninori Morimoto    type: object
1752d8fc973SKuninori Morimoto    patternProperties:
1762d8fc973SKuninori Morimoto      "^src-[0-9]$":
1772d8fc973SKuninori Morimoto        type: object
1789e10a1deSRob Herring        additionalProperties: false
1799e10a1deSRob Herring
1802d8fc973SKuninori Morimoto        properties:
1812d8fc973SKuninori Morimoto          interrupts:
1822d8fc973SKuninori Morimoto            maxItems: 1
1832d8fc973SKuninori Morimoto          dmas:
1842d8fc973SKuninori Morimoto            maxItems: 2
1852d8fc973SKuninori Morimoto          dma-names:
1862d8fc973SKuninori Morimoto            allOf:
1872d8fc973SKuninori Morimoto              - items:
1882d8fc973SKuninori Morimoto                  enum:
1892d8fc973SKuninori Morimoto                    - tx
1902d8fc973SKuninori Morimoto                    - rx
1912d8fc973SKuninori Morimoto    additionalProperties: false
1922d8fc973SKuninori Morimoto
193910f42bfSRob Herring  rcar_sound,ssiu:
1942d8fc973SKuninori Morimoto    description: SSIU subnode.
1952d8fc973SKuninori Morimoto    type: object
1962d8fc973SKuninori Morimoto    patternProperties:
1972d8fc973SKuninori Morimoto      "^ssiu-[0-9]+$":
1982d8fc973SKuninori Morimoto        type: object
1999e10a1deSRob Herring        additionalProperties: false
2009e10a1deSRob Herring
2012d8fc973SKuninori Morimoto        properties:
2022d8fc973SKuninori Morimoto          dmas:
2032d8fc973SKuninori Morimoto            maxItems: 2
2042d8fc973SKuninori Morimoto          dma-names:
2052d8fc973SKuninori Morimoto            allOf:
2062d8fc973SKuninori Morimoto              - items:
2072d8fc973SKuninori Morimoto                  enum:
2082d8fc973SKuninori Morimoto                    - tx
2092d8fc973SKuninori Morimoto                    - rx
2102d8fc973SKuninori Morimoto        required:
2112d8fc973SKuninori Morimoto          - dmas
2122d8fc973SKuninori Morimoto          - dma-names
2132d8fc973SKuninori Morimoto    additionalProperties: false
2142d8fc973SKuninori Morimoto
215910f42bfSRob Herring  rcar_sound,ssi:
2162d8fc973SKuninori Morimoto    description: SSI subnode.
2172d8fc973SKuninori Morimoto    type: object
2182d8fc973SKuninori Morimoto    patternProperties:
2192d8fc973SKuninori Morimoto      "^ssi-[0-9]$":
2202d8fc973SKuninori Morimoto        type: object
2219e10a1deSRob Herring        additionalProperties: false
2229e10a1deSRob Herring
2232d8fc973SKuninori Morimoto        properties:
2242d8fc973SKuninori Morimoto          interrupts:
2252d8fc973SKuninori Morimoto            maxItems: 1
2262d8fc973SKuninori Morimoto          dmas:
2272d8fc973SKuninori Morimoto            minItems: 2
2282d8fc973SKuninori Morimoto            maxItems: 4
2292d8fc973SKuninori Morimoto          dma-names:
2302d8fc973SKuninori Morimoto            allOf:
2312d8fc973SKuninori Morimoto              - items:
2322d8fc973SKuninori Morimoto                  enum:
2332d8fc973SKuninori Morimoto                    - tx
2342d8fc973SKuninori Morimoto                    - rx
2352d8fc973SKuninori Morimoto                    - txu # if no ssiu node
2362d8fc973SKuninori Morimoto                    - rxu # if no ssiu node
2372d8fc973SKuninori Morimoto
2382d8fc973SKuninori Morimoto          shared-pin:
2392d8fc973SKuninori Morimoto            description: shared clock pin
2402d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
2412d8fc973SKuninori Morimoto          pio-transfer:
2422d8fc973SKuninori Morimoto            description: PIO transfer mode
2432d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
2442d8fc973SKuninori Morimoto          no-busif:
2452d8fc973SKuninori Morimoto            description: BUSIF is not used when [mem -> SSI] via DMA case
2462d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
2472d8fc973SKuninori Morimoto        required:
2482d8fc973SKuninori Morimoto          - interrupts
2492d8fc973SKuninori Morimoto    additionalProperties: false
2502d8fc973SKuninori Morimoto
2512d8fc973SKuninori Morimoto  # For DAI base
252910f42bfSRob Herring  rcar_sound,dai:
2532d8fc973SKuninori Morimoto    description: DAI subnode.
2542d8fc973SKuninori Morimoto    type: object
2552d8fc973SKuninori Morimoto    patternProperties:
2562d8fc973SKuninori Morimoto      "^dai([0-9]+)?$":
2572d8fc973SKuninori Morimoto        type: object
2589e10a1deSRob Herring        additionalProperties: false
2599e10a1deSRob Herring
2602d8fc973SKuninori Morimoto        properties:
2612d8fc973SKuninori Morimoto          playback:
2622d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
2632d8fc973SKuninori Morimoto          capture:
2642d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
2652d8fc973SKuninori Morimoto        anyOf:
2662d8fc973SKuninori Morimoto          - required:
2672d8fc973SKuninori Morimoto              - playback
2682d8fc973SKuninori Morimoto          - required:
2692d8fc973SKuninori Morimoto              - capture
2702d8fc973SKuninori Morimoto    additionalProperties: false
2712d8fc973SKuninori Morimoto
2722d8fc973SKuninori Morimotorequired:
2732d8fc973SKuninori Morimoto  - compatible
2742d8fc973SKuninori Morimoto  - reg
2752d8fc973SKuninori Morimoto  - reg-names
2762d8fc973SKuninori Morimoto  - clocks
2772d8fc973SKuninori Morimoto  - clock-names
2782d8fc973SKuninori Morimoto
2792d8fc973SKuninori MorimotoallOf:
28058ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
2817f8b5b24SKuninori Morimoto
2827f8b5b24SKuninori Morimoto  #--------------------
2837f8b5b24SKuninori Morimoto  # reg/reg-names
2847f8b5b24SKuninori Morimoto  #--------------------
2857f8b5b24SKuninori Morimoto  # for Gen1
2862d8fc973SKuninori Morimoto  - if:
2872d8fc973SKuninori Morimoto      properties:
2882d8fc973SKuninori Morimoto        compatible:
2892d8fc973SKuninori Morimoto          contains:
2902d8fc973SKuninori Morimoto            const: renesas,rcar_sound-gen1
2912d8fc973SKuninori Morimoto    then:
2922d8fc973SKuninori Morimoto      properties:
2932d8fc973SKuninori Morimoto        reg:
2942d8fc973SKuninori Morimoto          maxItems: 3
2952d8fc973SKuninori Morimoto        reg-names:
2962d8fc973SKuninori Morimoto          items:
2972d8fc973SKuninori Morimoto            enum:
2982d8fc973SKuninori Morimoto              - scu
2992d8fc973SKuninori Morimoto              - ssi
3002d8fc973SKuninori Morimoto              - adg
3017f8b5b24SKuninori Morimoto  # for Gen2/Gen3
3027f8b5b24SKuninori Morimoto  - if:
3037f8b5b24SKuninori Morimoto      properties:
3047f8b5b24SKuninori Morimoto        compatible:
3057f8b5b24SKuninori Morimoto          contains:
3067f8b5b24SKuninori Morimoto            enum:
3077f8b5b24SKuninori Morimoto              - renesas,rcar_sound-gen2
3087f8b5b24SKuninori Morimoto              - renesas,rcar_sound-gen3
3097f8b5b24SKuninori Morimoto    then:
3102d8fc973SKuninori Morimoto      properties:
3112d8fc973SKuninori Morimoto        reg:
31255194032SKuninori Morimoto          minItems: 5
3132d8fc973SKuninori Morimoto        reg-names:
3142d8fc973SKuninori Morimoto          items:
3152d8fc973SKuninori Morimoto            enum:
3162d8fc973SKuninori Morimoto              - scu
3172d8fc973SKuninori Morimoto              - adg
3182d8fc973SKuninori Morimoto              - ssiu
3192d8fc973SKuninori Morimoto              - ssi
3202d8fc973SKuninori Morimoto              - audmapp
3217f8b5b24SKuninori Morimoto  # for Gen4
3227f8b5b24SKuninori Morimoto  - if:
3237f8b5b24SKuninori Morimoto      properties:
3247f8b5b24SKuninori Morimoto        compatible:
3257f8b5b24SKuninori Morimoto          contains:
3267f8b5b24SKuninori Morimoto            const: renesas,rcar_sound-gen4
3277f8b5b24SKuninori Morimoto    then:
3287f8b5b24SKuninori Morimoto      properties:
3297f8b5b24SKuninori Morimoto        reg:
3307f8b5b24SKuninori Morimoto          maxItems: 4
3317f8b5b24SKuninori Morimoto        reg-names:
3327f8b5b24SKuninori Morimoto          items:
3337f8b5b24SKuninori Morimoto            enum:
3347f8b5b24SKuninori Morimoto              - adg
3357f8b5b24SKuninori Morimoto              - ssiu
3367f8b5b24SKuninori Morimoto              - ssi
3377f8b5b24SKuninori Morimoto              - sdmc
3387f8b5b24SKuninori Morimoto
3397f8b5b24SKuninori Morimoto  #--------------------
3407f8b5b24SKuninori Morimoto  # clock-names
3417f8b5b24SKuninori Morimoto  #--------------------
3427f8b5b24SKuninori Morimoto  - if:
3437f8b5b24SKuninori Morimoto      properties:
3447f8b5b24SKuninori Morimoto        compatible:
3457f8b5b24SKuninori Morimoto          contains:
3467f8b5b24SKuninori Morimoto            const: renesas,rcar_sound-gen4
3477f8b5b24SKuninori Morimoto    then:
3487f8b5b24SKuninori Morimoto      properties:
3497f8b5b24SKuninori Morimoto        clock-names:
3507f8b5b24SKuninori Morimoto          maxItems: 3
3517f8b5b24SKuninori Morimoto          items:
3527f8b5b24SKuninori Morimoto            enum:
3537f8b5b24SKuninori Morimoto              - ssi.0
3547f8b5b24SKuninori Morimoto              - ssiu.0
3557f8b5b24SKuninori Morimoto              - clkin
3567f8b5b24SKuninori Morimoto    else:
3577f8b5b24SKuninori Morimoto      properties:
3587f8b5b24SKuninori Morimoto        clock-names:
3597f8b5b24SKuninori Morimoto          minItems: 1
3607f8b5b24SKuninori Morimoto          maxItems: 31
3617f8b5b24SKuninori Morimoto          items:
3627f8b5b24SKuninori Morimoto            oneOf:
3637f8b5b24SKuninori Morimoto              - const: ssi-all
3647f8b5b24SKuninori Morimoto              - pattern: '^ssi\.[0-9]$'
3657f8b5b24SKuninori Morimoto              - pattern: '^src\.[0-9]$'
3667f8b5b24SKuninori Morimoto              - pattern: '^mix\.[0-1]$'
3677f8b5b24SKuninori Morimoto              - pattern: '^ctu\.[0-1]$'
3687f8b5b24SKuninori Morimoto              - pattern: '^dvc\.[0-1]$'
3697f8b5b24SKuninori Morimoto              - pattern: '^clk_(a|b|c|i)$'
3702d8fc973SKuninori Morimoto
37158ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false
3722d8fc973SKuninori Morimoto
3732d8fc973SKuninori Morimotoexamples:
3742d8fc973SKuninori Morimoto  - |
375*ff750f8eSGeert Uytterhoeven    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
376*ff750f8eSGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
377*ff750f8eSGeert Uytterhoeven    #include <dt-bindings/power/r8a7790-sysc.h>
3782d8fc973SKuninori Morimoto    rcar_sound: sound@ec500000 {
3792d8fc973SKuninori Morimoto        #sound-dai-cells = <1>;
3802d8fc973SKuninori Morimoto        compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
3812d8fc973SKuninori Morimoto        reg = <0xec500000 0x1000>, /* SCU  */
3822d8fc973SKuninori Morimoto              <0xec5a0000 0x100>,  /* ADG  */
3832d8fc973SKuninori Morimoto              <0xec540000 0x1000>, /* SSIU */
384*ff750f8eSGeert Uytterhoeven              <0xec541000 0x280>,  /* SSI  */
3852d8fc973SKuninori Morimoto              <0xec740000 0x200>;  /* Audio DMAC peri peri*/
3862d8fc973SKuninori Morimoto        reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
3872d8fc973SKuninori Morimoto
388*ff750f8eSGeert Uytterhoeven        clocks = <&cpg CPG_MOD 1005>,                      /* SSI-ALL    */
389*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, /* SSI9, SSI8 */
390*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, /* SSI7, SSI6 */
391*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, /* SSI5, SSI4 */
392*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, /* SSI3, SSI2 */
393*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, /* SSI1, SSI0 */
394*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, /* SRC9, SRC8 */
395*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, /* SRC7, SRC6 */
396*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, /* SRC5, SRC4 */
397*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, /* SRC3, SRC2 */
398*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, /* SRC1, SRC0 */
399*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* MIX1, MIX0 */
400*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* CTU1, CTU0 */
401*ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, /* DVC0, DVC1 */
4022d8fc973SKuninori Morimoto                 <&audio_clk_a>, <&audio_clk_b>,           /* CLKA, CLKB */
4032d8fc973SKuninori Morimoto                 <&audio_clk_c>, <&audio_clk_i>;           /* CLKC, CLKI */
4042d8fc973SKuninori Morimoto
4052d8fc973SKuninori Morimoto        clock-names = "ssi-all",
4062d8fc973SKuninori Morimoto                      "ssi.9", "ssi.8",
4072d8fc973SKuninori Morimoto                      "ssi.7", "ssi.6",
4082d8fc973SKuninori Morimoto                      "ssi.5", "ssi.4",
4092d8fc973SKuninori Morimoto                      "ssi.3", "ssi.2",
4102d8fc973SKuninori Morimoto                      "ssi.1", "ssi.0",
4112d8fc973SKuninori Morimoto                      "src.9", "src.8",
4122d8fc973SKuninori Morimoto                      "src.7", "src.6",
4132d8fc973SKuninori Morimoto                      "src.5", "src.4",
4142d8fc973SKuninori Morimoto                      "src.3", "src.2",
4152d8fc973SKuninori Morimoto                      "src.1", "src.0",
4162d8fc973SKuninori Morimoto                      "mix.1", "mix.0",
4172d8fc973SKuninori Morimoto                      "ctu.1", "ctu.0",
4182d8fc973SKuninori Morimoto                      "dvc.0", "dvc.1",
4192d8fc973SKuninori Morimoto                      "clk_a", "clk_b",
4202d8fc973SKuninori Morimoto                      "clk_c", "clk_i";
4212d8fc973SKuninori Morimoto
422*ff750f8eSGeert Uytterhoeven        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
423*ff750f8eSGeert Uytterhoeven
424*ff750f8eSGeert Uytterhoeven        resets = <&cpg 1005>,
425*ff750f8eSGeert Uytterhoeven                 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
426*ff750f8eSGeert Uytterhoeven                 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
427*ff750f8eSGeert Uytterhoeven                 <&cpg 1014>, <&cpg 1015>;
428*ff750f8eSGeert Uytterhoeven        reset-names = "ssi-all",
429*ff750f8eSGeert Uytterhoeven                      "ssi.9", "ssi.8", "ssi.7", "ssi.6",
430*ff750f8eSGeert Uytterhoeven                      "ssi.5", "ssi.4", "ssi.3", "ssi.2",
431*ff750f8eSGeert Uytterhoeven                      "ssi.1", "ssi.0";
432*ff750f8eSGeert Uytterhoeven
4332d8fc973SKuninori Morimoto        rcar_sound,dvc {
4342d8fc973SKuninori Morimoto               dvc0: dvc-0 {
4352d8fc973SKuninori Morimoto                    dmas = <&audma0 0xbc>;
4362d8fc973SKuninori Morimoto                    dma-names = "tx";
4372d8fc973SKuninori Morimoto               };
4382d8fc973SKuninori Morimoto               dvc1: dvc-1 {
4392d8fc973SKuninori Morimoto                    dmas = <&audma0 0xbe>;
4402d8fc973SKuninori Morimoto                    dma-names = "tx";
4412d8fc973SKuninori Morimoto               };
4422d8fc973SKuninori Morimoto        };
4432d8fc973SKuninori Morimoto
4442d8fc973SKuninori Morimoto        rcar_sound,mix {
4452d8fc973SKuninori Morimoto            mix0: mix-0 { };
4462d8fc973SKuninori Morimoto            mix1: mix-1 { };
4472d8fc973SKuninori Morimoto        };
4482d8fc973SKuninori Morimoto
4492d8fc973SKuninori Morimoto        rcar_sound,ctu {
4502d8fc973SKuninori Morimoto            ctu00: ctu-0 { };
4512d8fc973SKuninori Morimoto            ctu01: ctu-1 { };
4522d8fc973SKuninori Morimoto            ctu02: ctu-2 { };
4532d8fc973SKuninori Morimoto            ctu03: ctu-3 { };
4542d8fc973SKuninori Morimoto            ctu10: ctu-4 { };
4552d8fc973SKuninori Morimoto            ctu11: ctu-5 { };
4562d8fc973SKuninori Morimoto            ctu12: ctu-6 { };
4572d8fc973SKuninori Morimoto            ctu13: ctu-7 { };
4582d8fc973SKuninori Morimoto        };
4592d8fc973SKuninori Morimoto
4602d8fc973SKuninori Morimoto        rcar_sound,src {
4612d8fc973SKuninori Morimoto            src0: src-0 {
4622d8fc973SKuninori Morimoto                status = "disabled";
4632d8fc973SKuninori Morimoto            };
4642d8fc973SKuninori Morimoto            src1: src-1 {
465*ff750f8eSGeert Uytterhoeven                interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
4662d8fc973SKuninori Morimoto                dmas = <&audma0 0x87>, <&audma1 0x9c>;
4672d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4682d8fc973SKuninori Morimoto            };
4692d8fc973SKuninori Morimoto            /* skip after src-2 */
4702d8fc973SKuninori Morimoto        };
4712d8fc973SKuninori Morimoto
4722d8fc973SKuninori Morimoto        rcar_sound,ssiu {
4732d8fc973SKuninori Morimoto            ssiu00: ssiu-0 {
4742d8fc973SKuninori Morimoto                dmas = <&audma0 0x15>, <&audma1 0x16>;
4752d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4762d8fc973SKuninori Morimoto            };
4772d8fc973SKuninori Morimoto            ssiu01: ssiu-1 {
4782d8fc973SKuninori Morimoto                dmas = <&audma0 0x35>, <&audma1 0x36>;
4792d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4802d8fc973SKuninori Morimoto            };
4812d8fc973SKuninori Morimoto            /* skip after ssiu-2 */
4822d8fc973SKuninori Morimoto        };
4832d8fc973SKuninori Morimoto
4842d8fc973SKuninori Morimoto        rcar_sound,ssi {
4852d8fc973SKuninori Morimoto            ssi0: ssi-0 {
486*ff750f8eSGeert Uytterhoeven                interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
4872d8fc973SKuninori Morimoto                dmas = <&audma0 0x01>, <&audma1 0x02>;
4882d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4892d8fc973SKuninori Morimoto            };
4902d8fc973SKuninori Morimoto            ssi1: ssi-1 {
491*ff750f8eSGeert Uytterhoeven                interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
4922d8fc973SKuninori Morimoto                dmas = <&audma0 0x03>, <&audma1 0x04>;
4932d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4942d8fc973SKuninori Morimoto            };
4952d8fc973SKuninori Morimoto            /* skip other ssi-2 */
4962d8fc973SKuninori Morimoto        };
4972d8fc973SKuninori Morimoto
4982d8fc973SKuninori Morimoto        /* DAI base */
4992d8fc973SKuninori Morimoto        rcar_sound,dai {
5002d8fc973SKuninori Morimoto            dai0 {
501f08c74a3SGeert Uytterhoeven                playback = <&ssi5>, <&src5>;
5022d8fc973SKuninori Morimoto                capture  = <&ssi6>;
5032d8fc973SKuninori Morimoto            };
5042d8fc973SKuninori Morimoto            dai1 {
5052d8fc973SKuninori Morimoto                playback = <&ssi3>;
5062d8fc973SKuninori Morimoto            };
5072d8fc973SKuninori Morimoto            dai2 {
5082d8fc973SKuninori Morimoto                capture  = <&ssi4>;
5092d8fc973SKuninori Morimoto            };
5102d8fc973SKuninori Morimoto            dai3 {
5112d8fc973SKuninori Morimoto                playback = <&ssi7>;
5122d8fc973SKuninori Morimoto            };
5132d8fc973SKuninori Morimoto            dai4 {
5142d8fc973SKuninori Morimoto                capture  = <&ssi8>;
5152d8fc973SKuninori Morimoto            };
5162d8fc973SKuninori Morimoto        };
5172d8fc973SKuninori Morimoto
5182d8fc973SKuninori Morimoto        /* assume audio-graph */
5192d8fc973SKuninori Morimoto        port {
5202d8fc973SKuninori Morimoto            rsnd_endpoint: endpoint {
5212d8fc973SKuninori Morimoto                remote-endpoint = <&codec_endpoint>;
5222d8fc973SKuninori Morimoto
5232d8fc973SKuninori Morimoto                dai-format = "left_j";
5242d8fc973SKuninori Morimoto                bitclock-master = <&rsnd_endpoint0>;
5252d8fc973SKuninori Morimoto                frame-master = <&rsnd_endpoint0>;
5262d8fc973SKuninori Morimoto
527f08c74a3SGeert Uytterhoeven                playback = <&ssi0>, <&src0>, <&dvc0>;
528f08c74a3SGeert Uytterhoeven                capture  = <&ssi1>, <&src1>, <&dvc1>;
5292d8fc973SKuninori Morimoto            };
5302d8fc973SKuninori Morimoto        };
5312d8fc973SKuninori Morimoto    };
5322d8fc973SKuninori Morimoto
5332d8fc973SKuninori Morimoto    /* assume audio-graph */
5342d8fc973SKuninori Morimoto    codec {
5352d8fc973SKuninori Morimoto        port {
5362d8fc973SKuninori Morimoto            codec_endpoint: endpoint {
5372d8fc973SKuninori Morimoto                remote-endpoint = <&rsnd_endpoint>;
5382d8fc973SKuninori Morimoto            };
5392d8fc973SKuninori Morimoto        };
5402d8fc973SKuninori Morimoto    };
541