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 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 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 - items: 95 - const: nxp,s32g3-usdhc 96 - const: nxp,s32g2-usdhc 97 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 169 iommus: 170 maxItems: 1 171 172 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 183 - minItems: 2 184 items: 185 - const: default 186 - const: state_100mhz 187 - const: sleep 188 - 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 }; 216