summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/mmc/cdns,sdhci.yaml
blob: 2f45dd0d04db4944f9277765c1b4275add643053 (plain)
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
# 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>
  - Piotr Sroka <piotrs@cadence.com>

allOf:
  - $ref: mmc-controller.yaml

properties:
  compatible:
    items:
      - enum:
         - socionext,uniphier-sd4hc
      - const: cdns,sd4hc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    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
    allOf:
      - $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
    allOf:
      - $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
    allOf:
      - $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
    allOf:
      - $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
    allOf:
      - $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
    allOf:
      - $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
    allOf:
      - $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
    allOf:
      - $ref: "/schemas/types.yaml#/definitions/uint32"
      - minimum: 0
      - maximum: 0x1f

  # 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.

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

required:
  - compatible
  - reg
  - interrupts
  - clocks

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>;
    };