Message ID | 20191002164316.14905-2-krzk@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,01/10] dt-bindings: sram: Convert SRAM bindings to json-schema | expand |
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@kernel.org> > > --- > > 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@kernel.org> > + > +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 > +
On Thu, Oct 10, 2019 at 02:33:56PM -0500, Rob Herring wrote: > 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@kernel.org> > > > > --- > > > > 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@kernel.org> > > + > > +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. You're right. I'll move them to sram.yaml and maybe add also example. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/sram/samsung-sram.txt b/Documentation/devicetree/bindings/sram/samsung-sram.txt deleted file mode 100644 index 61a9bbed303d..000000000000 --- a/Documentation/devicetree/bindings/sram/samsung-sram.txt +++ /dev/null @@ -1,38 +0,0 @@ -Samsung Exynos SYSRAM for SMP bringup: ------------------------------------- - -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. - -Required sub-node properties: -- compatible : depending upon boot mode, should be - "samsung,exynos4210-sysram" : for Secure SYSRAM - "samsung,exynos4210-sysram-ns" : for Non-secure SYSRAM - -The rest of the properties should follow the generic mmio-sram discription -found in Documentation/devicetree/bindings/sram/sram.txt - -Example: - - sysram@2020000 { - compatible = "mmio-sram"; - reg = <0x02020000 0x54000>; - #address-cells = <1>; - #size-cells = <1>; - ranges = <0 0x02020000 0x54000>; - - smp-sysram@0 { - compatible = "samsung,exynos4210-sysram"; - reg = <0x0 0x1000>; - }; - - smp-sysram@53000 { - compatible = "samsung,exynos4210-sysram-ns"; - reg = <0x53000 0x1000>; - }; - }; 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@kernel.org> + +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(@.*)?" + +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 + +examples: + - | + sram@2020000 { + compatible = "mmio-sram"; + reg = <0x02020000 0x54000>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x02020000 0x54000>; + + smp-sysram@0 { + compatible = "samsung,exynos4210-sysram"; + reg = <0x0 0x1000>; + }; + + smp-sysram@53000 { + compatible = "samsung,exynos4210-sysram-ns"; + reg = <0x53000 0x1000>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index b26b2009c230..53b426e27f30 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2235,7 +2235,7 @@ F: drivers/soc/samsung/ F: include/linux/soc/samsung/ F: Documentation/arm/samsung/ F: Documentation/devicetree/bindings/arm/samsung/ -F: Documentation/devicetree/bindings/sram/samsung-sram.txt +F: Documentation/devicetree/bindings/sram/samsung-sram.yaml F: Documentation/devicetree/bindings/power/pd-samsung.txt N: exynos
Convert Samsung Exynos SYSRAM bindings to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> --- 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