2020-06-22 08:54:07

by Jisheng Zhang

[permalink] [raw]
Subject: [PATCH v2] 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: Jisheng Zhang <[email protected]>
---
since v1:
- conver pwrseq to yaml format rather than fixing old docs

.../bindings/mmc/mmc-pwrseq-emmc.txt | 25 --------
.../bindings/mmc/mmc-pwrseq-emmc.yaml | 46 ++++++++++++++
.../bindings/mmc/mmc-pwrseq-sd8787.txt | 16 -----
.../bindings/mmc/mmc-pwrseq-sd8787.yaml | 39 ++++++++++++
.../bindings/mmc/mmc-pwrseq-simple.txt | 31 ----------
.../bindings/mmc/mmc-pwrseq-simple.yaml | 62 +++++++++++++++++++
6 files changed, 147 insertions(+), 72 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml
delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
create mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml

diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt
deleted file mode 100644
index 3d965d57e00b..000000000000
--- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-* 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>;
- }
diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml
new file mode 100644
index 000000000000..77f746f57284
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml
@@ -0,0 +1,46 @@
+# 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 <[email protected]>
+
+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>;
+ };
+...
diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt
deleted file mode 100644
index 22e9340e4ba2..000000000000
--- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-* 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>;
- }
diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml
new file mode 100644
index 000000000000..a68820d31d50
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml
@@ -0,0 +1,39 @@
+# 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 <[email protected]>
+
+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>;
+ };
+...
diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
deleted file mode 100644
index 9029b45b8a22..000000000000
--- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-* 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";
- }
diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml
new file mode 100644
index 000000000000..449215444723
--- /dev/null
+++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: GPL-2.0
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mmc/mmc-pwrseq-simple.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Simple MMC power sequence provider binding
+
+maintainers:
+ - Ulf Hansson <[email protected]>
+
+description:
+ 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.
+
+properties:
+ compatible:
+ const: mmc-pwrseq-simple
+
+ reset-gpios:
+ minItems: 1
+ description:
+ 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:
+ minItems: 1
+ description: Handle for the entry in clock-names.
+
+ clock-names:
+ items:
+ - const: ext_clock
+ description: External clock provided to the card.
+
+ post-power-on-delay-ms:
+ description:
+ Delay in ms after powering the card and de-asserting the
+ reset-gpios (if any).
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ power-off-delay-us:
+ description:
+ Delay in us after asserting the reset-gpios (if any)
+ during power off of the card.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+required:
+ - compatible
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ sdhci0_pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+ clocks = <&clk_32768_ck>;
+ clock-names = "ext_clock";
+ };
+...
--
2.27.0


2020-07-06 14:50:16

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: mmc: Convert pwrseq to json-schema

On Mon, 22 Jun 2020 at 10:51, Jisheng Zhang <[email protected]> wrote:
>
> 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: Jisheng Zhang <[email protected]>

Applied for next, thanks!

Kind regards
Uffe


> ---
> since v1:
> - conver pwrseq to yaml format rather than fixing old docs
>
> .../bindings/mmc/mmc-pwrseq-emmc.txt | 25 --------
> .../bindings/mmc/mmc-pwrseq-emmc.yaml | 46 ++++++++++++++
> .../bindings/mmc/mmc-pwrseq-sd8787.txt | 16 -----
> .../bindings/mmc/mmc-pwrseq-sd8787.yaml | 39 ++++++++++++
> .../bindings/mmc/mmc-pwrseq-simple.txt | 31 ----------
> .../bindings/mmc/mmc-pwrseq-simple.yaml | 62 +++++++++++++++++++
> 6 files changed, 147 insertions(+), 72 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt
> create mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml
> delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt
> create mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml
> delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
> create mode 100644 Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml
>
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt
> deleted file mode 100644
> index 3d965d57e00b..000000000000
> --- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.txt
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -* 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>;
> - }
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml
> new file mode 100644
> index 000000000000..77f746f57284
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-emmc.yaml
> @@ -0,0 +1,46 @@
> +# 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 <[email protected]>
> +
> +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>;
> + };
> +...
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt
> deleted file mode 100644
> index 22e9340e4ba2..000000000000
> --- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.txt
> +++ /dev/null
> @@ -1,16 +0,0 @@
> -* 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>;
> - }
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml
> new file mode 100644
> index 000000000000..a68820d31d50
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-sd8787.yaml
> @@ -0,0 +1,39 @@
> +# 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 <[email protected]>
> +
> +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>;
> + };
> +...
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
> deleted file mode 100644
> index 9029b45b8a22..000000000000
> --- a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -* 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";
> - }
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml
> new file mode 100644
> index 000000000000..449215444723
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.yaml
> @@ -0,0 +1,62 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mmc/mmc-pwrseq-simple.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Simple MMC power sequence provider binding
> +
> +maintainers:
> + - Ulf Hansson <[email protected]>
> +
> +description:
> + 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.
> +
> +properties:
> + compatible:
> + const: mmc-pwrseq-simple
> +
> + reset-gpios:
> + minItems: 1
> + description:
> + 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:
> + minItems: 1
> + description: Handle for the entry in clock-names.
> +
> + clock-names:
> + items:
> + - const: ext_clock
> + description: External clock provided to the card.
> +
> + post-power-on-delay-ms:
> + description:
> + Delay in ms after powering the card and de-asserting the
> + reset-gpios (if any).
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> + power-off-delay-us:
> + description:
> + Delay in us after asserting the reset-gpios (if any)
> + during power off of the card.
> + $ref: /schemas/types.yaml#/definitions/uint32
> +
> +required:
> + - compatible
> +
> +examples:
> + - |
> + #include <dt-bindings/gpio/gpio.h>
> + sdhci0_pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + reset-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
> + clocks = <&clk_32768_ck>;
> + clock-names = "ext_clock";
> + };
> +...
> --
> 2.27.0
>