Commit 72f47aec authored by Jisheng Zhang's avatar Jisheng Zhang Committed by Ulf Hansson
Browse files

dt-bindings: mmc: Convert pwrseq to json-schema



Convert the pwrseq binding to DT schema format using json-schema.

At the same time, fix a couple of issues with the examples discovered by
the validation tool -- missing ";"

Signed-off-by: default avatarJisheng Zhang <Jisheng.Zhang@synaptics.com>
Link: https://lore.kernel.org/r/20200622164431.3dbc8c5a@xhacker.debian


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent b9a349fd
Loading
Loading
Loading
Loading
+0 −25
Original line number Diff line number Diff line
* The simple eMMC hardware reset provider

The purpose of this driver is to perform standard eMMC hw reset
procedure, as described by Jedec 4.4 specification. This procedure is
performed just after MMC core enabled power to the given mmc host (to
fix possible issues if bootloader has left eMMC card in initialized or
unknown state), and before performing complete system reboot (also in
case of emergency reboot call). The latter is needed on boards, which
doesn't have hardware reset logic connected to emmc card and (limited or
broken) ROM bootloaders are unable to read second stage from the emmc
card if the card is left in unknown or already initialized state.

Required properties:
- compatible : contains "mmc-pwrseq-emmc".
- reset-gpios : contains a GPIO specifier. The reset GPIO is asserted
	and then deasserted to perform eMMC card reset. To perform
	reset procedure as described in Jedec 4.4 specification, the
	gpio line should be defined as GPIO_ACTIVE_LOW.

Example:

	sdhci0_pwrseq {
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
	}
+46 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/mmc-pwrseq-emmc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Simple eMMC hardware reset provider binding

maintainers:
  - Ulf Hansson <ulf.hansson@linaro.org>

description:
  The purpose of this driver is to perform standard eMMC hw reset
  procedure, as described by Jedec 4.4 specification. This procedure is
  performed just after MMC core enabled power to the given mmc host (to
  fix possible issues if bootloader has left eMMC card in initialized or
  unknown state), and before performing complete system reboot (also in
  case of emergency reboot call). The latter is needed on boards, which
  doesn't have hardware reset logic connected to emmc card and (limited or
  broken) ROM bootloaders are unable to read second stage from the emmc
  card if the card is left in unknown or already initialized state.

properties:
  compatible:
    const: mmc-pwrseq-emmc

  reset-gpios:
    minItems: 1
    description:
      contains a GPIO specifier. The reset GPIO is asserted
      and then deasserted to perform eMMC card reset. To perform
      reset procedure as described in Jedec 4.4 specification, the
      gpio line should be defined as GPIO_ACTIVE_LOW.

required:
  - compatible
  - reset-gpios

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    sdhci0_pwrseq {
      compatible = "mmc-pwrseq-emmc";
      reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
    };
...
+0 −16
Original line number Diff line number Diff line
* Marvell SD8787 power sequence provider

Required properties:
- compatible: must be "mmc-pwrseq-sd8787".
- powerdown-gpios: contains a power down GPIO specifier with the
		   default active state
- reset-gpios: contains a reset GPIO specifier with the default
		   active state

Example:

	wifi_pwrseq: wifi_pwrseq {
		compatible = "mmc-pwrseq-sd8787";
		powerdown-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
		reset-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
	}
+39 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/mmc-pwrseq-sd8787.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell SD8787 power sequence provider binding

maintainers:
  - Ulf Hansson <ulf.hansson@linaro.org>

properties:
  compatible:
    const: mmc-pwrseq-sd8787

  powerdown-gpios:
    minItems: 1
    description:
      contains a power down GPIO specifier with the default active state

  reset-gpios:
    minItems: 1
    description:
      contains a reset GPIO specifier with the default active state

required:
  - compatible
  - powerdown-gpios
  - reset-gpios

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    wifi_pwrseq: wifi_pwrseq {
      compatible = "mmc-pwrseq-sd8787";
      powerdown-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
      reset-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
    };
...
+0 −31
Original line number Diff line number Diff line
* The simple MMC power sequence provider

The purpose of the simple MMC power sequence provider is to supports a set of
common properties between various SOC designs. It thus enables us to use the
same provider for several SOC designs.

Required properties:
- compatible : contains "mmc-pwrseq-simple".

Optional properties:
- reset-gpios : contains a list of GPIO specifiers. The reset GPIOs are asserted
	at initialization and prior we start the power up procedure of the card.
	They will be de-asserted right after the power has been provided to the
	card.
- clocks : Must contain an entry for the entry in clock-names.
  See ../clocks/clock-bindings.txt for details.
- clock-names : Must include the following entry:
  "ext_clock" (External clock provided to the card).
- post-power-on-delay-ms : Delay in ms after powering the card and
	de-asserting the reset-gpios (if any)
- power-off-delay-us : Delay in us after asserting the reset-gpios (if any)
	during power off of the card.

Example:

	sdhci0_pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
		clocks = <&clk_32768_ck>;
		clock-names = "ext_clock";
	}
Loading