# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/mmc-pwrseq-simple.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Simple MMC power sequence provider binding

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

description:
  The purpose of the simple MMC power sequence provider is to supports a set
  of common properties between various SOC designs. It thus enables us to use
  the same provider for several SOC designs.

properties:
  compatible:
    const: mmc-pwrseq-simple

  reset-gpios:
    minItems: 1
    # Put some limit to avoid false warnings
    maxItems: 32
    description:
      contains a list of GPIO specifiers. The reset GPIOs are asserted
      at initialization and prior we start the power up procedure of the card.
      They will be de-asserted right after the power has been provided to the
      card.

  clocks:
    minItems: 1
    description: Handle for the entry in clock-names.

  clock-names:
    items:
      - const: ext_clock
    description: External clock provided to the card.

  post-power-on-delay-ms:
    description:
      Delay in ms after powering the card and de-asserting the
      reset-gpios (if any).
    $ref: /schemas/types.yaml#/definitions/uint32

  power-off-delay-us:
    description:
      Delay in us after asserting the reset-gpios (if any)
      during power off of the card.
    $ref: /schemas/types.yaml#/definitions/uint32

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    sdhci0_pwrseq {
      compatible = "mmc-pwrseq-simple";
      reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
      clocks = <&clk_32768_ck>;
      clock-names = "ext_clock";
    };
...
