# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/arm,pl18x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: ARM PrimeCell MultiMedia Card Interface (MMCI) PL180 and PL181

maintainers:
  - Linus Walleij <linus.walleij@linaro.org>
  - Ulf Hansson <ulf.hansson@linaro.org>

description:
  The ARM PrimeCells MMCI PL180 and PL181 provides an interface for
  reading and writing to MultiMedia and SD cards alike. Over the years
  vendors have use the VHDL code from ARM to create derivative MMC/SD/SDIO
  host controllers with very similar characteristics.

allOf:
  - $ref: /schemas/arm/primecell.yaml#
  - $ref: mmc-controller.yaml#

# We need a select here so we don't match all nodes with 'arm,primecell'
select:
  properties:
    compatible:
      contains:
        enum:
          - arm,pl180
          - arm,pl181
          - arm,pl18x
  required:
    - compatible

properties:
  compatible:
    oneOf:
      - description: The first version of the block, simply called
          PL180 and found in the ARM Integrator IM/PD1 logic module.
        items:
          - const: arm,pl180
          - const: arm,primecell
      - description: The improved version of the block, found in the
          ARM Versatile and later reference designs. Further revisions
          exist but get detected at runtime by reading some magic numbers
          in the PrimeCell ID registers.
        items:
          - const: arm,pl181
          - const: arm,primecell
      - description: Wildcard entry that will let the operating system
          inspect the PrimeCell ID registers to determine which hardware
          variant of PL180 or PL181 this is.
        items:
          - const: arm,pl18x
          - const: arm,primecell
      - description: Entries for STMicroelectronics variant of PL18x.
        items:
          - enum:
              - st,stm32-sdmmc2
              - st,stm32mp25-sdmmc2
          - const: arm,pl18x
          - const: arm,primecell

  clocks:
    description: One or two clocks, the "apb_pclk" and the "MCLK"
      which is the core block clock. The names are not compulsory.
    minItems: 1
    maxItems: 2

  dmas:
    maxItems: 2

  dma-names:
    oneOf:
      - items:
          - const: tx
          - const: rx
      - items:
          - const: rx
          - const: tx

  power-domains: true

  resets:
    maxItems: 1

  reg:
    description: the MMIO memory window must be exactly 4KB (0x1000) and the
      layout should provide the PrimeCell ID registers so that the device can
      be discovered. On ST Micro variants, a second register window may be
      defined if a delay block is present and used for tuning.

  interrupts:
    description: The first interrupt is the command interrupt and corresponds
      to the event at the end of a command. The second interrupt is the
      PIO (polled I/O) interrupt and occurs when the FIFO needs to be
      emptied as part of a bulk read from the card. Some variants have these
      two interrupts wired into the same line (logic OR) and in that case
      only one interrupt may be provided. The interrupt-names property is
      not used due to inconsistency of existing DTs regarding its content.
    deprecated: false
    minItems: 1
    maxItems: 2

  st,sig-dir-dat0:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, bus signal direction pins used for
      DAT[0].

  st,sig-dir-dat2:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, bus signal direction pins used for
      DAT[2].

  st,sig-dir-dat31:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, bus signal direction pins used for
      DAT[3] and DAT[1].

  st,sig-dir-dat74:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, bus signal direction pins used for
      DAT[7] and DAT[4].

  st,sig-dir-cmd:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, CMD signal direction used for
      pin CMD.

  st,sig-pin-fbclk:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, feedback clock FBCLK signal pin
      in use.

  st,sig-dir:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, signal direction polarity used for
      pins CMD, DAT[0], DAT[1], DAT[2] and DAT[3].

  st,neg-edge:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, data and command phase relation,
      generated on the sd clock falling edge.

  st,use-ckin:
    $ref: /schemas/types.yaml#/definitions/flag
    description: ST Micro-specific property, use CKIN pin from an external
      driver to sample the receive data (for example with a voltage switch
      transceiver).

  st,cmd-gpios:
    maxItems: 1
    description:
      The GPIO matching the CMD pin.

  st,ck-gpios:
    maxItems: 1
    description:
      The GPIO matching the CK pin.

  st,ckin-gpios:
    maxItems: 1
    description:
      The GPIO matching the CKIN pin.

dependencies:
  st,cmd-gpios: [ "st,use-ckin" ]
  st,ck-gpios: [ "st,use-ckin" ]
  st,ckin-gpios: [ "st,use-ckin" ]

unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/gpio/gpio.h>

    mmc@5000 {
      compatible = "arm,pl180", "arm,primecell";
      reg = <0x5000 0x1000>;
      interrupts-extended = <&vic 22 &sic 1>;
      clocks = <&xtal24mhz>, <&pclk>;
      clock-names = "mclk", "apb_pclk";
    };

  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    mmc@80126000 {
      compatible = "arm,pl18x", "arm,primecell";
      reg = <0x80126000 0x1000>;
      interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
      dmas = <&dma 29 0 0x2>, <&dma 29 0 0x0>;
      dma-names = "rx", "tx";
      clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
      clock-names = "sdi", "apb_pclk";
      max-frequency = <100000000>;
      bus-width = <4>;
      cap-sd-highspeed;
      cap-mmc-highspeed;
      cd-gpios = <&gpio2 31 0x4>;
      st,sig-dir-dat0;
      st,sig-dir-dat2;
      st,sig-dir-cmd;
      st,sig-pin-fbclk;
      vmmc-supply = <&ab8500_ldo_aux3_reg>;
      vqmmc-supply = <&vmmci>;
    };

  - |
    mmc@101f6000 {
      compatible = "arm,pl18x", "arm,primecell";
      reg = <0x101f6000 0x1000>;
      clocks = <&sdiclk>, <&pclksdi>;
      clock-names = "mclk", "apb_pclk";
      interrupts = <22>;
      max-frequency = <400000>;
      bus-width = <4>;
      cap-mmc-highspeed;
      cap-sd-highspeed;
      full-pwr-cycle;
      st,sig-dir-dat0;
      st,sig-dir-dat2;
      st,sig-dir-dat31;
      st,sig-dir-cmd;
      st,sig-pin-fbclk;
      vmmc-supply = <&vmmc_regulator>;
    };

  - |
    mmc@52007000 {
      compatible = "arm,pl18x", "arm,primecell";
      arm,primecell-periphid = <0x10153180>;
      reg = <0x52007000 0x1000>;
      interrupts = <49>;
      clocks = <&rcc 0>;
      clock-names = "apb_pclk";
      resets = <&rcc 1>;
      cap-sd-highspeed;
      cap-mmc-highspeed;
      max-frequency = <120000000>;
    };
