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
12289f6e3bSKuninori Morimotodefinitions:
13289f6e3bSKuninori Morimoto  port-def:
14289f6e3bSKuninori Morimoto    $ref: audio-graph-port.yaml#/definitions/port-base
15289f6e3bSKuninori Morimoto    unevaluatedProperties: false
16289f6e3bSKuninori Morimoto    patternProperties:
17289f6e3bSKuninori Morimoto      "^endpoint(@[0-9a-f]+)?":
18289f6e3bSKuninori Morimoto        $ref: audio-graph-port.yaml#/definitions/endpoint-base
19289f6e3bSKuninori Morimoto        properties:
20289f6e3bSKuninori Morimoto          playback:
21289f6e3bSKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
22289f6e3bSKuninori Morimoto          capture:
23289f6e3bSKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
24289f6e3bSKuninori Morimoto        unevaluatedProperties: false
25289f6e3bSKuninori Morimoto
262d8fc973SKuninori Morimotoproperties:
272d8fc973SKuninori Morimoto
282d8fc973SKuninori Morimoto  compatible:
292d8fc973SKuninori Morimoto    oneOf:
302d8fc973SKuninori Morimoto      # for Gen1 SoC
312d8fc973SKuninori Morimoto      - items:
322d8fc973SKuninori Morimoto          - enum:
332d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7778   # R-Car M1A
342d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7779   # R-Car H1
35167b3a2bSKrzysztof Kozlowski          - const: renesas,rcar_sound-gen1
362d8fc973SKuninori Morimoto      # for Gen2 SoC
372d8fc973SKuninori Morimoto      - items:
382d8fc973SKuninori Morimoto          - enum:
392d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7742   # RZ/G1H
402d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7743   # RZ/G1M
412d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7744   # RZ/G1N
422d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7745   # RZ/G1E
432d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77470  # RZ/G1C
442d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7790   # R-Car H2
452d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7791   # R-Car M2-W
462d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7793   # R-Car M2-N
472d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7794   # R-Car E2
48167b3a2bSKrzysztof Kozlowski          - const: renesas,rcar_sound-gen2
492d8fc973SKuninori Morimoto      # for Gen3 SoC
502d8fc973SKuninori Morimoto      - items:
512d8fc973SKuninori Morimoto          - enum:
522d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774a1  # RZ/G2M
532d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774b1  # RZ/G2N
542d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774c0  # RZ/G2E
552d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a774e1  # RZ/G2H
562d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7795   # R-Car H3
572d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a7796   # R-Car M3-W
588d96ec9bSKuninori Morimoto              - renesas,rcar_sound-r8a77961  # R-Car M3-W+
592d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77965  # R-Car M3-N
602d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77990  # R-Car E3
612d8fc973SKuninori Morimoto              - renesas,rcar_sound-r8a77995  # R-Car D3
62167b3a2bSKrzysztof Kozlowski          - const: renesas,rcar_sound-gen3
63f76fec60SKuninori Morimoto      # for Gen4 SoC
64f76fec60SKuninori Morimoto      - items:
65f76fec60SKuninori Morimoto          - const: renesas,rcar_sound-r8a779g0  # R-Car V4H
66f76fec60SKuninori Morimoto          - const: renesas,rcar_sound-gen4
672d8fc973SKuninori Morimoto      # for Generic
682d8fc973SKuninori Morimoto      - enum:
692d8fc973SKuninori Morimoto          - renesas,rcar_sound-gen1
702d8fc973SKuninori Morimoto          - renesas,rcar_sound-gen2
712d8fc973SKuninori Morimoto          - renesas,rcar_sound-gen3
722d8fc973SKuninori Morimoto
732d8fc973SKuninori Morimoto  reg:
742d8fc973SKuninori Morimoto    minItems: 1
752d8fc973SKuninori Morimoto    maxItems: 5
762d8fc973SKuninori Morimoto
772d8fc973SKuninori Morimoto  reg-names:
782d8fc973SKuninori Morimoto    minItems: 1
792d8fc973SKuninori Morimoto    maxItems: 5
802d8fc973SKuninori Morimoto
812d8fc973SKuninori Morimoto  "#sound-dai-cells":
822d8fc973SKuninori Morimoto    description: |
832d8fc973SKuninori Morimoto      it must be 0 if your system is using single DAI
842d8fc973SKuninori Morimoto      it must be 1 if your system is using multi  DAIs
8560cc61a6SKuninori Morimoto      This is used on simple-audio-card
862d8fc973SKuninori Morimoto    enum: [0, 1]
872d8fc973SKuninori Morimoto
882d8fc973SKuninori Morimoto  "#clock-cells":
892d8fc973SKuninori Morimoto    description: |
902d8fc973SKuninori Morimoto      it must be 0 if your system has audio_clkout
912d8fc973SKuninori Morimoto      it must be 1 if your system has audio_clkout0/1/2/3
922d8fc973SKuninori Morimoto    enum: [0, 1]
932d8fc973SKuninori Morimoto
94*16382904SKuninori Morimoto  "#address-cells":
95*16382904SKuninori Morimoto    const: 1
96*16382904SKuninori Morimoto
97*16382904SKuninori Morimoto  "#size-cells":
98*16382904SKuninori Morimoto    const: 0
99*16382904SKuninori Morimoto
1002d8fc973SKuninori Morimoto  clock-frequency:
1012d8fc973SKuninori Morimoto    description: for audio_clkout0/1/2/3
1022d8fc973SKuninori Morimoto
1032d8fc973SKuninori Morimoto  clkout-lr-asynchronous:
1042d8fc973SKuninori Morimoto    description: audio_clkoutn is asynchronizes with lr-clock.
1052d8fc973SKuninori Morimoto    $ref: /schemas/types.yaml#/definitions/flag
1062d8fc973SKuninori Morimoto
1072d8fc973SKuninori Morimoto  power-domains: true
1082d8fc973SKuninori Morimoto
1092d8fc973SKuninori Morimoto  resets:
11017c2d247SKuninori Morimoto    minItems: 1
1112d8fc973SKuninori Morimoto    maxItems: 11
1122d8fc973SKuninori Morimoto
1132d8fc973SKuninori Morimoto  reset-names:
11417c2d247SKuninori Morimoto    minItems: 1
1152d8fc973SKuninori Morimoto    maxItems: 11
1162d8fc973SKuninori Morimoto
1172d8fc973SKuninori Morimoto  clocks:
1182d8fc973SKuninori Morimoto    description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
1192d8fc973SKuninori Morimoto    minItems: 1
1202d8fc973SKuninori Morimoto    maxItems: 31
1212d8fc973SKuninori Morimoto
1222d8fc973SKuninori Morimoto  clock-names:
1232d8fc973SKuninori Morimoto    description: List of necessary clock names.
1247f8b5b24SKuninori Morimoto    # details are defined below
1252d8fc973SKuninori Morimoto
126*16382904SKuninori Morimoto  # ports is below
1279c1e0439SRob Herring  port:
128289f6e3bSKuninori Morimoto    $ref: "#/definitions/port-def"
1292d8fc973SKuninori Morimoto
130910f42bfSRob Herring  rcar_sound,dvc:
1312d8fc973SKuninori Morimoto    description: DVC subnode.
1322d8fc973SKuninori Morimoto    type: object
1332d8fc973SKuninori Morimoto    patternProperties:
1342d8fc973SKuninori Morimoto      "^dvc-[0-1]$":
1352d8fc973SKuninori Morimoto        type: object
1369e10a1deSRob Herring        additionalProperties: false
1379e10a1deSRob Herring
1382d8fc973SKuninori Morimoto        properties:
1392d8fc973SKuninori Morimoto          dmas:
1402d8fc973SKuninori Morimoto            maxItems: 1
1412d8fc973SKuninori Morimoto          dma-names:
142d9e909e2SRob Herring            const: tx
1432d8fc973SKuninori Morimoto        required:
1442d8fc973SKuninori Morimoto          - dmas
1452d8fc973SKuninori Morimoto          - dma-names
1462d8fc973SKuninori Morimoto    additionalProperties: false
1472d8fc973SKuninori Morimoto
148910f42bfSRob Herring  rcar_sound,mix:
1492d8fc973SKuninori Morimoto    description: MIX subnode.
1502d8fc973SKuninori Morimoto    type: object
1512d8fc973SKuninori Morimoto    patternProperties:
1522d8fc973SKuninori Morimoto      "^mix-[0-1]$":
1532d8fc973SKuninori Morimoto        type: object
1549e10a1deSRob Herring        additionalProperties: false
1552d8fc973SKuninori Morimoto    additionalProperties: false
1562d8fc973SKuninori Morimoto
157910f42bfSRob Herring  rcar_sound,ctu:
1582d8fc973SKuninori Morimoto    description: CTU subnode.
1592d8fc973SKuninori Morimoto    type: object
1602d8fc973SKuninori Morimoto    patternProperties:
1612d8fc973SKuninori Morimoto      "^ctu-[0-7]$":
1622d8fc973SKuninori Morimoto        type: object
1639e10a1deSRob Herring        additionalProperties: false
1642d8fc973SKuninori Morimoto    additionalProperties: false
1652d8fc973SKuninori Morimoto
166910f42bfSRob Herring  rcar_sound,src:
1672d8fc973SKuninori Morimoto    description: SRC subnode.
1682d8fc973SKuninori Morimoto    type: object
1692d8fc973SKuninori Morimoto    patternProperties:
1702d8fc973SKuninori Morimoto      "^src-[0-9]$":
1712d8fc973SKuninori Morimoto        type: object
1729e10a1deSRob Herring        additionalProperties: false
1739e10a1deSRob Herring
1742d8fc973SKuninori Morimoto        properties:
1752d8fc973SKuninori Morimoto          interrupts:
1762d8fc973SKuninori Morimoto            maxItems: 1
1772d8fc973SKuninori Morimoto          dmas:
1782d8fc973SKuninori Morimoto            maxItems: 2
1792d8fc973SKuninori Morimoto          dma-names:
1802d8fc973SKuninori Morimoto            allOf:
1812d8fc973SKuninori Morimoto              - items:
1822d8fc973SKuninori Morimoto                  enum:
1832d8fc973SKuninori Morimoto                    - tx
1842d8fc973SKuninori Morimoto                    - rx
1852d8fc973SKuninori Morimoto    additionalProperties: false
1862d8fc973SKuninori Morimoto
187910f42bfSRob Herring  rcar_sound,ssiu:
1882d8fc973SKuninori Morimoto    description: SSIU subnode.
1892d8fc973SKuninori Morimoto    type: object
1902d8fc973SKuninori Morimoto    patternProperties:
1912d8fc973SKuninori Morimoto      "^ssiu-[0-9]+$":
1922d8fc973SKuninori Morimoto        type: object
1939e10a1deSRob Herring        additionalProperties: false
1949e10a1deSRob Herring
1952d8fc973SKuninori Morimoto        properties:
1962d8fc973SKuninori Morimoto          dmas:
1972d8fc973SKuninori Morimoto            maxItems: 2
1982d8fc973SKuninori Morimoto          dma-names:
1992d8fc973SKuninori Morimoto            allOf:
2002d8fc973SKuninori Morimoto              - items:
2012d8fc973SKuninori Morimoto                  enum:
2022d8fc973SKuninori Morimoto                    - tx
2032d8fc973SKuninori Morimoto                    - rx
2042d8fc973SKuninori Morimoto        required:
2052d8fc973SKuninori Morimoto          - dmas
2062d8fc973SKuninori Morimoto          - dma-names
2072d8fc973SKuninori Morimoto    additionalProperties: false
2082d8fc973SKuninori Morimoto
209910f42bfSRob Herring  rcar_sound,ssi:
2102d8fc973SKuninori Morimoto    description: SSI subnode.
2112d8fc973SKuninori Morimoto    type: object
2122d8fc973SKuninori Morimoto    patternProperties:
2132d8fc973SKuninori Morimoto      "^ssi-[0-9]$":
2142d8fc973SKuninori Morimoto        type: object
2159e10a1deSRob Herring        additionalProperties: false
2169e10a1deSRob Herring
2172d8fc973SKuninori Morimoto        properties:
2182d8fc973SKuninori Morimoto          interrupts:
2192d8fc973SKuninori Morimoto            maxItems: 1
2202d8fc973SKuninori Morimoto          dmas:
2212d8fc973SKuninori Morimoto            minItems: 2
2222d8fc973SKuninori Morimoto            maxItems: 4
2232d8fc973SKuninori Morimoto          dma-names:
2242d8fc973SKuninori Morimoto            allOf:
2252d8fc973SKuninori Morimoto              - items:
2262d8fc973SKuninori Morimoto                  enum:
2272d8fc973SKuninori Morimoto                    - tx
2282d8fc973SKuninori Morimoto                    - rx
2292d8fc973SKuninori Morimoto                    - txu # if no ssiu node
2302d8fc973SKuninori Morimoto                    - rxu # if no ssiu node
2312d8fc973SKuninori Morimoto
2322d8fc973SKuninori Morimoto          shared-pin:
2332d8fc973SKuninori Morimoto            description: shared clock pin
2342d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
2352d8fc973SKuninori Morimoto          pio-transfer:
2362d8fc973SKuninori Morimoto            description: PIO transfer mode
2372d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
2382d8fc973SKuninori Morimoto          no-busif:
2392d8fc973SKuninori Morimoto            description: BUSIF is not used when [mem -> SSI] via DMA case
2402d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/flag
2412d8fc973SKuninori Morimoto        required:
2422d8fc973SKuninori Morimoto          - interrupts
2432d8fc973SKuninori Morimoto    additionalProperties: false
2442d8fc973SKuninori Morimoto
245*16382904SKuninori MorimotopatternProperties:
2462d8fc973SKuninori Morimoto  # For DAI base
247*16382904SKuninori Morimoto  'rcar_sound,dai(@[0-9a-f]+)?$':
2482d8fc973SKuninori Morimoto    description: DAI subnode.
2492d8fc973SKuninori Morimoto    type: object
2502d8fc973SKuninori Morimoto    patternProperties:
2512d8fc973SKuninori Morimoto      "^dai([0-9]+)?$":
2522d8fc973SKuninori Morimoto        type: object
2539e10a1deSRob Herring        additionalProperties: false
2549e10a1deSRob Herring
2552d8fc973SKuninori Morimoto        properties:
2562d8fc973SKuninori Morimoto          playback:
2572d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
2582d8fc973SKuninori Morimoto          capture:
2592d8fc973SKuninori Morimoto            $ref: /schemas/types.yaml#/definitions/phandle-array
2602d8fc973SKuninori Morimoto        anyOf:
2612d8fc973SKuninori Morimoto          - required:
2622d8fc973SKuninori Morimoto              - playback
2632d8fc973SKuninori Morimoto          - required:
2642d8fc973SKuninori Morimoto              - capture
2652d8fc973SKuninori Morimoto    additionalProperties: false
2662d8fc973SKuninori Morimoto
267*16382904SKuninori Morimoto  'ports(@[0-9a-f]+)?$':
268*16382904SKuninori Morimoto    $ref: audio-graph-port.yaml#/definitions/port-base
269*16382904SKuninori Morimoto    unevaluatedProperties: false
270*16382904SKuninori Morimoto    patternProperties:
271*16382904SKuninori Morimoto      '^port(@[0-9a-f]+)?$':
272*16382904SKuninori Morimoto        $ref: "#/definitions/port-def"
273*16382904SKuninori Morimoto
2742d8fc973SKuninori Morimotorequired:
2752d8fc973SKuninori Morimoto  - compatible
2762d8fc973SKuninori Morimoto  - reg
2772d8fc973SKuninori Morimoto  - reg-names
2782d8fc973SKuninori Morimoto  - clocks
2792d8fc973SKuninori Morimoto  - clock-names
2802d8fc973SKuninori Morimoto
2812d8fc973SKuninori MorimotoallOf:
28258ae9a2aSKrzysztof Kozlowski  - $ref: dai-common.yaml#
2837f8b5b24SKuninori Morimoto
2847f8b5b24SKuninori Morimoto  # --------------------
2857f8b5b24SKuninori Morimoto  # reg/reg-names
2867f8b5b24SKuninori Morimoto  # --------------------
2877f8b5b24SKuninori Morimoto  # for Gen1
2882d8fc973SKuninori Morimoto  - if:
2892d8fc973SKuninori Morimoto      properties:
2902d8fc973SKuninori Morimoto        compatible:
2912d8fc973SKuninori Morimoto          contains:
2922d8fc973SKuninori Morimoto            const: renesas,rcar_sound-gen1
2932d8fc973SKuninori Morimoto    then:
2942d8fc973SKuninori Morimoto      properties:
2952d8fc973SKuninori Morimoto        reg:
2962d8fc973SKuninori Morimoto          maxItems: 3
2972d8fc973SKuninori Morimoto        reg-names:
2982d8fc973SKuninori Morimoto          items:
2992d8fc973SKuninori Morimoto            enum:
3002d8fc973SKuninori Morimoto              - scu
3012d8fc973SKuninori Morimoto              - ssi
3022d8fc973SKuninori Morimoto              - adg
3037f8b5b24SKuninori Morimoto  # for Gen2/Gen3
3047f8b5b24SKuninori Morimoto  - if:
3057f8b5b24SKuninori Morimoto      properties:
3067f8b5b24SKuninori Morimoto        compatible:
3077f8b5b24SKuninori Morimoto          contains:
3087f8b5b24SKuninori Morimoto            enum:
3097f8b5b24SKuninori Morimoto              - renesas,rcar_sound-gen2
3107f8b5b24SKuninori Morimoto              - renesas,rcar_sound-gen3
3117f8b5b24SKuninori Morimoto    then:
3122d8fc973SKuninori Morimoto      properties:
3132d8fc973SKuninori Morimoto        reg:
31455194032SKuninori Morimoto          minItems: 5
3152d8fc973SKuninori Morimoto        reg-names:
3162d8fc973SKuninori Morimoto          items:
3172d8fc973SKuninori Morimoto            enum:
3182d8fc973SKuninori Morimoto              - scu
3192d8fc973SKuninori Morimoto              - adg
3202d8fc973SKuninori Morimoto              - ssiu
3212d8fc973SKuninori Morimoto              - ssi
3222d8fc973SKuninori Morimoto              - audmapp
3237f8b5b24SKuninori Morimoto  # for Gen4
3247f8b5b24SKuninori Morimoto  - if:
3257f8b5b24SKuninori Morimoto      properties:
3267f8b5b24SKuninori Morimoto        compatible:
3277f8b5b24SKuninori Morimoto          contains:
3287f8b5b24SKuninori Morimoto            const: renesas,rcar_sound-gen4
3297f8b5b24SKuninori Morimoto    then:
3307f8b5b24SKuninori Morimoto      properties:
3317f8b5b24SKuninori Morimoto        reg:
3327f8b5b24SKuninori Morimoto          maxItems: 4
3337f8b5b24SKuninori Morimoto        reg-names:
3347f8b5b24SKuninori Morimoto          items:
3357f8b5b24SKuninori Morimoto            enum:
3367f8b5b24SKuninori Morimoto              - adg
3377f8b5b24SKuninori Morimoto              - ssiu
3387f8b5b24SKuninori Morimoto              - ssi
3397f8b5b24SKuninori Morimoto              - sdmc
3407f8b5b24SKuninori Morimoto
3417f8b5b24SKuninori Morimoto  # --------------------
3427f8b5b24SKuninori Morimoto  # clock-names
3437f8b5b24SKuninori Morimoto  # --------------------
3447f8b5b24SKuninori Morimoto  - if:
3457f8b5b24SKuninori Morimoto      properties:
3467f8b5b24SKuninori Morimoto        compatible:
3477f8b5b24SKuninori Morimoto          contains:
3487f8b5b24SKuninori Morimoto            const: renesas,rcar_sound-gen4
3497f8b5b24SKuninori Morimoto    then:
3507f8b5b24SKuninori Morimoto      properties:
3517f8b5b24SKuninori Morimoto        clock-names:
3527f8b5b24SKuninori Morimoto          maxItems: 3
3537f8b5b24SKuninori Morimoto          items:
3547f8b5b24SKuninori Morimoto            enum:
3557f8b5b24SKuninori Morimoto              - ssi.0
3567f8b5b24SKuninori Morimoto              - ssiu.0
3577f8b5b24SKuninori Morimoto              - clkin
3587f8b5b24SKuninori Morimoto    else:
3597f8b5b24SKuninori Morimoto      properties:
3607f8b5b24SKuninori Morimoto        clock-names:
3617f8b5b24SKuninori Morimoto          minItems: 1
3627f8b5b24SKuninori Morimoto          maxItems: 31
3637f8b5b24SKuninori Morimoto          items:
3647f8b5b24SKuninori Morimoto            oneOf:
3657f8b5b24SKuninori Morimoto              - const: ssi-all
3667f8b5b24SKuninori Morimoto              - pattern: '^ssi\.[0-9]$'
3677f8b5b24SKuninori Morimoto              - pattern: '^src\.[0-9]$'
3687f8b5b24SKuninori Morimoto              - pattern: '^mix\.[0-1]$'
3697f8b5b24SKuninori Morimoto              - pattern: '^ctu\.[0-1]$'
3707f8b5b24SKuninori Morimoto              - pattern: '^dvc\.[0-1]$'
3717f8b5b24SKuninori Morimoto              - pattern: '^clk_(a|b|c|i)$'
3722d8fc973SKuninori Morimoto
37358ae9a2aSKrzysztof KozlowskiunevaluatedProperties: false
3742d8fc973SKuninori Morimoto
3752d8fc973SKuninori Morimotoexamples:
3762d8fc973SKuninori Morimoto  - |
377ff750f8eSGeert Uytterhoeven    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
378ff750f8eSGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
379ff750f8eSGeert Uytterhoeven    #include <dt-bindings/power/r8a7790-sysc.h>
3802d8fc973SKuninori Morimoto    rcar_sound: sound@ec500000 {
3812d8fc973SKuninori Morimoto        #sound-dai-cells = <1>;
3822d8fc973SKuninori Morimoto        compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
3832d8fc973SKuninori Morimoto        reg = <0xec500000 0x1000>, /* SCU  */
3842d8fc973SKuninori Morimoto              <0xec5a0000 0x100>,  /* ADG  */
3852d8fc973SKuninori Morimoto              <0xec540000 0x1000>, /* SSIU */
386ff750f8eSGeert Uytterhoeven              <0xec541000 0x280>,  /* SSI  */
3872d8fc973SKuninori Morimoto              <0xec740000 0x200>;  /* Audio DMAC peri peri*/
3882d8fc973SKuninori Morimoto        reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
3892d8fc973SKuninori Morimoto
390ff750f8eSGeert Uytterhoeven        clocks = <&cpg CPG_MOD 1005>,                      /* SSI-ALL    */
391ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, /* SSI9, SSI8 */
392ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, /* SSI7, SSI6 */
393ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, /* SSI5, SSI4 */
394ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, /* SSI3, SSI2 */
395ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, /* SSI1, SSI0 */
396ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, /* SRC9, SRC8 */
397ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, /* SRC7, SRC6 */
398ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, /* SRC5, SRC4 */
399ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, /* SRC3, SRC2 */
400ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, /* SRC1, SRC0 */
401ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* MIX1, MIX0 */
402ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* CTU1, CTU0 */
403ff750f8eSGeert Uytterhoeven                 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, /* DVC0, DVC1 */
4042d8fc973SKuninori Morimoto                 <&audio_clk_a>, <&audio_clk_b>,           /* CLKA, CLKB */
4052d8fc973SKuninori Morimoto                 <&audio_clk_c>, <&audio_clk_i>;           /* CLKC, CLKI */
4062d8fc973SKuninori Morimoto
4072d8fc973SKuninori Morimoto        clock-names = "ssi-all",
4082d8fc973SKuninori Morimoto                      "ssi.9", "ssi.8",
4092d8fc973SKuninori Morimoto                      "ssi.7", "ssi.6",
4102d8fc973SKuninori Morimoto                      "ssi.5", "ssi.4",
4112d8fc973SKuninori Morimoto                      "ssi.3", "ssi.2",
4122d8fc973SKuninori Morimoto                      "ssi.1", "ssi.0",
4132d8fc973SKuninori Morimoto                      "src.9", "src.8",
4142d8fc973SKuninori Morimoto                      "src.7", "src.6",
4152d8fc973SKuninori Morimoto                      "src.5", "src.4",
4162d8fc973SKuninori Morimoto                      "src.3", "src.2",
4172d8fc973SKuninori Morimoto                      "src.1", "src.0",
4182d8fc973SKuninori Morimoto                      "mix.1", "mix.0",
4192d8fc973SKuninori Morimoto                      "ctu.1", "ctu.0",
4202d8fc973SKuninori Morimoto                      "dvc.0", "dvc.1",
4212d8fc973SKuninori Morimoto                      "clk_a", "clk_b",
4222d8fc973SKuninori Morimoto                      "clk_c", "clk_i";
4232d8fc973SKuninori Morimoto
424ff750f8eSGeert Uytterhoeven        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
425ff750f8eSGeert Uytterhoeven
426ff750f8eSGeert Uytterhoeven        resets = <&cpg 1005>,
427ff750f8eSGeert Uytterhoeven                 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
428ff750f8eSGeert Uytterhoeven                 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
429ff750f8eSGeert Uytterhoeven                 <&cpg 1014>, <&cpg 1015>;
430ff750f8eSGeert Uytterhoeven        reset-names = "ssi-all",
431ff750f8eSGeert Uytterhoeven                      "ssi.9", "ssi.8", "ssi.7", "ssi.6",
432ff750f8eSGeert Uytterhoeven                      "ssi.5", "ssi.4", "ssi.3", "ssi.2",
433ff750f8eSGeert Uytterhoeven                      "ssi.1", "ssi.0";
434ff750f8eSGeert Uytterhoeven
4352d8fc973SKuninori Morimoto        rcar_sound,dvc {
4362d8fc973SKuninori Morimoto               dvc0: dvc-0 {
4372d8fc973SKuninori Morimoto                    dmas = <&audma0 0xbc>;
4382d8fc973SKuninori Morimoto                    dma-names = "tx";
4392d8fc973SKuninori Morimoto               };
4402d8fc973SKuninori Morimoto               dvc1: dvc-1 {
4412d8fc973SKuninori Morimoto                    dmas = <&audma0 0xbe>;
4422d8fc973SKuninori Morimoto                    dma-names = "tx";
4432d8fc973SKuninori Morimoto               };
4442d8fc973SKuninori Morimoto        };
4452d8fc973SKuninori Morimoto
4462d8fc973SKuninori Morimoto        rcar_sound,mix {
4472d8fc973SKuninori Morimoto            mix0: mix-0 { };
4482d8fc973SKuninori Morimoto            mix1: mix-1 { };
4492d8fc973SKuninori Morimoto        };
4502d8fc973SKuninori Morimoto
4512d8fc973SKuninori Morimoto        rcar_sound,ctu {
4522d8fc973SKuninori Morimoto            ctu00: ctu-0 { };
4532d8fc973SKuninori Morimoto            ctu01: ctu-1 { };
4542d8fc973SKuninori Morimoto            ctu02: ctu-2 { };
4552d8fc973SKuninori Morimoto            ctu03: ctu-3 { };
4562d8fc973SKuninori Morimoto            ctu10: ctu-4 { };
4572d8fc973SKuninori Morimoto            ctu11: ctu-5 { };
4582d8fc973SKuninori Morimoto            ctu12: ctu-6 { };
4592d8fc973SKuninori Morimoto            ctu13: ctu-7 { };
4602d8fc973SKuninori Morimoto        };
4612d8fc973SKuninori Morimoto
4622d8fc973SKuninori Morimoto        rcar_sound,src {
4632d8fc973SKuninori Morimoto            src0: src-0 {
4642d8fc973SKuninori Morimoto                status = "disabled";
4652d8fc973SKuninori Morimoto            };
4662d8fc973SKuninori Morimoto            src1: src-1 {
467ff750f8eSGeert Uytterhoeven                interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
4682d8fc973SKuninori Morimoto                dmas = <&audma0 0x87>, <&audma1 0x9c>;
4692d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4702d8fc973SKuninori Morimoto            };
4712d8fc973SKuninori Morimoto            /* skip after src-2 */
4722d8fc973SKuninori Morimoto        };
4732d8fc973SKuninori Morimoto
4742d8fc973SKuninori Morimoto        rcar_sound,ssiu {
4752d8fc973SKuninori Morimoto            ssiu00: ssiu-0 {
4762d8fc973SKuninori Morimoto                dmas = <&audma0 0x15>, <&audma1 0x16>;
4772d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4782d8fc973SKuninori Morimoto            };
4792d8fc973SKuninori Morimoto            ssiu01: ssiu-1 {
4802d8fc973SKuninori Morimoto                dmas = <&audma0 0x35>, <&audma1 0x36>;
4812d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4822d8fc973SKuninori Morimoto            };
4832d8fc973SKuninori Morimoto            /* skip after ssiu-2 */
4842d8fc973SKuninori Morimoto        };
4852d8fc973SKuninori Morimoto
4862d8fc973SKuninori Morimoto        rcar_sound,ssi {
4872d8fc973SKuninori Morimoto            ssi0: ssi-0 {
488ff750f8eSGeert Uytterhoeven                interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
4892d8fc973SKuninori Morimoto                dmas = <&audma0 0x01>, <&audma1 0x02>;
4902d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4912d8fc973SKuninori Morimoto            };
4922d8fc973SKuninori Morimoto            ssi1: ssi-1 {
493ff750f8eSGeert Uytterhoeven                interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
4942d8fc973SKuninori Morimoto                dmas = <&audma0 0x03>, <&audma1 0x04>;
4952d8fc973SKuninori Morimoto                dma-names = "rx", "tx";
4962d8fc973SKuninori Morimoto            };
4972d8fc973SKuninori Morimoto            /* skip other ssi-2 */
4982d8fc973SKuninori Morimoto        };
4992d8fc973SKuninori Morimoto
5002d8fc973SKuninori Morimoto        /* DAI base */
5012d8fc973SKuninori Morimoto        rcar_sound,dai {
5022d8fc973SKuninori Morimoto            dai0 {
503f08c74a3SGeert Uytterhoeven                playback = <&ssi5>, <&src5>;
5042d8fc973SKuninori Morimoto                capture  = <&ssi6>;
5052d8fc973SKuninori Morimoto            };
5062d8fc973SKuninori Morimoto            dai1 {
5072d8fc973SKuninori Morimoto                playback = <&ssi3>;
5082d8fc973SKuninori Morimoto            };
5092d8fc973SKuninori Morimoto            dai2 {
5102d8fc973SKuninori Morimoto                capture  = <&ssi4>;
5112d8fc973SKuninori Morimoto            };
5122d8fc973SKuninori Morimoto            dai3 {
5132d8fc973SKuninori Morimoto                playback = <&ssi7>;
5142d8fc973SKuninori Morimoto            };
5152d8fc973SKuninori Morimoto            dai4 {
5162d8fc973SKuninori Morimoto                capture  = <&ssi8>;
5172d8fc973SKuninori Morimoto            };
5182d8fc973SKuninori Morimoto        };
5192d8fc973SKuninori Morimoto
5202d8fc973SKuninori Morimoto        /* assume audio-graph */
5212d8fc973SKuninori Morimoto        port {
5222d8fc973SKuninori Morimoto            rsnd_endpoint: endpoint {
5232d8fc973SKuninori Morimoto                remote-endpoint = <&codec_endpoint>;
5242d8fc973SKuninori Morimoto
5252d8fc973SKuninori Morimoto                dai-format = "left_j";
5262d8fc973SKuninori Morimoto                bitclock-master = <&rsnd_endpoint0>;
5272d8fc973SKuninori Morimoto                frame-master = <&rsnd_endpoint0>;
5282d8fc973SKuninori Morimoto
529f08c74a3SGeert Uytterhoeven                playback = <&ssi0>, <&src0>, <&dvc0>;
530f08c74a3SGeert Uytterhoeven                capture  = <&ssi1>, <&src1>, <&dvc1>;
5312d8fc973SKuninori Morimoto            };
5322d8fc973SKuninori Morimoto        };
5332d8fc973SKuninori Morimoto    };
5342d8fc973SKuninori Morimoto
5352d8fc973SKuninori Morimoto    /* assume audio-graph */
5362d8fc973SKuninori Morimoto    codec {
5372d8fc973SKuninori Morimoto        port {
5382d8fc973SKuninori Morimoto            codec_endpoint: endpoint {
5392d8fc973SKuninori Morimoto                remote-endpoint = <&rsnd_endpoint>;
5402d8fc973SKuninori Morimoto            };
5412d8fc973SKuninori Morimoto        };
5422d8fc973SKuninori Morimoto    };
543