summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml
blob: 0da6d69f599171b6946992c036f23c5dea17bd0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/pinctrl/samsung,pinctrl-wakeup-interrupt.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S3C/S5P/Exynos SoC pin controller - wake-up interrupt controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>
  - Sylwester Nawrocki <s.nawrocki@samsung.com>
  - Tomasz Figa <tomasz.figa@gmail.com>

description: |
  This is a part of device tree bindings for Samsung S3C/S5P/Exynos SoC pin
  controller.

  External wake-up interrupts for Samsung S3C/S5P/Exynos SoC pin controller.
  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.

properties:
  compatible:
    oneOf:
      - enum:
          - samsung,s3c2410-wakeup-eint
          - samsung,s3c2412-wakeup-eint
          - samsung,s3c64xx-wakeup-eint
          - samsung,s5pv210-wakeup-eint
          - samsung,exynos4210-wakeup-eint
          - samsung,exynos7-wakeup-eint
          - samsung,exynosautov920-wakeup-eint
      - items:
          - enum:
              - samsung,exynos5433-wakeup-eint
              - samsung,exynos7870-wakeup-eint
              - samsung,exynos7885-wakeup-eint
              - samsung,exynos850-wakeup-eint
              - samsung,exynos8895-wakeup-eint
          - const: samsung,exynos7-wakeup-eint
      - items:
          - enum:
              - google,gs101-wakeup-eint
              - samsung,exynos2200-wakeup-eint
              - samsung,exynos9810-wakeup-eint
              - samsung,exynos990-wakeup-eint
              - samsung,exynosautov9-wakeup-eint
          - const: samsung,exynos850-wakeup-eint
          - const: samsung,exynos7-wakeup-eint

  interrupts:
    description:
      Interrupt used by multiplexed external wake-up interrupts.
    minItems: 1
    maxItems: 6

required:
  - compatible

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,s3c2410-wakeup-eint
              - samsung,s3c2412-wakeup-eint
    then:
      properties:
        interrupts:
          minItems: 6
          maxItems: 6
      required:
        - interrupts

  - if:
      properties:
        compatible:
          contains:
            const: samsung,s3c64xx-wakeup-eint
    then:
      properties:
        interrupts:
          minItems: 4
          maxItems: 4
      required:
        - interrupts

  - if:
      properties:
        compatible:
          oneOf:
            # Match without "contains", to skip newer variants which are still
            # compatible with samsung,exynos7-wakeup-eint
            - enum:
                - samsung,exynos4210-wakeup-eint
                - samsung,exynos7-wakeup-eint
                - samsung,s5pv210-wakeup-eint
            - contains:
                enum:
                  - samsung,exynos5433-wakeup-eint
                  - samsung,exynos7870-wakeup-eint
                  - samsung,exynos7885-wakeup-eint
                  - samsung,exynos8895-wakeup-eint
    then:
      properties:
        interrupts:
          minItems: 1
          maxItems: 1
      required:
        - interrupts

  - if:
      properties:
        compatible:
          contains:
            enum:
              - samsung,exynos850-wakeup-eint
              - samsung,exynosautov920-wakeup-eint
    then:
      properties:
        interrupts: false

additionalProperties: false