Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / mmc / fsl-imx-esdhc.yaml
1 # 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
7 title: Freescale Enhanced Secure Digital Host Controller (eSDHC) for i.MX
8
9 maintainers:
10   - Shawn Guo <shawnguo@kernel.org>
11
12 allOf:
13   - $ref: sdhci-common.yaml#
14
15 description: |
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
22 properties:
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
58               - fsl,imx8ulp-usdhc
59               - fsl,imx93-usdhc
60               - fsl,imx95-usdhc
61           - 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
166   iommus:
167     maxItems: 1
168
169   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
180       - minItems: 2
181         items:
182           - const: default
183           - const: state_100mhz
184           - const: sleep
185       - minItems: 1
186         items:
187           - const: default
188           - const: sleep
189
190 required:
191   - compatible
192   - reg
193   - interrupts
194
195 unevaluatedProperties: false
196
197 examples:
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     };