Message ID | 20220304122424.307885-2-krzysztof.kozlowski@canonical.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: timer: exynos4210-mct: describe known hardware and its interrupts | expand |
>-----Original Message----- >From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@canonical.com] >Sent: Friday, March 4, 2022 5:54 PM >To: Daniel Lezcano <daniel.lezcano@linaro.org>; Thomas Gleixner ><tglx@linutronix.de>; Rob Herring <robh+dt@kernel.org>; Krzysztof >Kozlowski <krzysztof.kozlowski@canonical.com>; Alim Akhtar ><alim.akhtar@samsung.com>; linux-kernel@vger.kernel.org; >devicetree@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux- >samsung-soc@vger.kernel.org >Subject: [PATCH v2 1/4] dt-bindings: timer: exynos4210-mct: describe known >hardware and its interrupts > >Most of the Samsung Exynos SoCs use almost the same Multi-Core Timer >block, so only two compatibles were used so far (for Exynos4210 and >Exynos4412 flavors) with Exynos4210-one being used in most of the SoCs. >However the Exynos4210 flavor actually differs by number of interrupts. > >Add new compatibles, maintaining backward compatibility with Exynos4210, >and constraints for number of interrupts. This allows to exactly match the >Exynos MCT hardware. > >Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >--- Reviewed-by: Alim Akhtar <alim.akhtar@samsung.com> > .../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++- > 1 file changed, 64 insertions(+), 3 deletions(-) > >diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210- >mct.yaml >b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml >index f11cbc7ccc14..1584944c7ac4 100644 >--- a/Documentation/devicetree/bindings/timer/samsung,exynos4210- >mct.yaml >+++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210- >mct.yam >+++ l >@@ -19,9 +19,20 @@ description: |+ > > properties: > compatible: >- enum: >- - samsung,exynos4210-mct >- - samsung,exynos4412-mct >+ oneOf: >+ - enum: >+ - samsung,exynos4210-mct >+ - samsung,exynos4412-mct >+ - items: >+ - enum: >+ - samsung,exynos3250-mct >+ - samsung,exynos5250-mct >+ - samsung,exynos5260-mct >+ - samsung,exynos5420-mct >+ - samsung,exynos5433-mct >+ - samsung,exynos850-mct >+ - tesla,fsd-mct >+ - const: samsung,exynos4210-mct > > clocks: > minItems: 2 >@@ -63,6 +74,56 @@ required: > - interrupts > - reg > >+allOf: >+ - if: >+ properties: >+ compatible: >+ contains: >+ const: samsung,exynos3250-mct >+ then: >+ properties: >+ interrupts: >+ minItems: 8 >+ maxItems: 8 >+ >+ - if: >+ properties: >+ compatible: >+ contains: >+ const: samsung,exynos5250-mct >+ then: >+ properties: >+ interrupts: >+ minItems: 6 >+ maxItems: 6 >+ >+ - if: >+ properties: >+ compatible: >+ contains: >+ enum: >+ - samsung,exynos5260-mct >+ - samsung,exynos5420-mct >+ - samsung,exynos5433-mct >+ - samsung,exynos850-mct >+ then: >+ properties: >+ interrupts: >+ minItems: 12 >+ maxItems: 12 >+ >+ - if: >+ properties: >+ compatible: >+ contains: >+ enum: >+ - tesla,fsd-mct >+ then: >+ properties: >+ interrupts: >+ minItems: 16 >+ maxItems: 16 >+ > additionalProperties: false > > examples: >-- >2.32.0
On Fri, 04 Mar 2022 13:24:21 +0100, Krzysztof Kozlowski wrote: > Most of the Samsung Exynos SoCs use almost the same Multi-Core Timer > block, so only two compatibles were used so far (for Exynos4210 and > Exynos4412 flavors) with Exynos4210-one being used in most of the SoCs. > However the Exynos4210 flavor actually differs by number of interrupts. > > Add new compatibles, maintaining backward compatibility with Exynos4210, > and constraints for number of interrupts. This allows to exactly match > the Exynos MCT hardware. > > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > --- > .../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++- > 1 file changed, 64 insertions(+), 3 deletions(-) > Reviewed-by: Rob Herring <robh@kernel.org>
diff --git a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml index f11cbc7ccc14..1584944c7ac4 100644 --- a/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml +++ b/Documentation/devicetree/bindings/timer/samsung,exynos4210-mct.yaml @@ -19,9 +19,20 @@ description: |+ properties: compatible: - enum: - - samsung,exynos4210-mct - - samsung,exynos4412-mct + oneOf: + - enum: + - samsung,exynos4210-mct + - samsung,exynos4412-mct + - items: + - enum: + - samsung,exynos3250-mct + - samsung,exynos5250-mct + - samsung,exynos5260-mct + - samsung,exynos5420-mct + - samsung,exynos5433-mct + - samsung,exynos850-mct + - tesla,fsd-mct + - const: samsung,exynos4210-mct clocks: minItems: 2 @@ -63,6 +74,56 @@ required: - interrupts - reg +allOf: + - if: + properties: + compatible: + contains: + const: samsung,exynos3250-mct + then: + properties: + interrupts: + minItems: 8 + maxItems: 8 + + - if: + properties: + compatible: + contains: + const: samsung,exynos5250-mct + then: + properties: + interrupts: + minItems: 6 + maxItems: 6 + + - if: + properties: + compatible: + contains: + enum: + - samsung,exynos5260-mct + - samsung,exynos5420-mct + - samsung,exynos5433-mct + - samsung,exynos850-mct + then: + properties: + interrupts: + minItems: 12 + maxItems: 12 + + - if: + properties: + compatible: + contains: + enum: + - tesla,fsd-mct + then: + properties: + interrupts: + minItems: 16 + maxItems: 16 + additionalProperties: false examples:
Most of the Samsung Exynos SoCs use almost the same Multi-Core Timer block, so only two compatibles were used so far (for Exynos4210 and Exynos4412 flavors) with Exynos4210-one being used in most of the SoCs. However the Exynos4210 flavor actually differs by number of interrupts. Add new compatibles, maintaining backward compatibility with Exynos4210, and constraints for number of interrupts. This allows to exactly match the Exynos MCT hardware. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> --- .../timer/samsung,exynos4210-mct.yaml | 67 ++++++++++++++++++- 1 file changed, 64 insertions(+), 3 deletions(-)