diff mbox series

[v2,25/28] dt-bindings: pinctrl: samsung: describe Exynos850 and ExynosAutov9 wake-ups

Message ID 20220111201722.327219-19-krzysztof.kozlowski@canonical.com
State New
Headers show
Series pinctrl: dt-bindings: samsung: convert to dtschema | expand

Commit Message

Krzysztof Kozlowski Jan. 11, 2022, 8:17 p.m. UTC
Older Samsung Exynos SoC pin controller nodes (Exynos3250, Exynos4,
Exynos5, Exynos5433) with external wake-up interrupts, expected to have
one interrupt for multiplexing these wake-up interrupts.  Also they
expected to have exactly one pin controller capable of external wake-up
interrupts.

It seems however that newer ARMv8 Exynos SoC like Exynos850 and
ExynosAutov9 have differences of their pin controller node capable of
external wake-up interrupts:
1. No multiplexed external wake-up interrupt, only direct,
2. More than one pin controller capable of external wake-up interrupts.

Add dedicated Exynos850 and ExynosAutov9 compatibles.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 .../samsung,pinctrl-wakeup-interrupt.yaml     | 27 ++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

Comments

Sam Protsenko Jan. 14, 2022, 7:44 p.m. UTC | #1
On Tue, 11 Jan 2022 at 22:18, Krzysztof Kozlowski
<krzysztof.kozlowski@canonical.com> wrote:
>
> Older Samsung Exynos SoC pin controller nodes (Exynos3250, Exynos4,
> Exynos5, Exynos5433) with external wake-up interrupts, expected to have
> one interrupt for multiplexing these wake-up interrupts.  Also they
> expected to have exactly one pin controller capable of external wake-up
> interrupts.
>
> It seems however that newer ARMv8 Exynos SoC like Exynos850 and
> ExynosAutov9 have differences of their pin controller node capable of
> external wake-up interrupts:
> 1. No multiplexed external wake-up interrupt, only direct,
> 2. More than one pin controller capable of external wake-up interrupts.
>
> Add dedicated Exynos850 and ExynosAutov9 compatibles.
>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> ---

Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>

>  .../samsung,pinctrl-wakeup-interrupt.yaml     | 27 ++++++++++++++++---
>  1 file changed, 24 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
> index 6b684a53119b..a822f70f5702 100644
> --- a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
> +++ b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
> @@ -16,9 +16,12 @@ description: |
>    controller.
>
>    External wake-up interrupts for Samsung S3C/S5P/Exynos SoC pin controller.
> -  Only one pin-controller device node can include external wake-up interrupts
> -  child node (in other words, only one External wake-up interrupts
> +  For S3C24xx, S3C64xx, S5PV210 and Exynos4210 compatible wake-up interrupt
> +  controllers, only one pin-controller device node can include external wake-up
> +  interrupts child node (in other words, only one External wake-up interrupts
>    pin-controller is supported).
> +  For newer controllers, multiple pin-controller device node can include
> +  external wake-up interrupts child node.
>
>    See also Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml for
>    additional information and example.
> @@ -32,6 +35,8 @@ properties:
>        - samsung,s5pv210-wakeup-eint
>        - samsung,exynos4210-wakeup-eint
>        - samsung,exynos7-wakeup-eint
> +      - samsung,exynos850-wakeup-eint
> +      - samsung,exynosautov9-wakeup-eint
>
>    interrupts:
>      description:
> @@ -41,7 +46,6 @@ properties:
>
>  required:
>    - compatible
> -  - interrupts
>
>  allOf:
>    - if:
> @@ -56,6 +60,8 @@ allOf:
>          interrupts:
>            minItems: 6
>            maxItems: 6
> +      required:
> +        - interrupts
>
>    - if:
>        properties:
> @@ -67,6 +73,8 @@ allOf:
>          interrupts:
>            minItems: 4
>            maxItems: 4
> +      required:
> +        - interrupts
>
>    - if:
>        properties:
> @@ -81,5 +89,18 @@ allOf:
>          interrupts:
>            minItems: 1
>            maxItems: 1
> +      required:
> +        - interrupts
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - samsung,exynos850-wakeup-eint
> +              - samsung,exynosautov9-wakeup-eint
> +    then:
> +      properties:
> +        interrupts: false
>
>  additionalProperties: false
> --
> 2.32.0
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
index 6b684a53119b..a822f70f5702 100644
--- a/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
@@ -16,9 +16,12 @@  description: |
   controller.
 
   External wake-up interrupts for Samsung S3C/S5P/Exynos SoC pin controller.
-  Only one pin-controller device node can include external wake-up interrupts
-  child node (in other words, only one External wake-up interrupts
+  For S3C24xx, S3C64xx, S5PV210 and Exynos4210 compatible wake-up interrupt
+  controllers, only one pin-controller device node can include external wake-up
+  interrupts child node (in other words, only one External wake-up interrupts
   pin-controller is supported).
+  For newer controllers, multiple pin-controller device node can include
+  external wake-up interrupts child node.
 
   See also Documentation/devicetree/bindings/pinctrl/samsung,pinctrl.yaml for
   additional information and example.
@@ -32,6 +35,8 @@  properties:
       - samsung,s5pv210-wakeup-eint
       - samsung,exynos4210-wakeup-eint
       - samsung,exynos7-wakeup-eint
+      - samsung,exynos850-wakeup-eint
+      - samsung,exynosautov9-wakeup-eint
 
   interrupts:
     description:
@@ -41,7 +46,6 @@  properties:
 
 required:
   - compatible
-  - interrupts
 
 allOf:
   - if:
@@ -56,6 +60,8 @@  allOf:
         interrupts:
           minItems: 6
           maxItems: 6
+      required:
+        - interrupts
 
   - if:
       properties:
@@ -67,6 +73,8 @@  allOf:
         interrupts:
           minItems: 4
           maxItems: 4
+      required:
+        - interrupts
 
   - if:
       properties:
@@ -81,5 +89,18 @@  allOf:
         interrupts:
           minItems: 1
           maxItems: 1
+      required:
+        - interrupts
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - samsung,exynos850-wakeup-eint
+              - samsung,exynosautov9-wakeup-eint
+    then:
+      properties:
+        interrupts: false
 
 additionalProperties: false