xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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