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