12ebeea2bSPaul Cercueil# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22ebeea2bSPaul Cercueil%YAML 1.2
32ebeea2bSPaul Cercueil---
42ebeea2bSPaul Cercueil$id: http://devicetree.org/schemas/mmc/ingenic,mmc.yaml#
52ebeea2bSPaul Cercueil$schema: http://devicetree.org/meta-schemas/core.yaml#
62ebeea2bSPaul Cercueil
7*a612130cSKrzysztof Kozlowskititle: Ingenic SoCs MMC Controller
82ebeea2bSPaul Cercueil
92ebeea2bSPaul Cercueilmaintainers:
102ebeea2bSPaul Cercueil  - Paul Cercueil <paul@crapouillou.net>
112ebeea2bSPaul Cercueil
122ebeea2bSPaul CercueilallOf:
132ebeea2bSPaul Cercueil  - $ref: mmc-controller.yaml#
142ebeea2bSPaul Cercueil
152ebeea2bSPaul Cercueilproperties:
162ebeea2bSPaul Cercueil  compatible:
172ebeea2bSPaul Cercueil    oneOf:
182ebeea2bSPaul Cercueil      - enum:
192ebeea2bSPaul Cercueil          - ingenic,jz4740-mmc
202ebeea2bSPaul Cercueil          - ingenic,jz4725b-mmc
212ebeea2bSPaul Cercueil          - ingenic,jz4760-mmc
223160e025S周琰杰 (Zhou Yanjie)          - ingenic,jz4775-mmc
232ebeea2bSPaul Cercueil          - ingenic,jz4780-mmc
242ebeea2bSPaul Cercueil          - ingenic,x1000-mmc
252ebeea2bSPaul Cercueil      - items:
262ebeea2bSPaul Cercueil          - const: ingenic,jz4770-mmc
272ebeea2bSPaul Cercueil          - const: ingenic,jz4760-mmc
282ebeea2bSPaul Cercueil
292ebeea2bSPaul Cercueil  reg:
302ebeea2bSPaul Cercueil    maxItems: 1
312ebeea2bSPaul Cercueil
322ebeea2bSPaul Cercueil  interrupts:
332ebeea2bSPaul Cercueil    maxItems: 1
342ebeea2bSPaul Cercueil
352ebeea2bSPaul Cercueil  clocks:
362ebeea2bSPaul Cercueil    maxItems: 1
372ebeea2bSPaul Cercueil
382ebeea2bSPaul Cercueil  clock-names:
392ebeea2bSPaul Cercueil    const: mmc
402ebeea2bSPaul Cercueil
412ebeea2bSPaul Cercueil  dmas:
4234ce2930SPaul Cercueil    minItems: 1
4334ce2930SPaul Cercueil    maxItems: 2
442ebeea2bSPaul Cercueil
452ebeea2bSPaul Cercueil  dma-names:
4634ce2930SPaul Cercueil    oneOf:
4734ce2930SPaul Cercueil      - items:
482ebeea2bSPaul Cercueil          - const: rx
492ebeea2bSPaul Cercueil          - const: tx
5034ce2930SPaul Cercueil      - const: tx-rx
512ebeea2bSPaul Cercueil
522ebeea2bSPaul Cercueilrequired:
532ebeea2bSPaul Cercueil  - compatible
542ebeea2bSPaul Cercueil  - reg
552ebeea2bSPaul Cercueil  - interrupts
562ebeea2bSPaul Cercueil  - clocks
572ebeea2bSPaul Cercueil  - clock-names
582ebeea2bSPaul Cercueil  - dmas
592ebeea2bSPaul Cercueil  - dma-names
602ebeea2bSPaul Cercueil
616fdc6e23SRob HerringunevaluatedProperties: false
626fdc6e23SRob Herring
632ebeea2bSPaul Cercueilexamples:
642ebeea2bSPaul Cercueil  - |
65c4a11bf4SPaul Cercueil    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
662ebeea2bSPaul Cercueil    #include <dt-bindings/dma/jz4780-dma.h>
672ebeea2bSPaul Cercueil    mmc0: mmc@13450000 {
682ebeea2bSPaul Cercueil      compatible = "ingenic,jz4780-mmc";
692ebeea2bSPaul Cercueil      reg = <0x13450000 0x1000>;
702ebeea2bSPaul Cercueil
712ebeea2bSPaul Cercueil      interrupt-parent = <&intc>;
722ebeea2bSPaul Cercueil      interrupts = <37>;
732ebeea2bSPaul Cercueil
742ebeea2bSPaul Cercueil      clocks = <&cgu JZ4780_CLK_MSC0>;
752ebeea2bSPaul Cercueil      clock-names = "mmc";
762ebeea2bSPaul Cercueil
772ebeea2bSPaul Cercueil      cap-sd-highspeed;
782ebeea2bSPaul Cercueil      cap-mmc-highspeed;
792ebeea2bSPaul Cercueil      cap-sdio-irq;
802ebeea2bSPaul Cercueil      dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>,
812ebeea2bSPaul Cercueil             <&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
822ebeea2bSPaul Cercueil      dma-names = "rx", "tx";
832ebeea2bSPaul Cercueil    };
8434ce2930SPaul Cercueil  - |
8534ce2930SPaul Cercueil    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
8634ce2930SPaul Cercueil    #include <dt-bindings/dma/jz4780-dma.h>
8734ce2930SPaul Cercueil    /*
8834ce2930SPaul Cercueil     * Alternative version of the example above,
8934ce2930SPaul Cercueil     * but using one single DMA channel for both
9034ce2930SPaul Cercueil     * TX and RX.
9134ce2930SPaul Cercueil     */
9234ce2930SPaul Cercueil    mmc1: mmc@13460000 {
9334ce2930SPaul Cercueil      compatible = "ingenic,jz4780-mmc";
9434ce2930SPaul Cercueil      reg = <0x13460000 0x1000>;
9534ce2930SPaul Cercueil
9634ce2930SPaul Cercueil      interrupt-parent = <&intc>;
9734ce2930SPaul Cercueil      interrupts = <36>;
9834ce2930SPaul Cercueil
9934ce2930SPaul Cercueil      clocks = <&cgu JZ4780_CLK_MSC1>;
10034ce2930SPaul Cercueil      clock-names = "mmc";
10134ce2930SPaul Cercueil
10234ce2930SPaul Cercueil      cap-sd-highspeed;
10334ce2930SPaul Cercueil      cap-mmc-highspeed;
10434ce2930SPaul Cercueil      cap-sdio-irq;
10534ce2930SPaul Cercueil      dmas = <&dma JZ4780_DMA_MSC1_TX JZ4780_DMA_MSC1_RX 0xffffffff>;
10634ce2930SPaul Cercueil      dma-names = "tx-rx";
10734ce2930SPaul Cercueil    };
108