xref: /freebsd/sys/contrib/device-tree/Bindings/sound/renesas,rsnd.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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:
51cb7aa33aSEmmanuel Vadot          - const: renesas,rcar_sound-r8a779g0  # R-Car V4H
52cb7aa33aSEmmanuel Vadot          - const: renesas,rcar_sound-gen4
53cb7aa33aSEmmanuel Vadot      # for Generic
545def4c47SEmmanuel Vadot      - enum:
555def4c47SEmmanuel Vadot          - renesas,rcar_sound-gen1
565def4c47SEmmanuel Vadot          - renesas,rcar_sound-gen2
575def4c47SEmmanuel Vadot          - renesas,rcar_sound-gen3
585def4c47SEmmanuel Vadot
595def4c47SEmmanuel Vadot  reg:
605def4c47SEmmanuel Vadot    minItems: 1
615def4c47SEmmanuel Vadot    maxItems: 5
625def4c47SEmmanuel Vadot
635def4c47SEmmanuel Vadot  reg-names:
645def4c47SEmmanuel Vadot    minItems: 1
655def4c47SEmmanuel Vadot    maxItems: 5
665def4c47SEmmanuel Vadot
675def4c47SEmmanuel Vadot  "#sound-dai-cells":
685def4c47SEmmanuel Vadot    description: |
695def4c47SEmmanuel Vadot      it must be 0 if your system is using single DAI
705def4c47SEmmanuel Vadot      it must be 1 if your system is using multi  DAIs
71cb7aa33aSEmmanuel Vadot      This is used on simple-audio-card
725def4c47SEmmanuel Vadot    enum: [0, 1]
735def4c47SEmmanuel Vadot
745def4c47SEmmanuel Vadot  "#clock-cells":
755def4c47SEmmanuel Vadot    description: |
765def4c47SEmmanuel Vadot      it must be 0 if your system has audio_clkout
775def4c47SEmmanuel Vadot      it must be 1 if your system has audio_clkout0/1/2/3
785def4c47SEmmanuel Vadot    enum: [0, 1]
795def4c47SEmmanuel Vadot
80aa1a8ff2SEmmanuel Vadot  "#address-cells":
81aa1a8ff2SEmmanuel Vadot    const: 1
82aa1a8ff2SEmmanuel Vadot
83aa1a8ff2SEmmanuel Vadot  "#size-cells":
84aa1a8ff2SEmmanuel Vadot    const: 0
85aa1a8ff2SEmmanuel Vadot
865def4c47SEmmanuel Vadot  clock-frequency:
875def4c47SEmmanuel Vadot    description: for audio_clkout0/1/2/3
885def4c47SEmmanuel Vadot
895def4c47SEmmanuel Vadot  clkout-lr-asynchronous:
905def4c47SEmmanuel Vadot    description: audio_clkoutn is asynchronizes with lr-clock.
915def4c47SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
925def4c47SEmmanuel Vadot
935def4c47SEmmanuel Vadot  power-domains: true
945def4c47SEmmanuel Vadot
955def4c47SEmmanuel Vadot  resets:
965956d97fSEmmanuel Vadot    minItems: 1
975def4c47SEmmanuel Vadot    maxItems: 11
985def4c47SEmmanuel Vadot
995def4c47SEmmanuel Vadot  reset-names:
1005956d97fSEmmanuel Vadot    minItems: 1
1015def4c47SEmmanuel Vadot    maxItems: 11
1025def4c47SEmmanuel Vadot
1035def4c47SEmmanuel Vadot  clocks:
1045def4c47SEmmanuel Vadot    description: References to SSI/SRC/MIX/CTU/DVC/AUDIO_CLK clocks.
1055def4c47SEmmanuel Vadot    minItems: 1
1065def4c47SEmmanuel Vadot    maxItems: 31
1075def4c47SEmmanuel Vadot
1085def4c47SEmmanuel Vadot  clock-names:
1095def4c47SEmmanuel Vadot    description: List of necessary clock names.
110fac71e4eSEmmanuel Vadot    # details are defined below
1115def4c47SEmmanuel Vadot
112aa1a8ff2SEmmanuel Vadot  # ports is below
1132eb4d8dcSEmmanuel Vadot  port:
114*8d13bc63SEmmanuel Vadot    $ref: audio-graph-port.yaml#/definitions/port-base
115*8d13bc63SEmmanuel Vadot    unevaluatedProperties: false
116*8d13bc63SEmmanuel Vadot    patternProperties:
117*8d13bc63SEmmanuel Vadot      "^endpoint(@[0-9a-f]+)?":
118*8d13bc63SEmmanuel Vadot        $ref: audio-graph-port.yaml#/definitions/endpoint-base
119*8d13bc63SEmmanuel Vadot        properties:
120*8d13bc63SEmmanuel Vadot          playback:
121*8d13bc63SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
122*8d13bc63SEmmanuel Vadot          capture:
123*8d13bc63SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
124*8d13bc63SEmmanuel Vadot        unevaluatedProperties: false
1255def4c47SEmmanuel Vadot
126c9ccf3a3SEmmanuel Vadot  rcar_sound,dvc:
1275def4c47SEmmanuel Vadot    description: DVC subnode.
1285def4c47SEmmanuel Vadot    type: object
1295def4c47SEmmanuel Vadot    patternProperties:
1305def4c47SEmmanuel Vadot      "^dvc-[0-1]$":
1315def4c47SEmmanuel Vadot        type: object
1327ef62cebSEmmanuel Vadot        additionalProperties: false
1337ef62cebSEmmanuel Vadot
1345def4c47SEmmanuel Vadot        properties:
1355def4c47SEmmanuel Vadot          dmas:
1365def4c47SEmmanuel Vadot            maxItems: 1
1375def4c47SEmmanuel Vadot          dma-names:
138fac71e4eSEmmanuel Vadot            const: tx
1395def4c47SEmmanuel Vadot        required:
1405def4c47SEmmanuel Vadot          - dmas
1415def4c47SEmmanuel Vadot          - dma-names
1425def4c47SEmmanuel Vadot    additionalProperties: false
1435def4c47SEmmanuel Vadot
144c9ccf3a3SEmmanuel Vadot  rcar_sound,mix:
1455def4c47SEmmanuel Vadot    description: MIX subnode.
1465def4c47SEmmanuel Vadot    type: object
1475def4c47SEmmanuel Vadot    patternProperties:
1485def4c47SEmmanuel Vadot      "^mix-[0-1]$":
1495def4c47SEmmanuel Vadot        type: object
1507ef62cebSEmmanuel Vadot        additionalProperties: false
1515def4c47SEmmanuel Vadot    additionalProperties: false
1525def4c47SEmmanuel Vadot
153c9ccf3a3SEmmanuel Vadot  rcar_sound,ctu:
1545def4c47SEmmanuel Vadot    description: CTU subnode.
1555def4c47SEmmanuel Vadot    type: object
1565def4c47SEmmanuel Vadot    patternProperties:
1575def4c47SEmmanuel Vadot      "^ctu-[0-7]$":
1585def4c47SEmmanuel Vadot        type: object
1597ef62cebSEmmanuel Vadot        additionalProperties: false
1605def4c47SEmmanuel Vadot    additionalProperties: false
1615def4c47SEmmanuel Vadot
162c9ccf3a3SEmmanuel Vadot  rcar_sound,src:
1635def4c47SEmmanuel Vadot    description: SRC subnode.
1645def4c47SEmmanuel Vadot    type: object
1655def4c47SEmmanuel Vadot    patternProperties:
1665def4c47SEmmanuel Vadot      "^src-[0-9]$":
1675def4c47SEmmanuel Vadot        type: object
1687ef62cebSEmmanuel Vadot        additionalProperties: false
1697ef62cebSEmmanuel Vadot
1705def4c47SEmmanuel Vadot        properties:
1715def4c47SEmmanuel Vadot          interrupts:
1725def4c47SEmmanuel Vadot            maxItems: 1
1735def4c47SEmmanuel Vadot          dmas:
1745def4c47SEmmanuel Vadot            maxItems: 2
1755def4c47SEmmanuel Vadot          dma-names:
1765def4c47SEmmanuel Vadot            allOf:
1775def4c47SEmmanuel Vadot              - items:
1785def4c47SEmmanuel Vadot                  enum:
1795def4c47SEmmanuel Vadot                    - tx
1805def4c47SEmmanuel Vadot                    - rx
1815def4c47SEmmanuel Vadot    additionalProperties: false
1825def4c47SEmmanuel Vadot
183c9ccf3a3SEmmanuel Vadot  rcar_sound,ssiu:
1845def4c47SEmmanuel Vadot    description: SSIU subnode.
1855def4c47SEmmanuel Vadot    type: object
1865def4c47SEmmanuel Vadot    patternProperties:
1875def4c47SEmmanuel Vadot      "^ssiu-[0-9]+$":
1885def4c47SEmmanuel Vadot        type: object
1897ef62cebSEmmanuel Vadot        additionalProperties: false
1907ef62cebSEmmanuel Vadot
1915def4c47SEmmanuel Vadot        properties:
1925def4c47SEmmanuel Vadot          dmas:
1935def4c47SEmmanuel Vadot            maxItems: 2
1945def4c47SEmmanuel Vadot          dma-names:
1955def4c47SEmmanuel Vadot            allOf:
1965def4c47SEmmanuel Vadot              - items:
1975def4c47SEmmanuel Vadot                  enum:
1985def4c47SEmmanuel Vadot                    - tx
1995def4c47SEmmanuel Vadot                    - rx
2005def4c47SEmmanuel Vadot        required:
2015def4c47SEmmanuel Vadot          - dmas
2025def4c47SEmmanuel Vadot          - dma-names
2035def4c47SEmmanuel Vadot    additionalProperties: false
2045def4c47SEmmanuel Vadot
205c9ccf3a3SEmmanuel Vadot  rcar_sound,ssi:
2065def4c47SEmmanuel Vadot    description: SSI subnode.
2075def4c47SEmmanuel Vadot    type: object
2085def4c47SEmmanuel Vadot    patternProperties:
2095def4c47SEmmanuel Vadot      "^ssi-[0-9]$":
2105def4c47SEmmanuel Vadot        type: object
2117ef62cebSEmmanuel Vadot        additionalProperties: false
2127ef62cebSEmmanuel Vadot
2135def4c47SEmmanuel Vadot        properties:
2145def4c47SEmmanuel Vadot          interrupts:
2155def4c47SEmmanuel Vadot            maxItems: 1
2165def4c47SEmmanuel Vadot          dmas:
2175def4c47SEmmanuel Vadot            minItems: 2
2185def4c47SEmmanuel Vadot            maxItems: 4
2195def4c47SEmmanuel Vadot          dma-names:
2205def4c47SEmmanuel Vadot            allOf:
2215def4c47SEmmanuel Vadot              - items:
2225def4c47SEmmanuel Vadot                  enum:
2235def4c47SEmmanuel Vadot                    - tx
2245def4c47SEmmanuel Vadot                    - rx
2255def4c47SEmmanuel Vadot                    - txu # if no ssiu node
2265def4c47SEmmanuel Vadot                    - rxu # if no ssiu node
2275def4c47SEmmanuel Vadot
2285def4c47SEmmanuel Vadot          shared-pin:
2295def4c47SEmmanuel Vadot            description: shared clock pin
2305def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2315def4c47SEmmanuel Vadot          pio-transfer:
2325def4c47SEmmanuel Vadot            description: PIO transfer mode
2335def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2345def4c47SEmmanuel Vadot          no-busif:
2355def4c47SEmmanuel Vadot            description: BUSIF is not used when [mem -> SSI] via DMA case
2365def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/flag
2375def4c47SEmmanuel Vadot        required:
2385def4c47SEmmanuel Vadot          - interrupts
2395def4c47SEmmanuel Vadot    additionalProperties: false
2405def4c47SEmmanuel Vadot
241aa1a8ff2SEmmanuel VadotpatternProperties:
2425def4c47SEmmanuel Vadot  # For DAI base
243aa1a8ff2SEmmanuel Vadot  'rcar_sound,dai(@[0-9a-f]+)?$':
2445def4c47SEmmanuel Vadot    description: DAI subnode.
2455def4c47SEmmanuel Vadot    type: object
2465def4c47SEmmanuel Vadot    patternProperties:
2475def4c47SEmmanuel Vadot      "^dai([0-9]+)?$":
2485def4c47SEmmanuel Vadot        type: object
2497ef62cebSEmmanuel Vadot        additionalProperties: false
2507ef62cebSEmmanuel Vadot
2515def4c47SEmmanuel Vadot        properties:
2525def4c47SEmmanuel Vadot          playback:
2535def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
2545def4c47SEmmanuel Vadot          capture:
2555def4c47SEmmanuel Vadot            $ref: /schemas/types.yaml#/definitions/phandle-array
2565def4c47SEmmanuel Vadot        anyOf:
2575def4c47SEmmanuel Vadot          - required:
2585def4c47SEmmanuel Vadot              - playback
2595def4c47SEmmanuel Vadot          - required:
2605def4c47SEmmanuel Vadot              - capture
2615def4c47SEmmanuel Vadot    additionalProperties: false
2625def4c47SEmmanuel Vadot
263aa1a8ff2SEmmanuel Vadot  'ports(@[0-9a-f]+)?$':
264aa1a8ff2SEmmanuel Vadot    $ref: audio-graph-port.yaml#/definitions/port-base
265aa1a8ff2SEmmanuel Vadot    unevaluatedProperties: false
266aa1a8ff2SEmmanuel Vadot    patternProperties:
267aa1a8ff2SEmmanuel Vadot      '^port(@[0-9a-f]+)?$':
268*8d13bc63SEmmanuel Vadot        $ref: "#/properties/port"
269aa1a8ff2SEmmanuel Vadot
2705def4c47SEmmanuel Vadotrequired:
2715def4c47SEmmanuel Vadot  - compatible
2725def4c47SEmmanuel Vadot  - reg
2735def4c47SEmmanuel Vadot  - reg-names
2745def4c47SEmmanuel Vadot  - clocks
2755def4c47SEmmanuel Vadot  - clock-names
2765def4c47SEmmanuel Vadot
2775def4c47SEmmanuel VadotallOf:
2788bab661aSEmmanuel Vadot  - $ref: dai-common.yaml#
279fac71e4eSEmmanuel Vadot
280fac71e4eSEmmanuel Vadot  # --------------------
281fac71e4eSEmmanuel Vadot  # reg/reg-names
282fac71e4eSEmmanuel Vadot  # --------------------
283fac71e4eSEmmanuel Vadot  # for Gen1
2845def4c47SEmmanuel Vadot  - if:
2855def4c47SEmmanuel Vadot      properties:
2865def4c47SEmmanuel Vadot        compatible:
2875def4c47SEmmanuel Vadot          contains:
2885def4c47SEmmanuel Vadot            const: renesas,rcar_sound-gen1
2895def4c47SEmmanuel Vadot    then:
2905def4c47SEmmanuel Vadot      properties:
2915def4c47SEmmanuel Vadot        reg:
2925def4c47SEmmanuel Vadot          maxItems: 3
2935def4c47SEmmanuel Vadot        reg-names:
2945def4c47SEmmanuel Vadot          items:
2955def4c47SEmmanuel Vadot            enum:
2965def4c47SEmmanuel Vadot              - scu
2975def4c47SEmmanuel Vadot              - ssi
2985def4c47SEmmanuel Vadot              - adg
299fac71e4eSEmmanuel Vadot  # for Gen2/Gen3
300fac71e4eSEmmanuel Vadot  - if:
301fac71e4eSEmmanuel Vadot      properties:
302fac71e4eSEmmanuel Vadot        compatible:
303fac71e4eSEmmanuel Vadot          contains:
304fac71e4eSEmmanuel Vadot            enum:
305fac71e4eSEmmanuel Vadot              - renesas,rcar_sound-gen2
306fac71e4eSEmmanuel Vadot              - renesas,rcar_sound-gen3
307fac71e4eSEmmanuel Vadot    then:
3085def4c47SEmmanuel Vadot      properties:
3095def4c47SEmmanuel Vadot        reg:
310cb7aa33aSEmmanuel Vadot          minItems: 5
3115def4c47SEmmanuel Vadot        reg-names:
3125def4c47SEmmanuel Vadot          items:
3135def4c47SEmmanuel Vadot            enum:
3145def4c47SEmmanuel Vadot              - scu
3155def4c47SEmmanuel Vadot              - adg
3165def4c47SEmmanuel Vadot              - ssiu
3175def4c47SEmmanuel Vadot              - ssi
3185def4c47SEmmanuel Vadot              - audmapp
319fac71e4eSEmmanuel Vadot  # for Gen4
320fac71e4eSEmmanuel Vadot  - if:
321fac71e4eSEmmanuel Vadot      properties:
322fac71e4eSEmmanuel Vadot        compatible:
323fac71e4eSEmmanuel Vadot          contains:
324fac71e4eSEmmanuel Vadot            const: renesas,rcar_sound-gen4
325fac71e4eSEmmanuel Vadot    then:
326fac71e4eSEmmanuel Vadot      properties:
327fac71e4eSEmmanuel Vadot        reg:
328fac71e4eSEmmanuel Vadot          maxItems: 4
329fac71e4eSEmmanuel Vadot        reg-names:
330fac71e4eSEmmanuel Vadot          items:
331fac71e4eSEmmanuel Vadot            enum:
332fac71e4eSEmmanuel Vadot              - adg
333fac71e4eSEmmanuel Vadot              - ssiu
334fac71e4eSEmmanuel Vadot              - ssi
335fac71e4eSEmmanuel Vadot              - sdmc
336fac71e4eSEmmanuel Vadot
337fac71e4eSEmmanuel Vadot  # --------------------
338fac71e4eSEmmanuel Vadot  # clock-names
339fac71e4eSEmmanuel Vadot  # --------------------
340fac71e4eSEmmanuel Vadot  - if:
341fac71e4eSEmmanuel Vadot      properties:
342fac71e4eSEmmanuel Vadot        compatible:
343fac71e4eSEmmanuel Vadot          contains:
344fac71e4eSEmmanuel Vadot            const: renesas,rcar_sound-gen4
345fac71e4eSEmmanuel Vadot    then:
346fac71e4eSEmmanuel Vadot      properties:
347fac71e4eSEmmanuel Vadot        clock-names:
348fac71e4eSEmmanuel Vadot          maxItems: 3
349fac71e4eSEmmanuel Vadot          items:
350fac71e4eSEmmanuel Vadot            enum:
351fac71e4eSEmmanuel Vadot              - ssi.0
352fac71e4eSEmmanuel Vadot              - ssiu.0
353fac71e4eSEmmanuel Vadot              - clkin
354fac71e4eSEmmanuel Vadot    else:
355fac71e4eSEmmanuel Vadot      properties:
356fac71e4eSEmmanuel Vadot        clock-names:
357fac71e4eSEmmanuel Vadot          minItems: 1
358fac71e4eSEmmanuel Vadot          maxItems: 31
359fac71e4eSEmmanuel Vadot          items:
360fac71e4eSEmmanuel Vadot            oneOf:
361fac71e4eSEmmanuel Vadot              - const: ssi-all
362fac71e4eSEmmanuel Vadot              - pattern: '^ssi\.[0-9]$'
363fac71e4eSEmmanuel Vadot              - pattern: '^src\.[0-9]$'
364fac71e4eSEmmanuel Vadot              - pattern: '^mix\.[0-1]$'
365fac71e4eSEmmanuel Vadot              - pattern: '^ctu\.[0-1]$'
366fac71e4eSEmmanuel Vadot              - pattern: '^dvc\.[0-1]$'
367fac71e4eSEmmanuel Vadot              - pattern: '^clk_(a|b|c|i)$'
3685def4c47SEmmanuel Vadot
3698bab661aSEmmanuel VadotunevaluatedProperties: false
3705def4c47SEmmanuel Vadot
3715def4c47SEmmanuel Vadotexamples:
3725def4c47SEmmanuel Vadot  - |
373fac71e4eSEmmanuel Vadot    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
374fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
375fac71e4eSEmmanuel Vadot    #include <dt-bindings/power/r8a7790-sysc.h>
3765def4c47SEmmanuel Vadot    rcar_sound: sound@ec500000 {
3775def4c47SEmmanuel Vadot        #sound-dai-cells = <1>;
3785def4c47SEmmanuel Vadot        compatible = "renesas,rcar_sound-r8a7790", "renesas,rcar_sound-gen2";
3795def4c47SEmmanuel Vadot        reg = <0xec500000 0x1000>, /* SCU  */
3805def4c47SEmmanuel Vadot              <0xec5a0000 0x100>,  /* ADG  */
3815def4c47SEmmanuel Vadot              <0xec540000 0x1000>, /* SSIU */
382fac71e4eSEmmanuel Vadot              <0xec541000 0x280>,  /* SSI  */
3835def4c47SEmmanuel Vadot              <0xec740000 0x200>;  /* Audio DMAC peri peri*/
3845def4c47SEmmanuel Vadot        reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
3855def4c47SEmmanuel Vadot
386fac71e4eSEmmanuel Vadot        clocks = <&cpg CPG_MOD 1005>,                      /* SSI-ALL    */
387fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>, /* SSI9, SSI8 */
388fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>, /* SSI7, SSI6 */
389fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>, /* SSI5, SSI4 */
390fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>, /* SSI3, SSI2 */
391fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>, /* SSI1, SSI0 */
392fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>, /* SRC9, SRC8 */
393fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>, /* SRC7, SRC6 */
394fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>, /* SRC5, SRC4 */
395fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>, /* SRC3, SRC2 */
396fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>, /* SRC1, SRC0 */
397fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* MIX1, MIX0 */
398fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>, /* CTU1, CTU0 */
399fac71e4eSEmmanuel Vadot                 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>, /* DVC0, DVC1 */
4005def4c47SEmmanuel Vadot                 <&audio_clk_a>, <&audio_clk_b>,           /* CLKA, CLKB */
4015def4c47SEmmanuel Vadot                 <&audio_clk_c>, <&audio_clk_i>;           /* CLKC, CLKI */
4025def4c47SEmmanuel Vadot
4035def4c47SEmmanuel Vadot        clock-names = "ssi-all",
4045def4c47SEmmanuel Vadot                      "ssi.9", "ssi.8",
4055def4c47SEmmanuel Vadot                      "ssi.7", "ssi.6",
4065def4c47SEmmanuel Vadot                      "ssi.5", "ssi.4",
4075def4c47SEmmanuel Vadot                      "ssi.3", "ssi.2",
4085def4c47SEmmanuel Vadot                      "ssi.1", "ssi.0",
4095def4c47SEmmanuel Vadot                      "src.9", "src.8",
4105def4c47SEmmanuel Vadot                      "src.7", "src.6",
4115def4c47SEmmanuel Vadot                      "src.5", "src.4",
4125def4c47SEmmanuel Vadot                      "src.3", "src.2",
4135def4c47SEmmanuel Vadot                      "src.1", "src.0",
4145def4c47SEmmanuel Vadot                      "mix.1", "mix.0",
4155def4c47SEmmanuel Vadot                      "ctu.1", "ctu.0",
4165def4c47SEmmanuel Vadot                      "dvc.0", "dvc.1",
4175def4c47SEmmanuel Vadot                      "clk_a", "clk_b",
4185def4c47SEmmanuel Vadot                      "clk_c", "clk_i";
4195def4c47SEmmanuel Vadot
420fac71e4eSEmmanuel Vadot        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
421fac71e4eSEmmanuel Vadot
422fac71e4eSEmmanuel Vadot        resets = <&cpg 1005>,
423fac71e4eSEmmanuel Vadot                 <&cpg 1006>, <&cpg 1007>, <&cpg 1008>, <&cpg 1009>,
424fac71e4eSEmmanuel Vadot                 <&cpg 1010>, <&cpg 1011>, <&cpg 1012>, <&cpg 1013>,
425fac71e4eSEmmanuel Vadot                 <&cpg 1014>, <&cpg 1015>;
426fac71e4eSEmmanuel Vadot        reset-names = "ssi-all",
427fac71e4eSEmmanuel Vadot                      "ssi.9", "ssi.8", "ssi.7", "ssi.6",
428fac71e4eSEmmanuel Vadot                      "ssi.5", "ssi.4", "ssi.3", "ssi.2",
429fac71e4eSEmmanuel Vadot                      "ssi.1", "ssi.0";
430fac71e4eSEmmanuel Vadot
4315def4c47SEmmanuel Vadot        rcar_sound,dvc {
4325def4c47SEmmanuel Vadot               dvc0: dvc-0 {
4335def4c47SEmmanuel Vadot                    dmas = <&audma0 0xbc>;
4345def4c47SEmmanuel Vadot                    dma-names = "tx";
4355def4c47SEmmanuel Vadot               };
4365def4c47SEmmanuel Vadot               dvc1: dvc-1 {
4375def4c47SEmmanuel Vadot                    dmas = <&audma0 0xbe>;
4385def4c47SEmmanuel Vadot                    dma-names = "tx";
4395def4c47SEmmanuel Vadot               };
4405def4c47SEmmanuel Vadot        };
4415def4c47SEmmanuel Vadot
4425def4c47SEmmanuel Vadot        rcar_sound,mix {
4435def4c47SEmmanuel Vadot            mix0: mix-0 { };
4445def4c47SEmmanuel Vadot            mix1: mix-1 { };
4455def4c47SEmmanuel Vadot        };
4465def4c47SEmmanuel Vadot
4475def4c47SEmmanuel Vadot        rcar_sound,ctu {
4485def4c47SEmmanuel Vadot            ctu00: ctu-0 { };
4495def4c47SEmmanuel Vadot            ctu01: ctu-1 { };
4505def4c47SEmmanuel Vadot            ctu02: ctu-2 { };
4515def4c47SEmmanuel Vadot            ctu03: ctu-3 { };
4525def4c47SEmmanuel Vadot            ctu10: ctu-4 { };
4535def4c47SEmmanuel Vadot            ctu11: ctu-5 { };
4545def4c47SEmmanuel Vadot            ctu12: ctu-6 { };
4555def4c47SEmmanuel Vadot            ctu13: ctu-7 { };
4565def4c47SEmmanuel Vadot        };
4575def4c47SEmmanuel Vadot
4585def4c47SEmmanuel Vadot        rcar_sound,src {
4595def4c47SEmmanuel Vadot            src0: src-0 {
4605def4c47SEmmanuel Vadot                status = "disabled";
4615def4c47SEmmanuel Vadot            };
4625def4c47SEmmanuel Vadot            src1: src-1 {
463fac71e4eSEmmanuel Vadot                interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
4645def4c47SEmmanuel Vadot                dmas = <&audma0 0x87>, <&audma1 0x9c>;
4655def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4665def4c47SEmmanuel Vadot            };
4675def4c47SEmmanuel Vadot            /* skip after src-2 */
4685def4c47SEmmanuel Vadot        };
4695def4c47SEmmanuel Vadot
4705def4c47SEmmanuel Vadot        rcar_sound,ssiu {
4715def4c47SEmmanuel Vadot            ssiu00: ssiu-0 {
4725def4c47SEmmanuel Vadot                dmas = <&audma0 0x15>, <&audma1 0x16>;
4735def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4745def4c47SEmmanuel Vadot            };
4755def4c47SEmmanuel Vadot            ssiu01: ssiu-1 {
4765def4c47SEmmanuel Vadot                dmas = <&audma0 0x35>, <&audma1 0x36>;
4775def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4785def4c47SEmmanuel Vadot            };
4795def4c47SEmmanuel Vadot            /* skip after ssiu-2 */
4805def4c47SEmmanuel Vadot        };
4815def4c47SEmmanuel Vadot
4825def4c47SEmmanuel Vadot        rcar_sound,ssi {
4835def4c47SEmmanuel Vadot            ssi0: ssi-0 {
484fac71e4eSEmmanuel Vadot                interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
4855def4c47SEmmanuel Vadot                dmas = <&audma0 0x01>, <&audma1 0x02>;
4865def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4875def4c47SEmmanuel Vadot            };
4885def4c47SEmmanuel Vadot            ssi1: ssi-1 {
489fac71e4eSEmmanuel Vadot                interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
4905def4c47SEmmanuel Vadot                dmas = <&audma0 0x03>, <&audma1 0x04>;
4915def4c47SEmmanuel Vadot                dma-names = "rx", "tx";
4925def4c47SEmmanuel Vadot            };
4935def4c47SEmmanuel Vadot            /* skip other ssi-2 */
4945def4c47SEmmanuel Vadot        };
4955def4c47SEmmanuel Vadot
4965def4c47SEmmanuel Vadot        /* DAI base */
4975def4c47SEmmanuel Vadot        rcar_sound,dai {
4985def4c47SEmmanuel Vadot            dai0 {
4995def4c47SEmmanuel Vadot                playback = <&ssi5>, <&src5>;
5005def4c47SEmmanuel Vadot                capture = <&ssi6>;
5015def4c47SEmmanuel Vadot            };
5025def4c47SEmmanuel Vadot            dai1 {
5035def4c47SEmmanuel Vadot                playback = <&ssi3>;
5045def4c47SEmmanuel Vadot            };
5055def4c47SEmmanuel Vadot            dai2 {
5065def4c47SEmmanuel Vadot                capture = <&ssi4>;
5075def4c47SEmmanuel Vadot            };
5085def4c47SEmmanuel Vadot            dai3 {
5095def4c47SEmmanuel Vadot                playback = <&ssi7>;
5105def4c47SEmmanuel Vadot            };
5115def4c47SEmmanuel Vadot            dai4 {
5125def4c47SEmmanuel Vadot                capture = <&ssi8>;
5135def4c47SEmmanuel Vadot            };
5145def4c47SEmmanuel Vadot        };
5155def4c47SEmmanuel Vadot
5165def4c47SEmmanuel Vadot        /* assume audio-graph */
5175def4c47SEmmanuel Vadot        port {
5185def4c47SEmmanuel Vadot            rsnd_endpoint: endpoint {
5195def4c47SEmmanuel Vadot                remote-endpoint = <&codec_endpoint>;
5205def4c47SEmmanuel Vadot
5215def4c47SEmmanuel Vadot                dai-format = "left_j";
5225def4c47SEmmanuel Vadot                bitclock-master = <&rsnd_endpoint0>;
5235def4c47SEmmanuel Vadot                frame-master = <&rsnd_endpoint0>;
5245def4c47SEmmanuel Vadot
5255def4c47SEmmanuel Vadot                playback = <&ssi0>, <&src0>, <&dvc0>;
5265def4c47SEmmanuel Vadot                capture = <&ssi1>, <&src1>, <&dvc1>;
5275def4c47SEmmanuel Vadot            };
5285def4c47SEmmanuel Vadot        };
5295def4c47SEmmanuel Vadot    };
5305def4c47SEmmanuel Vadot
5315def4c47SEmmanuel Vadot    /* assume audio-graph */
5325def4c47SEmmanuel Vadot    codec {
5335def4c47SEmmanuel Vadot        port {
5345def4c47SEmmanuel Vadot            codec_endpoint: endpoint {
5355def4c47SEmmanuel Vadot                remote-endpoint = <&rsnd_endpoint>;
5365def4c47SEmmanuel Vadot            };
5375def4c47SEmmanuel Vadot        };
5385def4c47SEmmanuel Vadot    };
539