Message ID | 20220926124757.475471-1-krzysztof.kozlowski@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | dt-bindings: samsung: soc: match preferred naming in entire compatible | expand |
On Mon, Sep 26, 2022 at 02:47:57PM +0200, Krzysztof Kozlowski wrote: > Compatible is a string-array, therefore the "select" should look for > anything containing Samsung SoC part. This allows to validate cases > like: > - "samsung,exynos5250-gsc", "samsung,exynos5-gsc" > - "samsung,exynos5250-pmu", "syscon" > - "tesla,fsd-mct", "samsung,exynos4210-mct" > > Since Tesla FSD builts on top of Exynos blocks, add an adidtional > pattern for it. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > --- > .../bindings/arm/samsung/samsung-soc.yaml | 26 +++++++++++++++---- > 1 file changed, 21 insertions(+), 5 deletions(-) > > diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml > index 653f85997643..bb1fdc205b44 100644 > --- a/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml > +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml > @@ -18,17 +18,33 @@ description: | > samsung,exynos5433-cmu-isp > > select: > - properties: > - compatible: > - pattern: "^samsung,.*(s3c|s5pv|exynos)[0-9a-z]+.*$" > + allOf: > + - properties: > + $nodename: > + pattern: '^[a-z]' Why do you need this? > + - properties: > + compatible: > + contains: > + pattern: "^samsung,.*(s3c|s5pv|exynos)[0-9a-z]+.*$" > required: > - compatible > > properties: > compatible: > oneOf: > - - description: Preferred naming style for compatibles of SoC components > - pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" > + - description: Preferred naming style for compatibles of S3C/S5P/Exynos SoC components > + minItems: 1 > + items: > + - pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" > + - {} > + - {} Wouldn't just contains be fine here too: contains: pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" > + > + - description: Preferred naming style for compatibles of Tesla FSD SoC components > + minItems: 1 > + items: > + - pattern: "^tesla,fsd-.*$" > + - {} > + - {} > > # Legacy compatibles with wild-cards - list cannot grow with new bindings: > - enum: > -- > 2.34.1 > >
On 29/09/2022 23:28, Rob Herring wrote: > On Mon, Sep 26, 2022 at 02:47:57PM +0200, Krzysztof Kozlowski wrote: >> Compatible is a string-array, therefore the "select" should look for >> anything containing Samsung SoC part. This allows to validate cases >> like: >> - "samsung,exynos5250-gsc", "samsung,exynos5-gsc" >> - "samsung,exynos5250-pmu", "syscon" >> - "tesla,fsd-mct", "samsung,exynos4210-mct" >> >> Since Tesla FSD builts on top of Exynos blocks, add an adidtional >> pattern for it. >> >> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> >> --- >> .../bindings/arm/samsung/samsung-soc.yaml | 26 +++++++++++++++---- >> 1 file changed, 21 insertions(+), 5 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml >> index 653f85997643..bb1fdc205b44 100644 >> --- a/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml >> +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml >> @@ -18,17 +18,33 @@ description: | >> samsung,exynos5433-cmu-isp >> >> select: >> - properties: >> - compatible: >> - pattern: "^samsung,.*(s3c|s5pv|exynos)[0-9a-z]+.*$" >> + allOf: >> + - properties: >> + $nodename: >> + pattern: '^[a-z]' > > Why do you need this? Because otherwise I am matching top-level board compatible, which obviously do not fall into my patterns. > >> + - properties: >> + compatible: >> + contains: >> + pattern: "^samsung,.*(s3c|s5pv|exynos)[0-9a-z]+.*$" >> required: >> - compatible >> >> properties: >> compatible: >> oneOf: >> - - description: Preferred naming style for compatibles of SoC components >> - pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" >> + - description: Preferred naming style for compatibles of S3C/S5P/Exynos SoC components >> + minItems: 1 >> + items: >> + - pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" >> + - {} >> + - {} > > Wouldn't just contains be fine here too: > > contains: > pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" Somehow it does not work like it should - nodes with wrong compatibles pass. I tested with fake compatibles like: samsung,cmu-exynos5433-cmu-top samsung,exynos54xx-cmu-cpif Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml b/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml index 653f85997643..bb1fdc205b44 100644 --- a/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml +++ b/Documentation/devicetree/bindings/arm/samsung/samsung-soc.yaml @@ -18,17 +18,33 @@ description: | samsung,exynos5433-cmu-isp select: - properties: - compatible: - pattern: "^samsung,.*(s3c|s5pv|exynos)[0-9a-z]+.*$" + allOf: + - properties: + $nodename: + pattern: '^[a-z]' + - properties: + compatible: + contains: + pattern: "^samsung,.*(s3c|s5pv|exynos)[0-9a-z]+.*$" required: - compatible properties: compatible: oneOf: - - description: Preferred naming style for compatibles of SoC components - pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" + - description: Preferred naming style for compatibles of S3C/S5P/Exynos SoC components + minItems: 1 + items: + - pattern: "^samsung,(s3c|s5pv|exynos|exynosautov)[0-9]+-.*$" + - {} + - {} + + - description: Preferred naming style for compatibles of Tesla FSD SoC components + minItems: 1 + items: + - pattern: "^tesla,fsd-.*$" + - {} + - {} # Legacy compatibles with wild-cards - list cannot grow with new bindings: - enum:
Compatible is a string-array, therefore the "select" should look for anything containing Samsung SoC part. This allows to validate cases like: - "samsung,exynos5250-gsc", "samsung,exynos5-gsc" - "samsung,exynos5250-pmu", "syscon" - "tesla,fsd-mct", "samsung,exynos4210-mct" Since Tesla FSD builts on top of Exynos blocks, add an adidtional pattern for it. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- .../bindings/arm/samsung/samsung-soc.yaml | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-)