Re: [PATCH v3 02/10] dt-bindings: sram: Convert Samsung Exynos SYSRAM bindings to json-schema

From: Rob Herring
Date: Thu Oct 10 2019 - 15:34:22 EST


On Wed, Oct 02, 2019 at 06:43:08PM +0200, Krzysztof Kozlowski wrote:
> Convert Samsung Exynos SYSRAM bindings to DT schema format using
> json-schema.
>
> Signed-off-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
>
> ---
>
> Changes since v2:
> 1. Use sram as name of node in example.
>
> Changes since v1:
> 1. Indent example with four spaces (more readable).
> ---
> .../devicetree/bindings/sram/samsung-sram.txt | 38 ------------
> .../bindings/sram/samsung-sram.yaml | 58 +++++++++++++++++++
> MAINTAINERS | 2 +-
> 3 files changed, 59 insertions(+), 39 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/sram/samsung-sram.txt
> create mode 100644 Documentation/devicetree/bindings/sram/samsung-sram.yaml


> diff --git a/Documentation/devicetree/bindings/sram/samsung-sram.yaml b/Documentation/devicetree/bindings/sram/samsung-sram.yaml
> new file mode 100644
> index 000000000000..3e77c434ecca
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/sram/samsung-sram.yaml
> @@ -0,0 +1,58 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/sram/samsung-sram.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Samsung Exynos SoC SYSRAM for SMP bringup
> +
> +maintainers:
> + - Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> +
> +description: |+
> + Samsung SMP-capable Exynos SoCs use part of the SYSRAM for the bringup
> + of the secondary cores. Once the core gets powered up it executes the
> + code that is residing at some specific location of the SYSRAM.
> +
> + Therefore reserved section sub-nodes have to be added to the mmio-sram
> + declaration. These nodes are of two types depending upon secure or
> + non-secure execution environment.
> +
> +allOf:
> + - $ref: "sram.yaml#"
> +
> +properties:
> + $nodename:
> + pattern: "^sysram(@.*)?"

As you are renaming all the node names, this will no longer work. If you
change it to 'sram', that's going to match others, but would still work
as long as the child node names are unique to Samsung. If you change
them to '*-sram' then, you'd have to come up with something else. That
probably means using 'compatible' strings. At that point, it's kind of
silly to just be validating what your are using to select the schema. It
may be better to just add the compatible strings into sram.yaml if
that's the only difference.

> +
> +patternProperties:
> + "^([a-z]*-)?sysram@[a-f0-9]$":
> + type: object
> +
> + properties:
> + compatible:
> + description:
> + Depending upon boot mode
> + enum:
> + - samsung,exynos4210-sysram # for Secure SYSRAM
> + - samsung,exynos4210-sysram-ns # for Non-secure SYSRAM
> +