Documentation / devicetree / bindings / mmc / cdns,sdhci.yaml


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/cdns,sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Cadence SD/SDIO/eMMC Host Controller (SD4HC)

maintainers:
  - Masahiro Yamada <yamada.masahiro@socionext.com>

properties:
  compatible:
    items:
      - enum:
          - amd,pensando-elba-sd4hc
          - microchip,mpfs-sd4hc
          - socionext,uniphier-sd4hc
      - const: cdns,sd4hc

  reg:
    minItems: 1
    maxItems: 2

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1
 
  # PHY DLL input delays:
  # They are used to delay the data valid window, and align the window to
  # sampling clock. The delay starts from 5ns (for delay parameter equal to 0)
  # and it is increased by 2.5ns in each step.

  cdns,phy-input-delay-sd-highspeed:
    description: Value of the delay in the input path for SD high-speed timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-legacy:
    description: Value of the delay in the input path for legacy timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-sd-uhs-sdr12:
    description: Value of the delay in the input path for SD UHS SDR12 timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-sd-uhs-sdr25:
    description: Value of the delay in the input path for SD UHS SDR25 timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-sd-uhs-sdr50:
    description: Value of the delay in the input path for SD UHS SDR50 timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-sd-uhs-ddr50:
    description: Value of the delay in the input path for SD UHS DDR50 timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-mmc-highspeed:
    description: Value of the delay in the input path for MMC high-speed timing
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-input-delay-mmc-ddr:
    description: Value of the delay in the input path for eMMC high-speed DDR timing
 
  # PHY DLL clock delays:
  # Each delay property represents the fraction of the clock period.
  # The approximate delay value will be
  # (<delay property value>/128)*sdmclk_clock_period.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x1f

  cdns,phy-dll-delay-sdclk:
    description: |
      Value of the delay introduced on the sdclk output for all modes except
      HS200, HS400 and HS400_ES.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x7f

  cdns,phy-dll-delay-sdclk-hsmmc:
    description: |
      Value of the delay introduced on the sdclk output for HS200, HS400 and
      HS400_ES speed modes.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x7f

  cdns,phy-dll-delay-strobe:
    description: |
      Value of the delay introduced on the dat_strobe input used in
      HS400 / HS400_ES speed modes.
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 0
    maximum: 0x7f

required:
  - compatible
  - reg
  - interrupts
  - clocks

allOf:
  - $ref: mmc-controller.yaml
  - if:
      properties:
        compatible:
          contains:
            const: amd,pensando-elba-sd4hc
    then:
      properties:
        reg:
          items:
            - description: Host controller registers
            - description: Elba byte-lane enable register for writes
      required:
        - resets
    else:
      properties:
        reg:
          maxItems: 1

unevaluatedProperties: false

examples:
  - |
    emmc: mmc@5a000000 {
        compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
        reg = <0x5a000000 0x400>;
        interrupts = <0 78 4>;
        clocks = <&clk 4>;
        bus-width = <8>;
        mmc-ddr-1_8v;
        mmc-hs200-1_8v;
        mmc-hs400-1_8v;
        cdns,phy-dll-delay-sdclk = <0>;
    };