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

title: MMC/SD/SDIO slot directly connected to a SPI bus

maintainers:
  - Ulf Hansson <ulf.hansson@linaro.org>

allOf:
  - $ref: "mmc-controller.yaml"
  - $ref: /schemas/spi/spi-peripheral-props.yaml

description: |
  The extra properties used by an mmc connected via SPI.

properties:
  compatible:
    const: mmc-spi-slot

  reg:
    maxItems: 1

  spi-max-frequency: true

  interrupts:
    maxItems: 1

  voltage-ranges:
    $ref: /schemas/types.yaml#/definitions/uint32-array
    description: |
      Two cells are required, first cell specifies minimum slot voltage (mV),
      second cell specifies maximum slot voltage (mV).
    items:
      - description: |
          value for minimum slot voltage in mV
        default: 3200
      - description: |
          value for maximum slot voltage in mV
        default: 3400

  gpios:
    description: |
      For historical reasons, this does not follow the generic mmc-controller
      binding.
    minItems: 1
    items:
      - description: Card-Detect GPIO
      - description: Write-Protect GPIO

required:
  - compatible
  - reg
  - spi-max-frequency

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    spi {
      #address-cells = <1>;
      #size-cells = <0>;
      mmc@0 {
        compatible = "mmc-spi-slot";
        reg = <0>;
        gpios = <&gpio 14 GPIO_ACTIVE_LOW>, <&gpio 15 GPIO_ACTIVE_HIGH>;
        voltage-ranges = <3300 3300>;
        spi-max-frequency = <50000000>;
        interrupts = <42>;
        interrupt-parent = <&PIC>;
      };
    };

...
