Re: [PATCH 25/54] dt-bindings: mmc: Convert MMC Card binding to a schema

Rob Herring
2021-07-23T21:59:01Z

On Wed, Jul 21, 2021 at 04:03:55PM +0200, Maxime Ripard wrote:
> MMC Cards can have an optional Device Tree binding to add
> non-discoverable properties.
>
> Now that we have the DT validation in place, let's convert the device
> tree bindings for that driver over to a YAML schema.
>
> Some of these properties were already described in the MMC controller
> binding, even though they are not generic and do not apply to any
> device, so we took the occasion to fix this.
>
> Cc: linux-mmc@vger.kernel.org
> Cc: Ulf Hansson <ulf.hansson@linaro.org>
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
> .../devicetree/bindings/mmc/mmc-card.txt | 30 ------------
> .../devicetree/bindings/mmc/mmc-card.yaml | 48 +++++++++++++++++++
> .../bindings/mmc/mmc-controller.yaml | 6 ---
> 3 files changed, 48 insertions(+), 36 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/mmc/mmc-card.txt
> create mode 100644 Documentation/devicetree/bindings/mmc/mmc-card.yaml
>
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-card.txt b/Documentation/devicetree/bindings/mmc/mmc-card.txt
> deleted file mode 100644
> index 8d2d71758907..000000000000
> --- a/Documentation/devicetree/bindings/mmc/mmc-card.txt
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -mmc-card / eMMC bindings
> -------------------------
> -
> -This documents describes the devicetree bindings for a mmc-host controller
> -child node describing a mmc-card / an eMMC, see "Use of Function subnodes"
> -in mmc.txt
> -
> -Required properties:
> --compatible : Must be "mmc-card"
> --reg : Must be <0>
> -
> -Optional properties:
> --broken-hpi : Use this to indicate that the mmc-card has a broken hpi
> - implementation, and that hpi should not be used
> -
> -Example:
> -
> -&mmc2 {
> - pinctrl-names = "default";
> - pinctrl-0 = <&mmc2_pins_a>;
> - vmmc-supply = <&reg_vcc3v3>;
> - bus-width = <8>;
> - non-removable;
> -
> - mmccard: mmccard@0 {
> - reg = <0>;
> - compatible = "mmc-card";
> - broken-hpi;
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-card.yaml b/Documentation/devicetree/bindings/mmc/mmc-card.yaml
> new file mode 100644
> index 000000000000..aefdd8748b72
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mmc/mmc-card.yaml
> @@ -0,0 +1,48 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mmc/mmc-card.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MMC Card / eMMC Generic Device Tree Bindings
> +
> +maintainers:
> + - Ulf Hansson <ulf.hansson@linaro.org>
> +
> +description: |
> + This documents describes the devicetree bindings for a mmc-host controller
> + child node describing a mmc-card / an eMMC.
> +
> +properties:
> + compatible:
> + const: mmc-card
> +
> + reg:
> + const: 0
> +
> + broken-hpi:
> + $ref: /schemas/types.yaml#/definitions/flag
> + description:
> + Use this to indicate that the mmc-card has a broken hpi
> + implementation, and that hpi should not be used.
> +
> +required:
> + - compatible
> + - reg
> +
> +additionalProperties: true

Like what? If there's other properties, then there should really be a
specific compatible.

> +
> +examples:
> + - |
> + mmc {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + card@0 {
> + compatible = "mmc-card";
> + reg = <0>;
> + broken-hpi;
> + };
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/mmc/mmc-controller.yaml b/Documentation/devicetree/bindings/mmc/mmc-controller.yaml
> index 25ac8e200970..513f3c8758aa 100644
> --- a/Documentation/devicetree/bindings/mmc/mmc-controller.yaml
> +++ b/Documentation/devicetree/bindings/mmc/mmc-controller.yaml
> @@ -333,12 +333,6 @@ patternProperties:
> subnode describes. A value of 0 denotes the memory SD
> function, values from 1 to 7 denote the SDIO functions.
>
> - broken-hpi:
> - $ref: /schemas/types.yaml#/definitions/flag
> - description:
> - Use this to indicate that the mmc-card has a broken hpi
> - implementation, and that hpi should not be used.
> -
> required:
> - reg
>
> --
> 2.31.1