1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/mmc/mmc-pwrseq-emmc.yaml# 5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml# 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: Simple eMMC hardware reset provider binding 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmaintainers: 10*4882a593Smuzhiyun - Ulf Hansson <ulf.hansson@linaro.org> 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundescription: 13*4882a593Smuzhiyun The purpose of this driver is to perform standard eMMC hw reset 14*4882a593Smuzhiyun procedure, as described by Jedec 4.4 specification. This procedure is 15*4882a593Smuzhiyun performed just after MMC core enabled power to the given mmc host (to 16*4882a593Smuzhiyun fix possible issues if bootloader has left eMMC card in initialized or 17*4882a593Smuzhiyun unknown state), and before performing complete system reboot (also in 18*4882a593Smuzhiyun case of emergency reboot call). The latter is needed on boards, which 19*4882a593Smuzhiyun doesn't have hardware reset logic connected to emmc card and (limited or 20*4882a593Smuzhiyun broken) ROM bootloaders are unable to read second stage from the emmc 21*4882a593Smuzhiyun card if the card is left in unknown or already initialized state. 22*4882a593Smuzhiyun 23*4882a593Smuzhiyunproperties: 24*4882a593Smuzhiyun compatible: 25*4882a593Smuzhiyun const: mmc-pwrseq-emmc 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun reset-gpios: 28*4882a593Smuzhiyun minItems: 1 29*4882a593Smuzhiyun description: 30*4882a593Smuzhiyun contains a GPIO specifier. The reset GPIO is asserted 31*4882a593Smuzhiyun and then deasserted to perform eMMC card reset. To perform 32*4882a593Smuzhiyun reset procedure as described in Jedec 4.4 specification, the 33*4882a593Smuzhiyun gpio line should be defined as GPIO_ACTIVE_LOW. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyunrequired: 36*4882a593Smuzhiyun - compatible 37*4882a593Smuzhiyun - reset-gpios 38*4882a593Smuzhiyun 39*4882a593SmuzhiyunadditionalProperties: false 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunexamples: 42*4882a593Smuzhiyun - | 43*4882a593Smuzhiyun #include <dt-bindings/gpio/gpio.h> 44*4882a593Smuzhiyun sdhci0_pwrseq { 45*4882a593Smuzhiyun compatible = "mmc-pwrseq-emmc"; 46*4882a593Smuzhiyun reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun... 49