blob: b9b999570529014129886e447b8b308e4a5c04a2 [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
Tom Rini762f85b2024-07-20 11:15:10 -060094 - items:
95 - const: nxp,s32g3-usdhc
96 - const: nxp,s32g2-usdhc
Tom Rini53633a82024-02-29 12:33:36 -050097
98 reg:
99 maxItems: 1
100
101 interrupts:
102 maxItems: 1
103
104 fsl,wp-controller:
105 description: |
106 boolean, if present, indicate to use controller internal write protection.
107 type: boolean
108
109 fsl,delay-line:
110 $ref: /schemas/types.yaml#/definitions/uint32
111 description: |
112 Specify the number of delay cells for override mode.
113 This is used to set the clock delay for DLL(Delay Line) on override mode
114 to select a proper data sampling window in case the clock quality is not good
115 because the signal path is too long on the board. Please refer to eSDHC/uSDHC
116 chapter, DLL (Delay Line) section in RM for details.
117 default: 0
118
119 voltage-ranges:
120 $ref: /schemas/types.yaml#/definitions/uint32-matrix
121 description: |
122 Specify the voltage range in case there are software transparent level
123 shifters on the outputs of the controller. Two cells are required, first
124 cell specifies minimum slot voltage (mV), second cell specifies maximum
125 slot voltage (mV).
126 items:
127 items:
128 - description: value for minimum slot voltage
129 - description: value for maximum slot voltage
130 maxItems: 1
131
132 fsl,tuning-start-tap:
133 $ref: /schemas/types.yaml#/definitions/uint32
134 description: |
135 Specify the start delay cell point when send first CMD19 in tuning procedure.
136 default: 0
137
138 fsl,tuning-step:
139 $ref: /schemas/types.yaml#/definitions/uint32
140 description: |
141 Specify the increasing delay cell steps in tuning procedure.
142 The uSDHC use one delay cell as default increasing step to do tuning process.
143 This property allows user to change the tuning step to more than one delay
144 cell which is useful for some special boards or cards when the default
145 tuning step can't find the proper delay window within limited tuning retries.
146 default: 0
147
148 fsl,strobe-dll-delay-target:
149 $ref: /schemas/types.yaml#/definitions/uint32
150 description: |
151 Specify the strobe dll control slave delay target.
152 This delay target programming host controller loopback read clock, and this
153 property allows user to change the delay target for the strobe input read clock.
154 If not use this property, driver default set the delay target to value 7.
155 Only eMMC HS400 mode need to take care of this property.
156 default: 0
157
158 clocks:
159 maxItems: 3
160 description:
161 Handle clocks for the sdhc controller.
162
163 clock-names:
164 items:
165 - const: ipg
166 - const: ahb
167 - const: per
168
Tom Rini6bb92fc2024-05-20 09:54:58 -0600169 iommus:
170 maxItems: 1
171
Tom Rini53633a82024-02-29 12:33:36 -0500172 power-domains:
173 maxItems: 1
174
175 pinctrl-names:
176 oneOf:
177 - minItems: 3
178 items:
179 - const: default
180 - const: state_100mhz
181 - const: state_200mhz
182 - const: sleep
Tom Rini6bb92fc2024-05-20 09:54:58 -0600183 - minItems: 2
184 items:
185 - const: default
186 - const: state_100mhz
187 - const: sleep
Tom Rini53633a82024-02-29 12:33:36 -0500188 - minItems: 1
189 items:
190 - const: default
191 - const: sleep
192
193required:
194 - compatible
195 - reg
196 - interrupts
197
198unevaluatedProperties: false
199
200examples:
201 - |
202 mmc@70004000 {
203 compatible = "fsl,imx51-esdhc";
204 reg = <0x70004000 0x4000>;
205 interrupts = <1>;
206 fsl,wp-controller;
207 };
208
209 mmc@70008000 {
210 compatible = "fsl,imx51-esdhc";
211 reg = <0x70008000 0x4000>;
212 interrupts = <2>;
213 cd-gpios = <&gpio1 6 0>; /* GPIO1_6 */
214 wp-gpios = <&gpio1 5 0>; /* GPIO1_5 */
215 };