Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/mmc/renesas,sdhi.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006 
0007 title: Renesas SDHI SD/MMC controller
0008 
0009 maintainers:
0010   - Wolfram Sang <wsa+renesas@sang-engineering.com>
0011 
0012 properties:
0013   compatible:
0014     oneOf:
0015       - items:
0016           - const: renesas,sdhi-sh73a0  # R-Mobile APE6
0017       - items:
0018           - const: renesas,sdhi-r7s72100 # RZ/A1H
0019       - items:
0020           - const: renesas,sdhi-r7s9210 # SH-Mobile AG5
0021       - items:
0022           - const: renesas,sdhi-r8a73a4 # R-Mobile APE6
0023       - items:
0024           - const: renesas,sdhi-r8a7740 # R-Mobile A1
0025       - items:
0026           - enum:
0027               - renesas,sdhi-r8a7778 # R-Car M1
0028               - renesas,sdhi-r8a7779 # R-Car H1
0029           - const: renesas,rcar-gen1-sdhi # R-Car Gen1
0030       - items:
0031           - enum:
0032               - renesas,sdhi-r8a7742  # RZ/G1H
0033               - renesas,sdhi-r8a7743  # RZ/G1M
0034               - renesas,sdhi-r8a7744  # RZ/G1N
0035               - renesas,sdhi-r8a7745  # RZ/G1E
0036               - renesas,sdhi-r8a77470 # RZ/G1C
0037               - renesas,sdhi-r8a7790  # R-Car H2
0038               - renesas,sdhi-r8a7791  # R-Car M2-W
0039               - renesas,sdhi-r8a7792  # R-Car V2H
0040               - renesas,sdhi-r8a7793  # R-Car M2-N
0041               - renesas,sdhi-r8a7794  # R-Car E2
0042           - const: renesas,rcar-gen2-sdhi # R-Car Gen2 and RZ/G1
0043       - items:
0044           - const: renesas,sdhi-mmc-r8a77470 # RZ/G1C (SDHI/MMC IP)
0045       - items:
0046           - enum:
0047               - renesas,sdhi-r8a774a1  # RZ/G2M
0048               - renesas,sdhi-r8a774b1  # RZ/G2N
0049               - renesas,sdhi-r8a774c0  # RZ/G2E
0050               - renesas,sdhi-r8a774e1  # RZ/G2H
0051               - renesas,sdhi-r8a7795   # R-Car H3
0052               - renesas,sdhi-r8a7796   # R-Car M3-W
0053               - renesas,sdhi-r8a77961  # R-Car M3-W+
0054               - renesas,sdhi-r8a77965  # R-Car M3-N
0055               - renesas,sdhi-r8a77970  # R-Car V3M
0056               - renesas,sdhi-r8a77980  # R-Car V3H
0057               - renesas,sdhi-r8a77990  # R-Car E3
0058               - renesas,sdhi-r8a77995  # R-Car D3
0059               - renesas,sdhi-r9a07g043 # RZ/G2UL
0060               - renesas,sdhi-r9a07g044 # RZ/G2{L,LC}
0061               - renesas,sdhi-r9a07g054 # RZ/V2L
0062           - const: renesas,rcar-gen3-sdhi # R-Car Gen3 or RZ/G2
0063       - items:
0064           - enum:
0065               - renesas,sdhi-r8a779a0  # R-Car V3U
0066               - renesas,sdhi-r8a779f0  # R-Car S4-8
0067           - const: renesas,rcar-gen4-sdhi # R-Car Gen4
0068 
0069   reg:
0070     maxItems: 1
0071 
0072   interrupts:
0073     minItems: 1
0074     maxItems: 3
0075 
0076   clocks: true
0077 
0078   clock-names: true
0079 
0080   dmas:
0081     minItems: 4
0082     maxItems: 4
0083 
0084   dma-names:
0085     minItems: 4
0086     maxItems: 4
0087     items:
0088       enum:
0089         - tx
0090         - rx
0091 
0092   power-domains:
0093     maxItems: 1
0094 
0095   resets:
0096     maxItems: 1
0097 
0098   pinctrl-0:
0099     minItems: 1
0100     maxItems: 2
0101 
0102   pinctrl-1:
0103     maxItems: 1
0104 
0105   pinctrl-names: true
0106 
0107   max-frequency: true
0108 
0109 allOf:
0110   - $ref: "mmc-controller.yaml"
0111 
0112   - if:
0113       properties:
0114         compatible:
0115           contains:
0116             enum:
0117               - renesas,sdhi-r9a07g043
0118               - renesas,sdhi-r9a07g044
0119               - renesas,sdhi-r9a07g054
0120     then:
0121       properties:
0122         clocks:
0123           items:
0124             - description: IMCLK, SDHI channel main clock1.
0125             - description: CLK_HS, SDHI channel High speed clock which operates
0126                            4 times that of SDHI channel main clock1.
0127             - description: IMCLK2, SDHI channel main clock2. When this clock is
0128                            turned off, external SD card detection cannot be
0129                            detected.
0130             - description: ACLK, SDHI channel bus clock.
0131         clock-names:
0132           items:
0133             - const: core
0134             - const: clkh
0135             - const: cd
0136             - const: aclk
0137       required:
0138         - clock-names
0139         - resets
0140     else:
0141       if:
0142         properties:
0143           compatible:
0144             contains:
0145               enum:
0146                 - renesas,rcar-gen2-sdhi
0147                 - renesas,rcar-gen3-sdhi
0148                 - renesas,rcar-gen4-sdhi
0149       then:
0150         properties:
0151           clocks:
0152             minItems: 1
0153             maxItems: 3
0154           clock-names:
0155             minItems: 1
0156             uniqueItems: true
0157             items:
0158               - const: core
0159               - enum: [ clkh, cd ]
0160               - const: cd
0161       else:
0162         properties:
0163           clocks:
0164             minItems: 1
0165             maxItems: 2
0166           clock-names:
0167             minItems: 1
0168             items:
0169               - const: core
0170               - const: cd
0171 
0172   - if:
0173       properties:
0174         compatible:
0175           contains:
0176             const: renesas,sdhi-mmc-r8a77470
0177     then:
0178       properties:
0179         pinctrl-names:
0180           items:
0181             - const: state_uhs
0182     else:
0183       properties:
0184         pinctrl-names:
0185           minItems: 1
0186           items:
0187             - const: default
0188             - const: state_uhs
0189 
0190   - if:
0191       properties:
0192         compatible:
0193           contains:
0194             enum:
0195               - renesas,sdhi-r7s72100
0196               - renesas,sdhi-r7s9210
0197     then:
0198       required:
0199         - clock-names
0200       description:
0201         The internal card detection logic that exists in these controllers is
0202         sectioned off to be run by a separate second clock source to allow
0203         the main core clock to be turned off to save power.
0204 
0205 required:
0206   - compatible
0207   - reg
0208   - interrupts
0209   - clocks
0210   - power-domains
0211 
0212 unevaluatedProperties: false
0213 
0214 examples:
0215   - |
0216     #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
0217     #include <dt-bindings/interrupt-controller/arm-gic.h>
0218     #include <dt-bindings/power/r8a7790-sysc.h>
0219 
0220     sdhi0: mmc@ee100000 {
0221             compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
0222             reg = <0xee100000 0x328>;
0223             interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
0224             clocks = <&cpg CPG_MOD 314>;
0225             dmas = <&dmac0 0xcd>, <&dmac0 0xce>, <&dmac1 0xcd>, <&dmac1 0xce>;
0226             dma-names = "tx", "rx", "tx", "rx";
0227             max-frequency = <195000000>;
0228             power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0229             resets = <&cpg 314>;
0230     };
0231 
0232     sdhi1: mmc@ee120000 {
0233              compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
0234              reg = <0xee120000 0x328>;
0235              interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
0236              clocks = <&cpg CPG_MOD 313>;
0237              dmas = <&dmac0 0xc9>, <&dmac0 0xca>, <&dmac1 0xc9>, <&dmac1 0xca>;
0238              dma-names = "tx", "rx", "tx", "rx";
0239              max-frequency = <195000000>;
0240              power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0241              resets = <&cpg 313>;
0242     };
0243 
0244     sdhi2: mmc@ee140000 {
0245              compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
0246              reg = <0xee140000 0x100>;
0247              interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
0248              clocks = <&cpg CPG_MOD 312>;
0249              dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, <&dmac1 0xc1>, <&dmac1 0xc2>;
0250              dma-names = "tx", "rx", "tx", "rx";
0251              max-frequency = <97500000>;
0252              power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0253              resets = <&cpg 312>;
0254      };
0255 
0256      sdhi3: mmc@ee160000 {
0257               compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
0258               reg = <0xee160000 0x100>;
0259               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
0260               clocks = <&cpg CPG_MOD 311>;
0261               dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, <&dmac1 0xd3>, <&dmac1 0xd4>;
0262               dma-names = "tx", "rx", "tx", "rx";
0263               max-frequency = <97500000>;
0264               power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
0265               resets = <&cpg 311>;
0266     };