162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mmc/ingenic,mmc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Ingenic SoCs MMC Controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Paul Cercueil <paul@crapouillou.net>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciallOf:
1362306a36Sopenharmony_ci  - $ref: mmc-controller.yaml#
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    oneOf:
1862306a36Sopenharmony_ci      - enum:
1962306a36Sopenharmony_ci          - ingenic,jz4740-mmc
2062306a36Sopenharmony_ci          - ingenic,jz4725b-mmc
2162306a36Sopenharmony_ci          - ingenic,jz4760-mmc
2262306a36Sopenharmony_ci          - ingenic,jz4775-mmc
2362306a36Sopenharmony_ci          - ingenic,jz4780-mmc
2462306a36Sopenharmony_ci          - ingenic,x1000-mmc
2562306a36Sopenharmony_ci      - items:
2662306a36Sopenharmony_ci          - const: ingenic,jz4770-mmc
2762306a36Sopenharmony_ci          - const: ingenic,jz4760-mmc
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  reg:
3062306a36Sopenharmony_ci    maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  interrupts:
3362306a36Sopenharmony_ci    maxItems: 1
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  clocks:
3662306a36Sopenharmony_ci    maxItems: 1
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  clock-names:
3962306a36Sopenharmony_ci    const: mmc
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  dmas:
4262306a36Sopenharmony_ci    minItems: 1
4362306a36Sopenharmony_ci    maxItems: 2
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci  dma-names:
4662306a36Sopenharmony_ci    oneOf:
4762306a36Sopenharmony_ci      - items:
4862306a36Sopenharmony_ci          - const: rx
4962306a36Sopenharmony_ci          - const: tx
5062306a36Sopenharmony_ci      - const: tx-rx
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_cirequired:
5362306a36Sopenharmony_ci  - compatible
5462306a36Sopenharmony_ci  - reg
5562306a36Sopenharmony_ci  - interrupts
5662306a36Sopenharmony_ci  - clocks
5762306a36Sopenharmony_ci  - clock-names
5862306a36Sopenharmony_ci  - dmas
5962306a36Sopenharmony_ci  - dma-names
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciunevaluatedProperties: false
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciexamples:
6462306a36Sopenharmony_ci  - |
6562306a36Sopenharmony_ci    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
6662306a36Sopenharmony_ci    #include <dt-bindings/dma/jz4780-dma.h>
6762306a36Sopenharmony_ci    mmc0: mmc@13450000 {
6862306a36Sopenharmony_ci      compatible = "ingenic,jz4780-mmc";
6962306a36Sopenharmony_ci      reg = <0x13450000 0x1000>;
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci      interrupt-parent = <&intc>;
7262306a36Sopenharmony_ci      interrupts = <37>;
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci      clocks = <&cgu JZ4780_CLK_MSC0>;
7562306a36Sopenharmony_ci      clock-names = "mmc";
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci      cap-sd-highspeed;
7862306a36Sopenharmony_ci      cap-mmc-highspeed;
7962306a36Sopenharmony_ci      cap-sdio-irq;
8062306a36Sopenharmony_ci      dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>,
8162306a36Sopenharmony_ci             <&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
8262306a36Sopenharmony_ci      dma-names = "rx", "tx";
8362306a36Sopenharmony_ci    };
8462306a36Sopenharmony_ci  - |
8562306a36Sopenharmony_ci    #include <dt-bindings/clock/ingenic,jz4780-cgu.h>
8662306a36Sopenharmony_ci    #include <dt-bindings/dma/jz4780-dma.h>
8762306a36Sopenharmony_ci    /*
8862306a36Sopenharmony_ci     * Alternative version of the example above,
8962306a36Sopenharmony_ci     * but using one single DMA channel for both
9062306a36Sopenharmony_ci     * TX and RX.
9162306a36Sopenharmony_ci     */
9262306a36Sopenharmony_ci    mmc1: mmc@13460000 {
9362306a36Sopenharmony_ci      compatible = "ingenic,jz4780-mmc";
9462306a36Sopenharmony_ci      reg = <0x13460000 0x1000>;
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci      interrupt-parent = <&intc>;
9762306a36Sopenharmony_ci      interrupts = <36>;
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci      clocks = <&cgu JZ4780_CLK_MSC1>;
10062306a36Sopenharmony_ci      clock-names = "mmc";
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci      cap-sd-highspeed;
10362306a36Sopenharmony_ci      cap-mmc-highspeed;
10462306a36Sopenharmony_ci      cap-sdio-irq;
10562306a36Sopenharmony_ci      dmas = <&dma JZ4780_DMA_MSC1_TX JZ4780_DMA_MSC1_RX 0xffffffff>;
10662306a36Sopenharmony_ci      dma-names = "tx-rx";
10762306a36Sopenharmony_ci    };
108