blob: 224303f5b9132376f7f76989516243bf5dfc0f0a [file] [log] [blame]
Faiz Abbas407d0c22020-09-23 16:22:01 +05301# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
3%YAML 1.2
4---
5$id: "http://devicetree.org/schemas/mmc/sdhci-am654.yaml#"
Rob Herring6ad88382020-04-20 21:24:47 -05006$schema: "http://devicetree.org/meta-schemas/core.yaml#"
Faiz Abbas407d0c22020-09-23 16:22:01 +05307
8title: TI AM654 MMC Controller
9
10maintainers:
11 - Ulf Hansson <ulf.hansson@linaro.org>
12
13allOf:
14 - $ref: mmc-controller.yaml#
15
16properties:
17 compatible:
Grygorii Strashko7c7905d2021-01-15 21:32:18 +020018 oneOf:
19 - const: ti,am654-sdhci-5.1
20 - const: ti,j721e-sdhci-8bit
21 - const: ti,j721e-sdhci-4bit
Grygorii Strashko7c7905d2021-01-15 21:32:18 +020022 - const: ti,am64-sdhci-8bit
23 - const: ti,am64-sdhci-4bit
24 - items:
25 - const: ti,j7200-sdhci-8bit
26 - const: ti,j721e-sdhci-8bit
27 - items:
28 - const: ti,j7200-sdhci-4bit
29 - const: ti,j721e-sdhci-4bit
Faiz Abbas407d0c22020-09-23 16:22:01 +053030
31 reg:
32 maxItems: 2
33
34 interrupts:
35 maxItems: 1
36
37 power-domains:
38 maxItems: 1
39
40 clocks:
41 minItems: 1
42 maxItems: 2
43 description: Handles to input clocks
44
45 clock-names:
46 minItems: 1
Faiz Abbas407d0c22020-09-23 16:22:01 +053047 items:
48 - const: clk_ahb
49 - const: clk_xin
50
51 # PHY output tap delays:
52 # Used to delay the data valid window and align it to the sampling clock.
53 # Binding needs to be provided for each supported speed mode otherwise the
54 # corresponding mode will be disabled.
55
56 ti,otap-del-sel-legacy:
57 description: Output tap delay for SD/MMC legacy timing
58 $ref: "/schemas/types.yaml#/definitions/uint32"
59 minimum: 0
60 maximum: 0xf
61
62 ti,otap-del-sel-mmc-hs:
63 description: Output tap delay for MMC high speed timing
64 $ref: "/schemas/types.yaml#/definitions/uint32"
65 minimum: 0
66 maximum: 0xf
67
68 ti,otap-del-sel-sd-hs:
69 description: Output tap delay for SD high speed timing
70 $ref: "/schemas/types.yaml#/definitions/uint32"
71 minimum: 0
72 maximum: 0xf
73
74 ti,otap-del-sel-sdr12:
75 description: Output tap delay for SD UHS SDR12 timing
76 $ref: "/schemas/types.yaml#/definitions/uint32"
77 minimum: 0
78 maximum: 0xf
79
80 ti,otap-del-sel-sdr25:
81 description: Output tap delay for SD UHS SDR25 timing
82 $ref: "/schemas/types.yaml#/definitions/uint32"
83 minimum: 0
84 maximum: 0xf
85
86 ti,otap-del-sel-sdr50:
87 description: Output tap delay for SD UHS SDR50 timing
88 $ref: "/schemas/types.yaml#/definitions/uint32"
89 minimum: 0
90 maximum: 0xf
91
92 ti,otap-del-sel-sdr104:
93 description: Output tap delay for SD UHS SDR104 timing
94 $ref: "/schemas/types.yaml#/definitions/uint32"
95 minimum: 0
96 maximum: 0xf
97
98 ti,otap-del-sel-ddr50:
99 description: Output tap delay for SD UHS DDR50 timing
100 $ref: "/schemas/types.yaml#/definitions/uint32"
101 minimum: 0
102 maximum: 0xf
103
104 ti,otap-del-sel-ddr52:
105 description: Output tap delay for eMMC DDR52 timing
106 $ref: "/schemas/types.yaml#/definitions/uint32"
107 minimum: 0
108 maximum: 0xf
109
110 ti,otap-del-sel-hs200:
111 description: Output tap delay for eMMC HS200 timing
112 $ref: "/schemas/types.yaml#/definitions/uint32"
113 minimum: 0
114 maximum: 0xf
115
116 ti,otap-del-sel-hs400:
117 description: Output tap delay for eMMC HS400 timing
118 $ref: "/schemas/types.yaml#/definitions/uint32"
119 minimum: 0
120 maximum: 0xf
121
Faiz Abbasb1409542020-09-23 16:22:02 +0530122 # PHY input tap delays:
123 # Used to delay the data valid window and align it to the sampling clock for
124 # modes that don't support tuning
125
126 ti,itap-del-sel-legacy:
127 description: Input tap delay for SD/MMC legacy timing
128 $ref: "/schemas/types.yaml#/definitions/uint32"
129 minimum: 0
130 maximum: 0x1f
131
132 ti,itap-del-sel-mmc-hs:
133 description: Input tap delay for MMC high speed timing
134 $ref: "/schemas/types.yaml#/definitions/uint32"
135 minimum: 0
136 maximum: 0x1f
137
138 ti,itap-del-sel-sd-hs:
139 description: Input tap delay for SD high speed timing
140 $ref: "/schemas/types.yaml#/definitions/uint32"
141 minimum: 0
142 maximum: 0x1f
143
144 ti,itap-del-sel-sdr12:
145 description: Input tap delay for SD UHS SDR12 timing
146 $ref: "/schemas/types.yaml#/definitions/uint32"
147 minimum: 0
148 maximum: 0x1f
149
150 ti,itap-del-sel-sdr25:
151 description: Input tap delay for SD UHS SDR25 timing
152 $ref: "/schemas/types.yaml#/definitions/uint32"
153 minimum: 0
154 maximum: 0x1f
155
156 ti,itap-del-sel-ddr52:
157 description: Input tap delay for MMC DDR52 timing
158 $ref: "/schemas/types.yaml#/definitions/uint32"
159 minimum: 0
160 maximum: 0x1f
161
Faiz Abbas407d0c22020-09-23 16:22:01 +0530162 ti,trm-icp:
163 description: DLL trim select
164 $ref: "/schemas/types.yaml#/definitions/uint32"
165 minimum: 0
166 maximum: 0xf
167
168 ti,driver-strength-ohm:
169 description: DLL drive strength in ohms
170 $ref: "/schemas/types.yaml#/definitions/uint32"
Rob Herring6ad88382020-04-20 21:24:47 -0500171 enum:
172 - 33
173 - 40
174 - 50
175 - 66
176 - 100
Faiz Abbas407d0c22020-09-23 16:22:01 +0530177
178 ti,strobe-sel:
179 description: strobe select delay for HS400 speed mode.
180 $ref: "/schemas/types.yaml#/definitions/uint32"
181
182 ti,clkbuf-sel:
183 description: Clock Delay Buffer Select
184 $ref: "/schemas/types.yaml#/definitions/uint32"
185
186required:
187 - compatible
188 - reg
189 - interrupts
190 - clocks
191 - clock-names
192 - ti,otap-del-sel-legacy
193
Rob Herringf84e2c52020-10-06 12:19:08 -0500194unevaluatedProperties: false
195
Faiz Abbas407d0c22020-09-23 16:22:01 +0530196examples:
197 - |
198 #include <dt-bindings/interrupt-controller/irq.h>
199 #include <dt-bindings/interrupt-controller/arm-gic.h>
200
201 bus {
202 #address-cells = <2>;
203 #size-cells = <2>;
204
205 mmc0: mmc@4f80000 {
206 compatible = "ti,am654-sdhci-5.1";
207 reg = <0x0 0x4f80000 0x0 0x260>, <0x0 0x4f90000 0x0 0x134>;
208 power-domains = <&k3_pds 47>;
209 clocks = <&k3_clks 47 0>, <&k3_clks 47 1>;
210 clock-names = "clk_ahb", "clk_xin";
211 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
212 sdhci-caps-mask = <0x80000007 0x0>;
213 mmc-ddr-1_8v;
214 ti,otap-del-sel-legacy = <0x0>;
215 ti,otap-del-sel-mmc-hs = <0x0>;
216 ti,otap-del-sel-ddr52 = <0x5>;
217 ti,otap-del-sel-hs200 = <0x5>;
218 ti,otap-del-sel-hs400 = <0x0>;
Faiz Abbasb1409542020-09-23 16:22:02 +0530219 ti,itap-del-sel-legacy = <0x10>;
220 ti,itap-del-sel-mmc-hs = <0xa>;
221 ti,itap-del-sel-ddr52 = <0x3>;
Faiz Abbas407d0c22020-09-23 16:22:01 +0530222 ti,trm-icp = <0x8>;
223 };
224 };