# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/socionext,milbeaut-m10v-sdhci-3.0.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: SOCIONEXT Milbeaut SDHCI controller

maintainers:
  - Taichi Sugaya <sugaya.taichi@socionext.com>
  - Takao Orito <orito.takao@socionext.com>

description:
  The SOCIONEXT Milbeaut SDHCI controller is a specialized SD Host
  Controller found in some of Socionext's Milbeaut image processing SoCs.
  It features a dedicated "bridge controller." This bridge controller
  implements special functions like reset control, clock management for
  various SDR modes (SDR12, SDR25, SDR50) and physical pin property settings.

allOf:
  - $ref: sdhci-common.yaml#

properties:
  compatible:
    const: socionext,milbeaut-m10v-sdhci-3.0

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 2

  clock-names:
    items:
      - const: core
      - const: iface

  fujitsu,cmd-dat-delay-select:
    description:
      Its presence indicates that the controller requires a specific command
      and data line delay selection mechanism for proper operation, particularly
      when dealing with high-speed SD/eMMC modes.
    type: boolean

  voltage-ranges:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    items:
      items:
        - description: minimum slot voltage (mV).
        - description: maximum slot voltage (mV).
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    mmc@1b010000 {
        compatible = "socionext,milbeaut-m10v-sdhci-3.0";
        reg = <0x1b010000 0x10000>;
        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
        voltage-ranges = <3300 3300>;
        bus-width = <4>;
        clocks = <&clk 7>, <&ahb_clk>;
        clock-names = "core", "iface";
        cap-sdio-irq;
        fujitsu,cmd-dat-delay-select;
    };
...
