1 # SPDX-License-Identifier: GPL-2.0
4 $id: http://devicetree.org/schemas/mmc/mmc-controller.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: MMC Controller Generic Binding
10 - Ulf Hansson <ulf.hansson@linaro.org>
13 These properties are common to multiple MMC host controllers. Any host
14 that requires the respective functionality should implement them using
17 It is possible to assign a fixed index mmcN to an MMC host controller
18 (and the corresponding mmcblkN devices) by defining an alias in the
19 /aliases device tree node.
23 pattern: "^mmc(@.*)?$"
28 The cell is the slot ID if a function subnode is used.
34 # If none of these properties are supplied, the host native card
35 # detect will be used. Only one of them should be provided.
38 $ref: /schemas/types.yaml#/definitions/flag
40 There is no card detection available; polling must be used.
44 The card detection will be done using the GPIO provided.
47 $ref: /schemas/types.yaml#/definitions/flag
49 Non-removable slot (like eMMC); assume always present.
51 # *NOTE* on CD and WP polarity. To use common for all SD/MMC host
52 # controllers line polarity properties, we have to fix the meaning
53 # of the "normal" and "inverted" line levels. We choose to follow
54 # the SDHCI standard, which specifies both those lines as "active
55 # low." Therefore, using the "cd-inverted" property means, that the
56 # CD line is active high, i.e. it is high, when a card is
57 # inserted. Similar logic applies to the "wp-inverted" property.
59 # CD and WP lines can be implemented on the hardware in one of two
60 # ways: as GPIOs, specified in cd-gpios and wp-gpios properties, or
61 # as dedicated pins. Polarity of dedicated pins can be specified,
62 # using *-inverted properties. GPIO polarity can also be specified
63 # using the GPIO_ACTIVE_LOW flag. This creates an ambiguity in the
64 # latter case. We choose to use the XOR logic for GPIO CD and WP
65 # lines. This means, the two properties are "superimposed," for
66 # example leaving the GPIO_ACTIVE_LOW flag clear and specifying the
67 # respective *-inverted property property results in a
68 # double-inversion and actually means the "normal" line polarity is
71 $ref: /schemas/types.yaml#/definitions/flag
73 The Write Protect line polarity is inverted.
76 $ref: /schemas/types.yaml#/definitions/flag
78 The CD line polarity is inverted.
85 $ref: /schemas/types.yaml#/definitions/uint32
91 Maximum operating frequency of the bus.
92 $ref: /schemas/types.yaml#/definitions/uint32
97 $ref: /schemas/types.yaml#/definitions/flag
99 When set, no physical write-protect line is present. This
100 property should only be specified when the controller has a
101 dedicated write-protect detection logic. If a GPIO is always used
102 for the write-protect detection logic, it is sufficient to not
103 specify the wp-gpios property in the absence of a write-protect
104 line. Not used in combination with eMMC or SDIO.
108 GPIO to use for the write-protect detection.
110 cd-debounce-delay-ms:
112 Set delay time before detecting card after card insert
116 $ref: /schemas/types.yaml#/definitions/flag
118 When specified, denotes that 1.8V card voltage is not supported
119 on this system, even if the controller claims it.
122 $ref: /schemas/types.yaml#/definitions/flag
124 SD high-speed timing is supported.
127 $ref: /schemas/types.yaml#/definitions/flag
129 MMC high-speed timing is supported.
132 $ref: /schemas/types.yaml#/definitions/flag
134 SD UHS SDR12 speed is supported.
137 $ref: /schemas/types.yaml#/definitions/flag
139 SD UHS SDR25 speed is supported.
142 $ref: /schemas/types.yaml#/definitions/flag
144 SD UHS SDR50 speed is supported.
147 $ref: /schemas/types.yaml#/definitions/flag
149 SD UHS SDR104 speed is supported.
152 $ref: /schemas/types.yaml#/definitions/flag
154 SD UHS DDR50 speed is supported.
157 $ref: /schemas/types.yaml#/definitions/flag
159 Powering off the card is safe.
162 $ref: /schemas/types.yaml#/definitions/flag
164 eMMC hardware reset is supported
167 $ref: /schemas/types.yaml#/definitions/flag
169 enable SDIO IRQ signalling on this interface
172 $ref: /schemas/types.yaml#/definitions/flag
174 Full power cycle of the card is supported.
176 full-pwr-cycle-in-suspend:
177 $ref: /schemas/types.yaml#/definitions/flag
179 Full power cycle of the card in suspend is supported.
182 $ref: /schemas/types.yaml#/definitions/flag
184 eMMC high-speed DDR mode (1.2V I/O) is supported.
187 $ref: /schemas/types.yaml#/definitions/flag
189 eMMC high-speed DDR mode (1.8V I/O) is supported.
192 $ref: /schemas/types.yaml#/definitions/flag
194 eMMC high-speed DDR mode (3.3V I/O) is supported.
197 $ref: /schemas/types.yaml#/definitions/flag
199 eMMC HS200 mode (1.2V I/O) is supported.
202 $ref: /schemas/types.yaml#/definitions/flag
204 eMMC HS200 mode (1.8V I/O) is supported.
207 $ref: /schemas/types.yaml#/definitions/flag
209 eMMC HS400 mode (1.2V I/O) is supported.
212 $ref: /schemas/types.yaml#/definitions/flag
214 eMMC HS400 mode (1.8V I/O) is supported.
216 mmc-hs400-enhanced-strobe:
217 $ref: /schemas/types.yaml#/definitions/flag
219 eMMC HS400 enhanced strobe mode is supported
223 Value the card Driver Stage Register (DSR) should be programmed
225 $ref: /schemas/types.yaml#/definitions/uint32
230 $ref: /schemas/types.yaml#/definitions/flag
232 Controller is limited to send SDIO commands during
236 $ref: /schemas/types.yaml#/definitions/flag
238 Controller is limited to send SD commands during initialization.
241 $ref: /schemas/types.yaml#/definitions/flag
243 Controller is limited to send MMC commands during
246 fixed-emmc-driver-type:
248 For non-removable eMMC, enforce this driver type. The value is
249 the driver type as specified in the eMMC specification (table
250 206 in spec version 5.1)
251 $ref: /schemas/types.yaml#/definitions/uint32
255 post-power-on-delay-ms:
257 It was invented for MMC pwrseq-simple which could be referred to
258 mmc-pwrseq-simple.txt. But now it\'s reused as a tunable delay
259 waiting for I/O signalling and card power supply to be stable,
260 regardless of whether pwrseq-simple is used. Default to 10ms if
262 $ref: /schemas/types.yaml#/definitions/uint32
266 $ref: /schemas/types.yaml#/definitions/flag
268 The presence of this property indicates that the corresponding
269 MMC host controller supports HW command queue feature.
272 $ref: /schemas/types.yaml#/definitions/flag
274 The presence of this property indicates that the MMC
275 controller\'s command queue engine (CQE) does not support direct
278 keep-power-in-suspend:
279 $ref: /schemas/types.yaml#/definitions/flag
281 SDIO only. Preserves card power during a suspend/resume cycle.
283 # Deprecated: enable-sdio-wakeup
285 $ref: /schemas/types.yaml#/definitions/flag
287 SDIO only. Enables wake up of host system on SDIO IRQ assertion.
291 Supply for the card power
295 Supply for the bus IO line power
298 $ref: /schemas/types.yaml#/definitions/phandle
300 System-on-Chip designs may specify a specific MMC power
301 sequence. To successfully detect an (e)MMC/SD/SDIO card, that
302 power sequence must be maintained while initializing the card.
308 On embedded systems the cards connected to a host may need
309 additional properties. These can be specified in subnodes to the
310 host controller node. The subnodes are identified by the
311 standard \'reg\' property. Which information exactly can be
312 specified depends on the bindings for the SDIO function driver
313 for the subnode, as specified by the compatible string.
318 Name of SDIO function following generic names recommended
326 Must contain the SDIO function number of the function this
327 subnode describes. A value of 0 denotes the memory SD
328 function, values from 1 to 7 denote the SDIO functions.
331 $ref: /schemas/types.yaml#/definitions/flag
333 Use this to indicate that the mmc-card has a broken hpi
334 implementation, and that hpi should not be used.
339 "^clk-phase-(legacy|sd-hs|mmc-(hs|hs[24]00|ddr52)|uhs-(sdr(12|25|50|104)|ddr50))$":
340 $ref: /schemas/types.yaml#/definitions/uint32-array
348 Set the clock (phase) delays which are to be configured in the
349 controller while switching to particular speed mode. These values
350 are in pair of degrees.
353 cd-debounce-delay-ms: [ cd-gpios ]
354 fixed-emmc-driver-type: [ non-removable ]
359 compatible = "sdhci";
360 reg = <0xab000000 0x200>;
363 cd-gpios = <&gpio 69 0>;
365 wp-gpios = <&gpio 70 0>;
366 max-frequency = <50000000>;
367 keep-power-in-suspend;
369 mmc-pwrseq = <&sdhci0_pwrseq>;
370 clk-phase-sd-hs = <63>, <72>;
375 #address-cells = <1>;
377 reg = <0x1c12000 0x200>;
378 pinctrl-names = "default";
379 pinctrl-0 = <&mmc3_pins_a>;
380 vmmc-supply = <®_vmmc3>;
383 mmc-pwrseq = <&sdhci0_pwrseq>;
387 compatible = "brcm,bcm43xx-fmac";
388 interrupt-parent = <&pio>;
390 interrupt-names = "host-wake";