1110a8688SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2110a8688SGeert Uytterhoeven%YAML 1.2
3110a8688SGeert Uytterhoeven---
4110a8688SGeert Uytterhoeven$id: http://devicetree.org/schemas/mmc/renesas,mmcif.yaml#
5110a8688SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6110a8688SGeert Uytterhoeven
7110a8688SGeert Uytterhoeventitle: Renesas Multi Media Card Interface (MMCIF) Controller
8110a8688SGeert Uytterhoeven
9110a8688SGeert Uytterhoevenmaintainers:
10110a8688SGeert Uytterhoeven  - Wolfram Sang <wsa+renesas@sang-engineering.com>
11110a8688SGeert Uytterhoeven
12110a8688SGeert UytterhoevenallOf:
13*1e52a7e6SKrzysztof Kozlowski  - $ref: mmc-controller.yaml
14110a8688SGeert Uytterhoeven
15110a8688SGeert Uytterhoevenproperties:
16110a8688SGeert Uytterhoeven  compatible:
17110a8688SGeert Uytterhoeven    items:
18110a8688SGeert Uytterhoeven      - enum:
19110a8688SGeert Uytterhoeven          - renesas,mmcif-r7s72100 # RZ/A1H
20110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a73a4  # R-Mobile APE6
21110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7740  # R-Mobile A1
22110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7742  # RZ/G1H
23110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7743  # RZ/G1M
24110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7744  # RZ/G1N
25110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7745  # RZ/G1E
26110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7778  # R-Car M1A
27110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7790  # R-Car H2
28110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7791  # R-Car M2-W
29110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7793  # R-Car M2-N
30110a8688SGeert Uytterhoeven          - renesas,mmcif-r8a7794  # R-Car E2
31110a8688SGeert Uytterhoeven          - renesas,mmcif-sh73a0   # SH-Mobile AG5
32110a8688SGeert Uytterhoeven      - const: renesas,sh-mmcif
33110a8688SGeert Uytterhoeven
34110a8688SGeert Uytterhoeven  reg:
35110a8688SGeert Uytterhoeven    maxItems: 1
36110a8688SGeert Uytterhoeven
37110a8688SGeert Uytterhoeven  interrupts: true
38110a8688SGeert Uytterhoeven
39110a8688SGeert Uytterhoeven  clocks:
40110a8688SGeert Uytterhoeven    maxItems: 1
41110a8688SGeert Uytterhoeven
42110a8688SGeert Uytterhoeven  power-domains:
43110a8688SGeert Uytterhoeven    maxItems: 1
44110a8688SGeert Uytterhoeven
45110a8688SGeert Uytterhoeven  resets:
46110a8688SGeert Uytterhoeven    maxItems: 1
47110a8688SGeert Uytterhoeven
48110a8688SGeert Uytterhoeven  dmas:
49110a8688SGeert Uytterhoeven    minItems: 2
50110a8688SGeert Uytterhoeven    maxItems: 4
51110a8688SGeert Uytterhoeven    description:
52110a8688SGeert Uytterhoeven      Must contain a list of pairs of references to DMA specifiers, one for
53110a8688SGeert Uytterhoeven      transmission, and one for reception.
54110a8688SGeert Uytterhoeven
55110a8688SGeert Uytterhoeven  dma-names:
56110a8688SGeert Uytterhoeven    minItems: 2
57110a8688SGeert Uytterhoeven    maxItems: 4
58110a8688SGeert Uytterhoeven    items:
59110a8688SGeert Uytterhoeven      enum:
60110a8688SGeert Uytterhoeven        - tx
61110a8688SGeert Uytterhoeven        - rx
62110a8688SGeert Uytterhoeven
63110a8688SGeert Uytterhoeven  max-frequency: true
64110a8688SGeert Uytterhoeven
65110a8688SGeert Uytterhoevenrequired:
66110a8688SGeert Uytterhoeven  - compatible
67110a8688SGeert Uytterhoeven  - reg
68110a8688SGeert Uytterhoeven  - interrupts
69110a8688SGeert Uytterhoeven  - clocks
70110a8688SGeert Uytterhoeven  - power-domains
71110a8688SGeert Uytterhoeven
72110a8688SGeert Uytterhoevenif:
73110a8688SGeert Uytterhoeven  properties:
74110a8688SGeert Uytterhoeven    compatible:
75110a8688SGeert Uytterhoeven      contains:
76110a8688SGeert Uytterhoeven        const: renesas,mmcif-r7s72100
77110a8688SGeert Uytterhoeventhen:
78110a8688SGeert Uytterhoeven  properties:
79110a8688SGeert Uytterhoeven    interrupts:
80110a8688SGeert Uytterhoeven      items:
81110a8688SGeert Uytterhoeven        - description: Error interrupt
82110a8688SGeert Uytterhoeven        - description: Normal operation interrupt
83110a8688SGeert Uytterhoeven        - description: Card detection interrupt
84110a8688SGeert Uytterhoevenelse:
85110a8688SGeert Uytterhoeven  if:
86110a8688SGeert Uytterhoeven    properties:
87110a8688SGeert Uytterhoeven      compatible:
88110a8688SGeert Uytterhoeven        contains:
89110a8688SGeert Uytterhoeven          enum:
90110a8688SGeert Uytterhoeven            - renesas,mmcif-r8a7740
91110a8688SGeert Uytterhoeven            - renesas,mmcif-sh73a0
92110a8688SGeert Uytterhoeven  then:
93110a8688SGeert Uytterhoeven    properties:
94110a8688SGeert Uytterhoeven      interrupts:
95110a8688SGeert Uytterhoeven        items:
96110a8688SGeert Uytterhoeven          - description: Error interrupt
97110a8688SGeert Uytterhoeven          - description: Normal operation interrupt
98110a8688SGeert Uytterhoeven  else:
99110a8688SGeert Uytterhoeven    if:
100110a8688SGeert Uytterhoeven      properties:
101110a8688SGeert Uytterhoeven        compatible:
102110a8688SGeert Uytterhoeven          contains:
103110a8688SGeert Uytterhoeven            enum:
104110a8688SGeert Uytterhoeven              - renesas,mmcif-r8a73a4
105110a8688SGeert Uytterhoeven              - renesas,mmcif-r8a7778
106110a8688SGeert Uytterhoeven    then:
107110a8688SGeert Uytterhoeven      properties:
108110a8688SGeert Uytterhoeven        interrupts:
109110a8688SGeert Uytterhoeven          maxItems: 1
110110a8688SGeert Uytterhoeven    else:
111110a8688SGeert Uytterhoeven      properties:
112110a8688SGeert Uytterhoeven        interrupts:
113110a8688SGeert Uytterhoeven          maxItems: 1
114110a8688SGeert Uytterhoeven      required:
115110a8688SGeert Uytterhoeven        - resets
116110a8688SGeert Uytterhoeven
117110a8688SGeert UytterhoevenunevaluatedProperties: false
118110a8688SGeert Uytterhoeven
119110a8688SGeert Uytterhoevenexamples:
120110a8688SGeert Uytterhoeven  - |
121110a8688SGeert Uytterhoeven    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
122110a8688SGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
123110a8688SGeert Uytterhoeven    #include <dt-bindings/power/r8a7790-sysc.h>
124110a8688SGeert Uytterhoeven
125110a8688SGeert Uytterhoeven    mmcif0: mmc@ee200000 {
126110a8688SGeert Uytterhoeven            compatible = "renesas,mmcif-r8a7790", "renesas,sh-mmcif";
127110a8688SGeert Uytterhoeven            reg = <0xee200000 0x80>;
128110a8688SGeert Uytterhoeven            interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
129110a8688SGeert Uytterhoeven            clocks = <&cpg CPG_MOD 315>;
130110a8688SGeert Uytterhoeven            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
131110a8688SGeert Uytterhoeven            resets = <&cpg 315>;
132110a8688SGeert Uytterhoeven            dmas = <&dmac0 0xd1>, <&dmac0 0xd2>, <&dmac1 0xd1>, <&dmac1 0xd2>;
133110a8688SGeert Uytterhoeven            dma-names = "tx", "rx", "tx", "rx";
134110a8688SGeert Uytterhoeven            max-frequency = <97500000>;
135110a8688SGeert Uytterhoeven    };
136