blob: 82f7ee8702cb28bd8f3e8157629a7f8d3c0166d6 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mmc/fsl-imx-esdhc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Freescale Enhanced Secure Digital Host Controller (eSDHC) for i.MX
8
9maintainers:
10 - Shawn Guo <shawnguo@kernel.org>
11
12allOf:
13 - $ref: sdhci-common.yaml#
14
15description: |
16 The Enhanced Secure Digital Host Controller on Freescale i.MX family
17 provides an interface for MMC, SD, and SDIO types of memory cards.
18
19 This file documents differences between the core properties described
20 by mmc.txt and the properties used by the sdhci-esdhc-imx driver.
21
22properties:
23 compatible:
24 oneOf:
25 - enum:
26 - fsl,imx25-esdhc
27 - fsl,imx35-esdhc
28 - fsl,imx51-esdhc
29 - fsl,imx53-esdhc
30 - fsl,imx6q-usdhc
31 - fsl,imx6sl-usdhc
32 - fsl,imx6sx-usdhc
33 - fsl,imx7d-usdhc
34 - fsl,imx7ulp-usdhc
35 - fsl,imx8mm-usdhc
36 - fsl,imxrt1050-usdhc
37 - nxp,s32g2-usdhc
38 - items:
39 - const: fsl,imx50-esdhc
40 - const: fsl,imx53-esdhc
41 - items:
42 - enum:
43 - fsl,imx6sll-usdhc
44 - fsl,imx6ull-usdhc
45 - fsl,imx6ul-usdhc
46 - const: fsl,imx6sx-usdhc
47 - items:
48 - const: fsl,imx7d-usdhc
49 - const: fsl,imx6sl-usdhc
50 - items:
51 - enum:
52 - fsl,imx8mq-usdhc
53 - const: fsl,imx7d-usdhc
54 - items:
55 - enum:
56 - fsl,imx8mn-usdhc
57 - fsl,imx8mp-usdhc
Tom Rini53633a82024-02-29 12:33:36 -050058 - fsl,imx8ulp-usdhc
Tom Rini6bb92fc2024-05-20 09:54:58 -060059 - fsl,imx93-usdhc
60 - fsl,imx95-usdhc
Tom Rini53633a82024-02-29 12:33:36 -050061 - const: fsl,imx8mm-usdhc
62 - items:
63 - enum:
64 - fsl,imx8dxl-usdhc
65 - fsl,imx8qm-usdhc
66 - const: fsl,imx8qxp-usdhc
67 - items:
68 - enum:
69 - fsl,imx8mm-usdhc
70 - fsl,imx8mn-usdhc
71 - fsl,imx8mp-usdhc
72 - fsl,imx8qm-usdhc
73 - fsl,imx8qxp-usdhc
74 - const: fsl,imx7d-usdhc
75 deprecated: true
76 - items:
77 - enum:
78 - fsl,imx8mn-usdhc
79 - fsl,imx8mp-usdhc
80 - const: fsl,imx8mm-usdhc
81 - const: fsl,imx7d-usdhc
82 deprecated: true
83 - items:
84 - enum:
85 - fsl,imx8dxl-usdhc
86 - fsl,imx8qm-usdhc
87 - const: fsl,imx8qxp-usdhc
88 - const: fsl,imx7d-usdhc
89 deprecated: true
90 - items:
91 - enum:
92 - fsl,imxrt1170-usdhc
93 - const: fsl,imxrt1050-usdhc
94
95 reg:
96 maxItems: 1
97
98 interrupts:
99 maxItems: 1
100
101 fsl,wp-controller:
102 description: |
103 boolean, if present, indicate to use controller internal write protection.
104 type: boolean
105
106 fsl,delay-line:
107 $ref: /schemas/types.yaml#/definitions/uint32
108 description: |
109 Specify the number of delay cells for override mode.
110 This is used to set the clock delay for DLL(Delay Line) on override mode
111 to select a proper data sampling window in case the clock quality is not good
112 because the signal path is too long on the board. Please refer to eSDHC/uSDHC
113 chapter, DLL (Delay Line) section in RM for details.
114 default: 0
115
116 voltage-ranges:
117 $ref: /schemas/types.yaml#/definitions/uint32-matrix
118 description: |
119 Specify the voltage range in case there are software transparent level
120 shifters on the outputs of the controller. Two cells are required, first
121 cell specifies minimum slot voltage (mV), second cell specifies maximum
122 slot voltage (mV).
123 items:
124 items:
125 - description: value for minimum slot voltage
126 - description: value for maximum slot voltage
127 maxItems: 1
128
129 fsl,tuning-start-tap:
130 $ref: /schemas/types.yaml#/definitions/uint32
131 description: |
132 Specify the start delay cell point when send first CMD19 in tuning procedure.
133 default: 0
134
135 fsl,tuning-step:
136 $ref: /schemas/types.yaml#/definitions/uint32
137 description: |
138 Specify the increasing delay cell steps in tuning procedure.
139 The uSDHC use one delay cell as default increasing step to do tuning process.
140 This property allows user to change the tuning step to more than one delay
141 cell which is useful for some special boards or cards when the default
142 tuning step can't find the proper delay window within limited tuning retries.
143 default: 0
144
145 fsl,strobe-dll-delay-target:
146 $ref: /schemas/types.yaml#/definitions/uint32
147 description: |
148 Specify the strobe dll control slave delay target.
149 This delay target programming host controller loopback read clock, and this
150 property allows user to change the delay target for the strobe input read clock.
151 If not use this property, driver default set the delay target to value 7.
152 Only eMMC HS400 mode need to take care of this property.
153 default: 0
154
155 clocks:
156 maxItems: 3
157 description:
158 Handle clocks for the sdhc controller.
159
160 clock-names:
161 items:
162 - const: ipg
163 - const: ahb
164 - const: per
165
Tom Rini6bb92fc2024-05-20 09:54:58 -0600166 iommus:
167 maxItems: 1
168
Tom Rini53633a82024-02-29 12:33:36 -0500169 power-domains:
170 maxItems: 1
171
172 pinctrl-names:
173 oneOf:
174 - minItems: 3
175 items:
176 - const: default
177 - const: state_100mhz
178 - const: state_200mhz
179 - const: sleep
Tom Rini6bb92fc2024-05-20 09:54:58 -0600180 - minItems: 2
181 items:
182 - const: default
183 - const: state_100mhz
184 - const: sleep
Tom Rini53633a82024-02-29 12:33:36 -0500185 - minItems: 1
186 items:
187 - const: default
188 - const: sleep
189
190required:
191 - compatible
192 - reg
193 - interrupts
194
195unevaluatedProperties: false
196
197examples:
198 - |
199 mmc@70004000 {
200 compatible = "fsl,imx51-esdhc";
201 reg = <0x70004000 0x4000>;
202 interrupts = <1>;
203 fsl,wp-controller;
204 };
205
206 mmc@70008000 {
207 compatible = "fsl,imx51-esdhc";
208 reg = <0x70008000 0x4000>;
209 interrupts = <2>;
210 cd-gpios = <&gpio1 6 0>; /* GPIO1_6 */
211 wp-gpios = <&gpio1 5 0>; /* GPIO1_5 */
212 };