xref: /freebsd/sys/contrib/device-tree/Bindings/mmc/fsl-imx-esdhc.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mmc/fsl-imx-esdhc.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Freescale Enhanced Secure Digital Host Controller (eSDHC) for i.MX
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Shawn Guo <shawnguo@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel VadotallOf:
13fac71e4eSEmmanuel Vadot  - $ref: sdhci-common.yaml#
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadotdescription: |
16c66ec88fSEmmanuel Vadot  The Enhanced Secure Digital Host Controller on Freescale i.MX family
17c66ec88fSEmmanuel Vadot  provides an interface for MMC, SD, and SDIO types of memory cards.
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadot  This file documents differences between the core properties described
20c66ec88fSEmmanuel Vadot  by mmc.txt and the properties used by the sdhci-esdhc-imx driver.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadotproperties:
23c66ec88fSEmmanuel Vadot  compatible:
246be33864SEmmanuel Vadot    oneOf:
256be33864SEmmanuel Vadot      - enum:
26c66ec88fSEmmanuel Vadot          - fsl,imx25-esdhc
27c66ec88fSEmmanuel Vadot          - fsl,imx35-esdhc
28c66ec88fSEmmanuel Vadot          - fsl,imx51-esdhc
29c66ec88fSEmmanuel Vadot          - fsl,imx53-esdhc
30c66ec88fSEmmanuel Vadot          - fsl,imx6q-usdhc
31c66ec88fSEmmanuel Vadot          - fsl,imx6sl-usdhc
32c66ec88fSEmmanuel Vadot          - fsl,imx6sx-usdhc
33c66ec88fSEmmanuel Vadot          - fsl,imx7d-usdhc
34c66ec88fSEmmanuel Vadot          - fsl,imx7ulp-usdhc
35d5b0e70fSEmmanuel Vadot          - fsl,imx8mm-usdhc
36e67e8565SEmmanuel Vadot          - fsl,imxrt1050-usdhc
378cc087a1SEmmanuel Vadot          - nxp,s32g2-usdhc
386be33864SEmmanuel Vadot      - items:
39cb7aa33aSEmmanuel Vadot          - const: fsl,imx50-esdhc
40cb7aa33aSEmmanuel Vadot          - const: fsl,imx53-esdhc
41cb7aa33aSEmmanuel Vadot      - items:
42cb7aa33aSEmmanuel Vadot          - enum:
43cb7aa33aSEmmanuel Vadot              - fsl,imx6sll-usdhc
44cb7aa33aSEmmanuel Vadot              - fsl,imx6ull-usdhc
45f126890aSEmmanuel Vadot              - fsl,imx6ul-usdhc
46cb7aa33aSEmmanuel Vadot          - const: fsl,imx6sx-usdhc
47cb7aa33aSEmmanuel Vadot      - items:
48cb7aa33aSEmmanuel Vadot          - const: fsl,imx7d-usdhc
49cb7aa33aSEmmanuel Vadot          - const: fsl,imx6sl-usdhc
50cb7aa33aSEmmanuel Vadot      - items:
516be33864SEmmanuel Vadot          - enum:
526be33864SEmmanuel Vadot              - fsl,imx8mq-usdhc
536be33864SEmmanuel Vadot          - const: fsl,imx7d-usdhc
54e67e8565SEmmanuel Vadot      - items:
55e67e8565SEmmanuel Vadot          - enum:
56d5b0e70fSEmmanuel Vadot              - fsl,imx8mn-usdhc
57d5b0e70fSEmmanuel Vadot              - fsl,imx8mp-usdhc
58e67e8565SEmmanuel Vadot              - fsl,imx8ulp-usdhc
5901950c46SEmmanuel Vadot              - fsl,imx93-usdhc
6001950c46SEmmanuel Vadot              - fsl,imx95-usdhc
61e67e8565SEmmanuel Vadot          - const: fsl,imx8mm-usdhc
62d5b0e70fSEmmanuel Vadot      - items:
63d5b0e70fSEmmanuel Vadot          - enum:
648bab661aSEmmanuel Vadot              - fsl,imx8dxl-usdhc
65d5b0e70fSEmmanuel Vadot              - fsl,imx8qm-usdhc
66d5b0e70fSEmmanuel Vadot          - const: fsl,imx8qxp-usdhc
67d5b0e70fSEmmanuel Vadot      - items:
68d5b0e70fSEmmanuel Vadot          - enum:
69d5b0e70fSEmmanuel Vadot              - fsl,imx8mm-usdhc
70d5b0e70fSEmmanuel Vadot              - fsl,imx8mn-usdhc
71d5b0e70fSEmmanuel Vadot              - fsl,imx8mp-usdhc
72d5b0e70fSEmmanuel Vadot              - fsl,imx8qm-usdhc
73d5b0e70fSEmmanuel Vadot              - fsl,imx8qxp-usdhc
74d5b0e70fSEmmanuel Vadot          - const: fsl,imx7d-usdhc
75d5b0e70fSEmmanuel Vadot        deprecated: true
76d5b0e70fSEmmanuel Vadot      - items:
77d5b0e70fSEmmanuel Vadot          - enum:
78d5b0e70fSEmmanuel Vadot              - fsl,imx8mn-usdhc
79d5b0e70fSEmmanuel Vadot              - fsl,imx8mp-usdhc
80d5b0e70fSEmmanuel Vadot          - const: fsl,imx8mm-usdhc
81d5b0e70fSEmmanuel Vadot          - const: fsl,imx7d-usdhc
82d5b0e70fSEmmanuel Vadot        deprecated: true
83d5b0e70fSEmmanuel Vadot      - items:
84d5b0e70fSEmmanuel Vadot          - enum:
858bab661aSEmmanuel Vadot              - fsl,imx8dxl-usdhc
86d5b0e70fSEmmanuel Vadot              - fsl,imx8qm-usdhc
87d5b0e70fSEmmanuel Vadot          - const: fsl,imx8qxp-usdhc
88d5b0e70fSEmmanuel Vadot          - const: fsl,imx7d-usdhc
89d5b0e70fSEmmanuel Vadot        deprecated: true
908bab661aSEmmanuel Vadot      - items:
918bab661aSEmmanuel Vadot          - enum:
928bab661aSEmmanuel Vadot              - fsl,imxrt1170-usdhc
938bab661aSEmmanuel Vadot          - const: fsl,imxrt1050-usdhc
94*7d0873ebSEmmanuel Vadot      - items:
95*7d0873ebSEmmanuel Vadot          - const: nxp,s32g3-usdhc
96*7d0873ebSEmmanuel Vadot          - const: nxp,s32g2-usdhc
97c66ec88fSEmmanuel Vadot
98c66ec88fSEmmanuel Vadot  reg:
99c66ec88fSEmmanuel Vadot    maxItems: 1
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot  interrupts:
102c66ec88fSEmmanuel Vadot    maxItems: 1
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot  fsl,wp-controller:
105c66ec88fSEmmanuel Vadot    description: |
106c66ec88fSEmmanuel Vadot      boolean, if present, indicate to use controller internal write protection.
107c66ec88fSEmmanuel Vadot    type: boolean
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot  fsl,delay-line:
110c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
111c66ec88fSEmmanuel Vadot    description: |
112c66ec88fSEmmanuel Vadot      Specify the number of delay cells for override mode.
113c66ec88fSEmmanuel Vadot      This is used to set the clock delay for DLL(Delay Line) on override mode
114c66ec88fSEmmanuel Vadot      to select a proper data sampling window in case the clock quality is not good
115cb7aa33aSEmmanuel Vadot      because the signal path is too long on the board. Please refer to eSDHC/uSDHC
116c66ec88fSEmmanuel Vadot      chapter, DLL (Delay Line) section in RM for details.
117c66ec88fSEmmanuel Vadot    default: 0
118c66ec88fSEmmanuel Vadot
119c66ec88fSEmmanuel Vadot  voltage-ranges:
120cb7aa33aSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-matrix
121c66ec88fSEmmanuel Vadot    description: |
122c66ec88fSEmmanuel Vadot      Specify the voltage range in case there are software transparent level
123c66ec88fSEmmanuel Vadot      shifters on the outputs of the controller. Two cells are required, first
124c66ec88fSEmmanuel Vadot      cell specifies minimum slot voltage (mV), second cell specifies maximum
125c66ec88fSEmmanuel Vadot      slot voltage (mV).
126c66ec88fSEmmanuel Vadot    items:
127c66ec88fSEmmanuel Vadot      items:
128c66ec88fSEmmanuel Vadot        - description: value for minimum slot voltage
129c66ec88fSEmmanuel Vadot        - description: value for maximum slot voltage
130c66ec88fSEmmanuel Vadot    maxItems: 1
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot  fsl,tuning-start-tap:
133c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
134c66ec88fSEmmanuel Vadot    description: |
135c66ec88fSEmmanuel Vadot      Specify the start delay cell point when send first CMD19 in tuning procedure.
136c66ec88fSEmmanuel Vadot    default: 0
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadot  fsl,tuning-step:
139c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
140c66ec88fSEmmanuel Vadot    description: |
141c66ec88fSEmmanuel Vadot      Specify the increasing delay cell steps in tuning procedure.
142c66ec88fSEmmanuel Vadot      The uSDHC use one delay cell as default increasing step to do tuning process.
143c66ec88fSEmmanuel Vadot      This property allows user to change the tuning step to more than one delay
144cb7aa33aSEmmanuel Vadot      cell which is useful for some special boards or cards when the default
145c66ec88fSEmmanuel Vadot      tuning step can't find the proper delay window within limited tuning retries.
146c66ec88fSEmmanuel Vadot    default: 0
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadot  fsl,strobe-dll-delay-target:
149c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
150c66ec88fSEmmanuel Vadot    description: |
151c66ec88fSEmmanuel Vadot      Specify the strobe dll control slave delay target.
152c66ec88fSEmmanuel Vadot      This delay target programming host controller loopback read clock, and this
153c66ec88fSEmmanuel Vadot      property allows user to change the delay target for the strobe input read clock.
154c66ec88fSEmmanuel Vadot      If not use this property, driver default set the delay target to value 7.
155c66ec88fSEmmanuel Vadot      Only eMMC HS400 mode need to take care of this property.
156c66ec88fSEmmanuel Vadot    default: 0
157c66ec88fSEmmanuel Vadot
1582eb4d8dcSEmmanuel Vadot  clocks:
1592eb4d8dcSEmmanuel Vadot    maxItems: 3
1602eb4d8dcSEmmanuel Vadot    description:
1612eb4d8dcSEmmanuel Vadot      Handle clocks for the sdhc controller.
1622eb4d8dcSEmmanuel Vadot
1632eb4d8dcSEmmanuel Vadot  clock-names:
1642eb4d8dcSEmmanuel Vadot    items:
1652eb4d8dcSEmmanuel Vadot      - const: ipg
1662eb4d8dcSEmmanuel Vadot      - const: ahb
1672eb4d8dcSEmmanuel Vadot      - const: per
1682eb4d8dcSEmmanuel Vadot
16901950c46SEmmanuel Vadot  iommus:
17001950c46SEmmanuel Vadot    maxItems: 1
17101950c46SEmmanuel Vadot
172e67e8565SEmmanuel Vadot  power-domains:
173e67e8565SEmmanuel Vadot    maxItems: 1
174e67e8565SEmmanuel Vadot
1752eb4d8dcSEmmanuel Vadot  pinctrl-names:
176354d7675SEmmanuel Vadot    oneOf:
177354d7675SEmmanuel Vadot      - minItems: 3
1782eb4d8dcSEmmanuel Vadot        items:
1792eb4d8dcSEmmanuel Vadot          - const: default
1802eb4d8dcSEmmanuel Vadot          - const: state_100mhz
1812eb4d8dcSEmmanuel Vadot          - const: state_200mhz
1822eb4d8dcSEmmanuel Vadot          - const: sleep
18301950c46SEmmanuel Vadot      - minItems: 2
18401950c46SEmmanuel Vadot        items:
18501950c46SEmmanuel Vadot          - const: default
18601950c46SEmmanuel Vadot          - const: state_100mhz
18701950c46SEmmanuel Vadot          - const: sleep
188354d7675SEmmanuel Vadot      - minItems: 1
189354d7675SEmmanuel Vadot        items:
190354d7675SEmmanuel Vadot          - const: default
191354d7675SEmmanuel Vadot          - const: sleep
1922eb4d8dcSEmmanuel Vadot
193c66ec88fSEmmanuel Vadotrequired:
194c66ec88fSEmmanuel Vadot  - compatible
195c66ec88fSEmmanuel Vadot  - reg
196c66ec88fSEmmanuel Vadot  - interrupts
197c66ec88fSEmmanuel Vadot
198c66ec88fSEmmanuel VadotunevaluatedProperties: false
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadotexamples:
201c66ec88fSEmmanuel Vadot  - |
202c66ec88fSEmmanuel Vadot    mmc@70004000 {
203c66ec88fSEmmanuel Vadot        compatible = "fsl,imx51-esdhc";
204c66ec88fSEmmanuel Vadot        reg = <0x70004000 0x4000>;
205c66ec88fSEmmanuel Vadot        interrupts = <1>;
206c66ec88fSEmmanuel Vadot        fsl,wp-controller;
207c66ec88fSEmmanuel Vadot    };
208c66ec88fSEmmanuel Vadot
209c66ec88fSEmmanuel Vadot    mmc@70008000 {
210c66ec88fSEmmanuel Vadot        compatible = "fsl,imx51-esdhc";
211c66ec88fSEmmanuel Vadot        reg = <0x70008000 0x4000>;
212c66ec88fSEmmanuel Vadot        interrupts = <2>;
213c66ec88fSEmmanuel Vadot        cd-gpios = <&gpio1 6 0>; /* GPIO1_6 */
214c66ec88fSEmmanuel Vadot        wp-gpios = <&gpio1 5 0>; /* GPIO1_5 */
215c66ec88fSEmmanuel Vadot    };
216