# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
%YAML 1.2
---
$id: "http://devicetree.org/schemas/mmc/sdhci-am654.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: TI AM654 MMC Controller

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

allOf:
  - $ref: mmc-controller.yaml#

properties:
  compatible:
    oneOf:
      - const: ti,am654-sdhci-5.1
      - const: ti,j721e-sdhci-8bit
      - const: ti,j721e-sdhci-4bit
      - const: ti,am64-sdhci-8bit
      - const: ti,am64-sdhci-4bit
      - items:
          - const: ti,j7200-sdhci-8bit
          - const: ti,j721e-sdhci-8bit
      - items:
          - const: ti,j7200-sdhci-4bit
          - const: ti,j721e-sdhci-4bit

  reg:
    maxItems: 2

  interrupts:
    maxItems: 1

  power-domains:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2
    description: Handles to input clocks

  clock-names:
    minItems: 1
    items:
      - const: clk_ahb
      - const: clk_xin

  # PHY output tap delays:
  # Used to delay the data valid window and align it to the sampling clock.
  # Binding needs to be provided for each supported speed mode otherwise the
  # corresponding mode will be disabled.

  ti,otap-del-sel-legacy:
    description: Output tap delay for SD/MMC legacy timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-mmc-hs:
    description: Output tap delay for MMC high speed timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-sd-hs:
    description: Output tap delay for SD high speed timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-sdr12:
    description: Output tap delay for SD UHS SDR12 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-sdr25:
    description: Output tap delay for SD UHS SDR25 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-sdr50:
    description: Output tap delay for SD UHS SDR50 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-sdr104:
    description: Output tap delay for SD UHS SDR104 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-ddr50:
    description: Output tap delay for SD UHS DDR50 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-ddr52:
    description: Output tap delay for eMMC DDR52 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-hs200:
    description: Output tap delay for eMMC HS200 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,otap-del-sel-hs400:
    description: Output tap delay for eMMC HS400 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  # PHY input tap delays:
  # Used to delay the data valid window and align it to the sampling clock for
  # modes that don't support tuning

  ti,itap-del-sel-legacy:
    description: Input tap delay for SD/MMC legacy timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0x1f

  ti,itap-del-sel-mmc-hs:
    description: Input tap delay for MMC high speed timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0x1f

  ti,itap-del-sel-sd-hs:
    description: Input tap delay for SD high speed timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0x1f

  ti,itap-del-sel-sdr12:
    description: Input tap delay for SD UHS SDR12 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0x1f

  ti,itap-del-sel-sdr25:
    description: Input tap delay for SD UHS SDR25 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0x1f

  ti,itap-del-sel-ddr52:
    description: Input tap delay for MMC DDR52 timing
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0x1f

  ti,trm-icp:
    description: DLL trim select
    $ref: "/schemas/types.yaml#/definitions/uint32"
    minimum: 0
    maximum: 0xf

  ti,driver-strength-ohm:
    description: DLL drive strength in ohms
    $ref: "/schemas/types.yaml#/definitions/uint32"
    enum:
      - 33
      - 40
      - 50
      - 66
      - 100

  ti,strobe-sel:
    description: strobe select delay for HS400 speed mode.
    $ref: "/schemas/types.yaml#/definitions/uint32"

  ti,clkbuf-sel:
    description: Clock Delay Buffer Select
    $ref: "/schemas/types.yaml#/definitions/uint32"

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - ti,otap-del-sel-legacy

unevaluatedProperties: false

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

    bus {
        #address-cells = <2>;
        #size-cells = <2>;

        mmc0: mmc@4f80000 {
            compatible = "ti,am654-sdhci-5.1";
            reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>;
            power-domains = <&k3_pds 47>;
            clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
            clock-names = "clk_ahb", "clk_xin";
            interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
            sdhci-caps-mask = <0x80000007 0x0>;
            mmc-ddr-1_8v;
            ti,otap-del-sel-legacy = <0x0>;
            ti,otap-del-sel-mmc-hs = <0x0>;
            ti,otap-del-sel-ddr52 = <0x5>;
            ti,otap-del-sel-hs200 = <0x5>;
            ti,otap-del-sel-hs400 = <0x0>;
            ti,itap-del-sel-legacy = <0x10>;
            ti,itap-del-sel-mmc-hs = <0xa>;
            ti,itap-del-sel-ddr52 = <0x3>;
            ti,trm-icp = <0x8>;
        };
    };
